From 671050f5f25ef4626b53c5a4c73e06cd83c1ca90 Mon Sep 17 00:00:00 2001 From: liangping <18786721@qq.com> Date: Mon, 3 Apr 2023 17:08:02 +0800 Subject: [PATCH] use simple repo --- .idea/vcs.xml | 6 + .idea/workspace.xml | 741 ++ README.md | 46 + auto-imports.d.ts | 604 + chains/mainnet/8ball.json | 27 + chains/mainnet/agoric.json | 34 + chains/mainnet/akash.json | 19 + chains/mainnet/aura.json.disabled | 19 + chains/mainnet/axelar.json | 60 + chains/mainnet/band.json | 19 + chains/mainnet/beezee.json | 19 + chains/mainnet/bitcanna.json | 19 + chains/mainnet/bitsong.json | 18 + chains/mainnet/bostrom.json | 19 + chains/mainnet/canto.json | 18 + chains/mainnet/carbon.json | 24 + chains/mainnet/celestia.json.disabled | 19 + chains/mainnet/cerberus.json | 21 + chains/mainnet/chain4energy.json | 16 + chains/mainnet/cheqd.json | 18 + chains/mainnet/chihuahua.json | 19 + chains/mainnet/cht.json.disabled | 24 + chains/mainnet/comdex.json | 18 + chains/mainnet/commercionetwork.json | 25 + chains/mainnet/cosmos.json | 35 + chains/mainnet/crescent.json | 24 + chains/mainnet/cronos.json | 17 + chains/mainnet/crypto.json | 20 + chains/mainnet/cudos.json | 20 + chains/mainnet/decentr.json | 18 + chains/mainnet/desmos.json | 18 + chains/mainnet/dig.json | 19 + chains/mainnet/echelon.json | 20 + chains/mainnet/emoney.json | 26 + chains/mainnet/evmos.json | 19 + chains/mainnet/fetchai.json | 18 + chains/mainnet/genesisl1.json | 18 + chains/mainnet/gravitybridge.json | 19 + chains/mainnet/injective.json | 25 + chains/mainnet/iris.json | 20 + chains/mainnet/ixo.json | 18 + chains/mainnet/jackal.json | 28 + chains/mainnet/juno.json | 19 + chains/mainnet/kava.json | 19 + chains/mainnet/kichain.json | 18 + chains/mainnet/kujira.json | 19 + chains/mainnet/lambda.json | 20 + chains/mainnet/likecoin.json | 19 + chains/mainnet/lum.json | 19 + chains/mainnet/lumenx.json | 19 + chains/mainnet/mars.json | 29 + chains/mainnet/meme.json | 21 + chains/mainnet/microtick.json | 18 + chains/mainnet/migaloo.json | 21 + chains/mainnet/nym.json | 24 + chains/mainnet/odin.json | 30 + chains/mainnet/okexchain.json.disabled | 19 + chains/mainnet/omniflix.json | 19 + chains/mainnet/osmosis.json | 31 + chains/mainnet/passage.json | 18 + chains/mainnet/persistence.json | 19 + chains/mainnet/planq.json | 19 + chains/mainnet/point.json | 18 + chains/mainnet/provenance.json | 19 + chains/mainnet/quicksilver.json | 20 + chains/mainnet/rebus.json | 20 + chains/mainnet/regen.json | 19 + chains/mainnet/rizon.json | 17 + chains/mainnet/secret.json | 19 + chains/mainnet/sentinel.json | 18 + chains/mainnet/shentu.json | 20 + chains/mainnet/sifchain.json | 18 + chains/mainnet/sommelier.json.disabled | 22 + chains/mainnet/stafihub.json | 37 + chains/mainnet/stargaze.json | 18 + chains/mainnet/starname.json | 18 + chains/mainnet/stride.json | 18 + chains/mainnet/teritori.json | 20 + chains/mainnet/terra.json | 139 + chains/mainnet/terra2.json | 138 + chains/mainnet/umee.json | 18 + chains/mainnet/unification.json | 26 + chains/mainnet/vidulum.json | 19 + chains/mainnet/whitewhale.json | 20 + chains/testnet/iris.json | 20 + chains/testnet/juno.json | 17 + chains/testnet/omniflix.json | 18 + chains/testnet/stargaze.json | 18 + components.d.ts | 51 + env.d.ts | 1 + index.html | 26 + lerna.json | 5 - package-lock.json | 10471 ---------------- package.json | 68 +- packages/codegen/.telescope.json | 17 - packages/codegen/dist/amino/amino.d.ts | 1 - packages/codegen/dist/amino/bundle.d.ts | 1 - packages/codegen/dist/confio/proofs.d.ts | 439 - .../dist/cosmos/app/v1alpha1/config.d.ts | 64 - .../dist/cosmos/app/v1alpha1/module.d.ts | 117 - .../dist/cosmos/app/v1alpha1/query.d.ts | 28 - .../cosmos/app/v1alpha1/query.rpc.Query.d.ts | 16 - .../dist/cosmos/auth/v1beta1/auth.d.ts | 69 - .../dist/cosmos/auth/v1beta1/genesis.d.ts | 21 - .../dist/cosmos/auth/v1beta1/query.d.ts | 205 - .../dist/cosmos/auth/v1beta1/query.lcd.d.ts | 15 - .../cosmos/auth/v1beta1/query.rpc.Query.d.ts | 44 - .../dist/cosmos/authz/v1beta1/authz.d.ts | 88 - .../dist/cosmos/authz/v1beta1/event.d.ts | 42 - .../dist/cosmos/authz/v1beta1/genesis.d.ts | 16 - .../dist/cosmos/authz/v1beta1/query.d.ts | 108 - .../dist/cosmos/authz/v1beta1/query.lcd.d.ts | 11 - .../cosmos/authz/v1beta1/query.rpc.Query.d.ts | 32 - .../codegen/dist/cosmos/authz/v1beta1/tx.d.ts | 113 - .../dist/cosmos/authz/v1beta1/tx.rpc.msg.d.ts | 30 - .../dist/cosmos/bank/v1beta1/authz.d.ts | 26 - .../dist/cosmos/bank/v1beta1/bank.d.ts | 185 - .../dist/cosmos/bank/v1beta1/genesis.d.ts | 53 - .../dist/cosmos/bank/v1beta1/query.d.ts | 362 - .../dist/cosmos/bank/v1beta1/query.lcd.d.ts | 17 - .../cosmos/bank/v1beta1/query.rpc.Query.d.ts | 57 - .../codegen/dist/cosmos/bank/v1beta1/tx.d.ts | 58 - .../dist/cosmos/bank/v1beta1/tx.rpc.msg.d.ts | 15 - .../dist/cosmos/base/abci/v1beta1/abci.d.ts | 294 - .../dist/cosmos/base/kv/v1beta1/kv.d.ts | 30 - .../cosmos/base/query/v1beta1/pagination.d.ts | 105 - .../base/reflection/v1beta1/reflection.d.ts | 66 - .../base/reflection/v2alpha1/reflection.d.ts | 451 - .../base/snapshots/v1beta1/snapshot.d.ts | 151 - .../base/store/v1beta1/commit_info.d.ts | 66 - .../cosmos/base/store/v1beta1/listening.d.ts | 35 - .../cosmos/base/tendermint/v1beta1/query.d.ts | 245 - .../base/tendermint/v1beta1/query.lcd.d.ts | 14 - .../tendermint/v1beta1/query.rpc.Service.d.ts | 36 - .../dist/cosmos/base/v1beta1/coin.d.ts | 78 - packages/codegen/dist/cosmos/bundle.d.ts | 8995 ------------- .../cosmos/capability/v1beta1/capability.d.ts | 62 - .../cosmos/capability/v1beta1/genesis.d.ts | 41 - .../dist/cosmos/crisis/v1beta1/genesis.d.ts | 20 - .../dist/cosmos/crisis/v1beta1/tx.d.ts | 30 - .../cosmos/crisis/v1beta1/tx.rpc.msg.d.ts | 12 - .../dist/cosmos/crypto/ed25519/keys.d.ts | 46 - .../codegen/dist/cosmos/crypto/hd/v1/hd.d.ts | 31 - .../dist/cosmos/crypto/keyring/v1/record.d.ts | 89 - .../dist/cosmos/crypto/multisig/keys.d.ts | 26 - .../crypto/multisig/v1beta1/multisig.d.ts | 48 - .../dist/cosmos/crypto/secp256k1/keys.d.ts | 40 - .../dist/cosmos/crypto/secp256r1/keys.d.ts | 33 - .../distribution/v1beta1/distribution.d.ts | 282 - .../cosmos/distribution/v1beta1/genesis.d.ts | 197 - .../cosmos/distribution/v1beta1/query.d.ts | 365 - .../distribution/v1beta1/query.lcd.d.ts | 17 - .../distribution/v1beta1/query.rpc.Query.d.ts | 51 - .../dist/cosmos/distribution/v1beta1/tx.d.ts | 133 - .../distribution/v1beta1/tx.rpc.msg.d.ts | 33 - .../cosmos/evidence/v1beta1/evidence.d.ts | 28 - .../dist/cosmos/evidence/v1beta1/genesis.d.ts | 17 - .../dist/cosmos/evidence/v1beta1/query.d.ts | 75 - .../cosmos/evidence/v1beta1/query.lcd.d.ts | 10 - .../evidence/v1beta1/query.rpc.Query.d.ts | 20 - .../dist/cosmos/evidence/v1beta1/tx.d.ts | 38 - .../cosmos/evidence/v1beta1/tx.rpc.msg.d.ts | 15 - .../cosmos/feegrant/v1beta1/feegrant.d.ts | 111 - .../dist/cosmos/feegrant/v1beta1/genesis.d.ts | 16 - .../dist/cosmos/feegrant/v1beta1/query.d.ts | 101 - .../cosmos/feegrant/v1beta1/query.lcd.d.ts | 11 - .../feegrant/v1beta1/query.rpc.Query.d.ts | 27 - .../dist/cosmos/feegrant/v1beta1/tx.d.ts | 68 - .../cosmos/feegrant/v1beta1/tx.rpc.msg.d.ts | 21 - .../dist/cosmos/genutil/v1beta1/genesis.d.ts | 16 - .../codegen/dist/cosmos/gov/v1/genesis.d.ts | 36 - packages/codegen/dist/cosmos/gov/v1/gov.d.ts | 237 - .../codegen/dist/cosmos/gov/v1/query.d.ts | 271 - .../codegen/dist/cosmos/gov/v1/query.lcd.d.ts | 16 - .../dist/cosmos/gov/v1/query.rpc.Query.d.ts | 44 - packages/codegen/dist/cosmos/gov/v1/tx.d.ts | 167 - .../dist/cosmos/gov/v1/tx.rpc.msg.d.ts | 27 - .../dist/cosmos/gov/v1beta1/genesis.d.ts | 36 - .../codegen/dist/cosmos/gov/v1beta1/gov.d.ts | 270 - .../dist/cosmos/gov/v1beta1/query.d.ts | 271 - .../dist/cosmos/gov/v1beta1/query.lcd.d.ts | 16 - .../cosmos/gov/v1beta1/query.rpc.Query.d.ts | 44 - .../codegen/dist/cosmos/gov/v1beta1/tx.d.ts | 142 - .../dist/cosmos/gov/v1beta1/tx.rpc.msg.d.ts | 25 - .../codegen/dist/cosmos/group/v1/events.d.ts | 136 - .../codegen/dist/cosmos/group/v1/genesis.d.ts | 48 - .../codegen/dist/cosmos/group/v1/query.d.ts | 420 - .../dist/cosmos/group/v1/query.lcd.d.ts | 21 - .../dist/cosmos/group/v1/query.rpc.Query.d.ts | 64 - packages/codegen/dist/cosmos/group/v1/tx.d.ts | 501 - .../dist/cosmos/group/v1/tx.rpc.msg.d.ts | 51 - .../codegen/dist/cosmos/group/v1/types.d.ts | 396 - packages/codegen/dist/cosmos/lcd.d.ts | 57 - .../dist/cosmos/mint/v1beta1/genesis.d.ts | 20 - .../dist/cosmos/mint/v1beta1/mint.d.ts | 49 - .../dist/cosmos/mint/v1beta1/query.d.ts | 96 - .../dist/cosmos/mint/v1beta1/query.lcd.d.ts | 11 - .../cosmos/mint/v1beta1/query.rpc.Query.d.ts | 24 - packages/codegen/dist/cosmos/msg/v1/msg.d.ts | 1 - .../dist/cosmos/nft/v1beta1/event.d.ts | 55 - .../dist/cosmos/nft/v1beta1/genesis.d.ts | 36 - .../codegen/dist/cosmos/nft/v1beta1/nft.d.ts | 61 - .../dist/cosmos/nft/v1beta1/query.d.ts | 202 - .../dist/cosmos/nft/v1beta1/query.lcd.d.ts | 15 - .../cosmos/nft/v1beta1/query.rpc.Query.d.ts | 43 - .../codegen/dist/cosmos/nft/v1beta1/tx.d.ts | 36 - .../dist/cosmos/nft/v1beta1/tx.rpc.msg.d.ts | 12 - packages/codegen/dist/cosmos/orm/v1/orm.d.ts | 130 - .../dist/cosmos/orm/v1alpha1/schema.d.ts | 98 - .../dist/cosmos/params/v1beta1/params.d.ts | 42 - .../dist/cosmos/params/v1beta1/query.d.ts | 91 - .../dist/cosmos/params/v1beta1/query.lcd.d.ts | 10 - .../params/v1beta1/query.rpc.Query.d.ts | 23 - packages/codegen/dist/cosmos/rpc.query.d.ts | 187 - packages/codegen/dist/cosmos/rpc.tx.d.ts | 47 - .../dist/cosmos/slashing/v1beta1/genesis.d.ts | 87 - .../dist/cosmos/slashing/v1beta1/query.d.ts | 109 - .../cosmos/slashing/v1beta1/query.lcd.d.ts | 11 - .../slashing/v1beta1/query.rpc.Query.d.ts | 24 - .../cosmos/slashing/v1beta1/slashing.d.ts | 69 - .../dist/cosmos/slashing/v1beta1/tx.d.ts | 26 - .../cosmos/slashing/v1beta1/tx.rpc.msg.d.ts | 16 - .../dist/cosmos/staking/v1beta1/authz.d.ts | 72 - .../dist/cosmos/staking/v1beta1/genesis.d.ts | 61 - .../dist/cosmos/staking/v1beta1/query.d.ts | 552 - .../cosmos/staking/v1beta1/query.lcd.d.ts | 22 - .../staking/v1beta1/query.rpc.Query.d.ts | 80 - .../dist/cosmos/staking/v1beta1/staking.d.ts | 513 - .../dist/cosmos/staking/v1beta1/tx.d.ts | 185 - .../cosmos/staking/v1beta1/tx.rpc.msg.d.ts | 33 - .../cosmos/tx/signing/v1beta1/signing.d.ts | 149 - .../dist/cosmos/tx/v1beta1/service.d.ts | 286 - .../dist/cosmos/tx/v1beta1/service.lcd.d.ts | 11 - .../tx/v1beta1/service.rpc.Service.d.ts | 36 - .../codegen/dist/cosmos/tx/v1beta1/tx.d.ts | 455 - .../dist/cosmos/upgrade/v1beta1/query.d.ts | 220 - .../cosmos/upgrade/v1beta1/query.lcd.d.ts | 13 - .../upgrade/v1beta1/query.rpc.Query.d.ts | 43 - .../dist/cosmos/upgrade/v1beta1/tx.d.ts | 88 - .../cosmos/upgrade/v1beta1/tx.rpc.msg.d.ts | 24 - .../dist/cosmos/upgrade/v1beta1/upgrade.d.ts | 137 - .../dist/cosmos/vesting/v1beta1/tx.d.ts | 119 - .../cosmos/vesting/v1beta1/tx.rpc.msg.d.ts | 27 - .../dist/cosmos/vesting/v1beta1/vesting.d.ts | 137 - .../codegen/dist/cosmos_proto/bundle.d.ts | 24 - .../codegen/dist/cosmos_proto/cosmos.d.ts | 92 - packages/codegen/dist/cosmwasm/bundle.d.ts | 1284 -- packages/codegen/dist/cosmwasm/lcd.d.ts | 62 - packages/codegen/dist/cosmwasm/rpc.query.d.ts | 204 - packages/codegen/dist/cosmwasm/rpc.tx.d.ts | 52 - .../codegen/dist/cosmwasm/wasm/v1/authz.d.ts | 206 - .../dist/cosmwasm/wasm/v1/genesis.d.ts | 77 - .../codegen/dist/cosmwasm/wasm/v1/ibc.d.ts | 48 - .../dist/cosmwasm/wasm/v1/proposal.d.ts | 439 - .../codegen/dist/cosmwasm/wasm/v1/query.d.ts | 461 - .../dist/cosmwasm/wasm/v1/query.lcd.d.ts | 19 - .../cosmwasm/wasm/v1/query.rpc.Query.d.ts | 56 - .../codegen/dist/cosmwasm/wasm/v1/tx.d.ts | 294 - .../dist/cosmwasm/wasm/v1/tx.rpc.msg.d.ts | 36 - .../codegen/dist/cosmwasm/wasm/v1/types.d.ts | 206 - packages/codegen/dist/gogoproto/bundle.d.ts | 1 - packages/codegen/dist/gogoproto/gogo.d.ts | 1 - .../codegen/dist/google/api/annotations.d.ts | 1 - packages/codegen/dist/google/api/http.d.ts | 666 - packages/codegen/dist/google/bundle.d.ts | 1466 --- .../codegen/dist/google/protobuf/any.d.ts | 207 - .../dist/google/protobuf/descriptor.d.ts | 1172 -- .../dist/google/protobuf/duration.d.ts | 149 - .../codegen/dist/google/protobuf/empty.d.ts | 33 - .../dist/google/protobuf/timestamp.d.ts | 195 - packages/codegen/dist/helpers.d.ts | 82 - .../ibc/applications/transfer/v1/genesis.d.ts | 20 - .../ibc/applications/transfer/v1/query.d.ts | 112 - .../applications/transfer/v1/query.lcd.d.ts | 11 - .../transfer/v1/query.rpc.Query.d.ts | 24 - .../applications/transfer/v1/transfer.d.ts | 61 - .../dist/ibc/applications/transfer/v1/tx.d.ts | 62 - .../applications/transfer/v1/tx.rpc.msg.d.ts | 12 - .../ibc/applications/transfer/v2/packet.d.ts | 33 - packages/codegen/dist/ibc/bundle.d.ts | 3259 ----- .../dist/ibc/core/channel/v1/channel.d.ts | 244 - .../dist/ibc/core/channel/v1/genesis.d.ts | 55 - .../dist/ibc/core/channel/v1/query.d.ts | 656 - .../dist/ibc/core/channel/v1/query.lcd.d.ts | 21 - .../ibc/core/channel/v1/query.rpc.Query.d.ts | 88 - .../codegen/dist/ibc/core/channel/v1/tx.d.ts | 377 - .../dist/ibc/core/channel/v1/tx.rpc.msg.d.ts | 42 - .../dist/ibc/core/client/v1/client.d.ts | 196 - .../dist/ibc/core/client/v1/genesis.d.ts | 76 - .../dist/ibc/core/client/v1/query.d.ts | 353 - .../dist/ibc/core/client/v1/query.lcd.d.ts | 16 - .../ibc/core/client/v1/query.rpc.Query.d.ts | 50 - .../codegen/dist/ibc/core/client/v1/tx.d.ts | 166 - .../dist/ibc/core/client/v1/tx.rpc.msg.d.ts | 21 - .../ibc/core/commitment/v1/commitment.d.ts | 89 - .../ibc/core/connection/v1/connection.d.ts | 204 - .../dist/ibc/core/connection/v1/genesis.d.ts | 24 - .../dist/ibc/core/connection/v1/query.d.ts | 245 - .../ibc/core/connection/v1/query.lcd.d.ts | 13 - .../core/connection/v1/query.rpc.Query.d.ts | 41 - .../dist/ibc/core/connection/v1/tx.d.ts | 209 - .../ibc/core/connection/v1/tx.rpc.msg.d.ts | 24 - .../codegen/dist/ibc/core/port/v1/query.d.ts | 46 - .../ibc/core/port/v1/query.rpc.Query.d.ts | 16 - .../dist/ibc/core/types/v1/genesis.d.ts | 28 - packages/codegen/dist/ibc/lcd.d.ts | 75 - .../lightclients/localhost/v1/localhost.d.ts | 26 - .../solomachine/v1/solomachine.d.ts | 391 - .../solomachine/v2/solomachine.d.ts | 391 - .../tendermint/v1/tendermint.d.ts | 185 - packages/codegen/dist/ibc/rpc.query.d.ts | 243 - packages/codegen/dist/ibc/rpc.tx.d.ts | 65 - packages/codegen/dist/ics23/bundle.d.ts | 545 - packages/codegen/dist/index.d.ts | 14 - .../codegen/dist/tendermint/abci/types.d.ts | 833 -- packages/codegen/dist/tendermint/bundle.d.ts | 2066 --- .../codegen/dist/tendermint/crypto/keys.d.ts | 17 - .../codegen/dist/tendermint/crypto/proof.d.ts | 88 - .../dist/tendermint/libs/bits/types.d.ts | 16 - .../codegen/dist/tendermint/p2p/types.d.ts | 88 - .../codegen/dist/tendermint/types/block.d.ts | 21 - .../dist/tendermint/types/evidence.d.ts | 71 - .../codegen/dist/tendermint/types/params.d.ts | 150 - .../codegen/dist/tendermint/types/types.d.ts | 296 - .../dist/tendermint/types/validator.d.ts | 49 - .../dist/tendermint/version/types.d.ts | 49 - packages/codegen/package.json | 24 - packages/codegen/proto/amino/LICENSE | 204 - packages/codegen/proto/amino/README.md | 1 - packages/codegen/proto/amino/amino.proto | 79 - packages/codegen/proto/confio/LICENSE | 204 - packages/codegen/proto/confio/README.md | 1 - packages/codegen/proto/confio/proofs.proto | 234 - packages/codegen/proto/cosmos/LICENSE | 204 - packages/codegen/proto/cosmos/README.md | 1 - .../proto/cosmos/app/v1alpha1/config.proto | 36 - .../proto/cosmos/app/v1alpha1/module.proto | 93 - .../proto/cosmos/app/v1alpha1/query.proto | 22 - .../proto/cosmos/auth/v1beta1/auth.proto | 47 - .../proto/cosmos/auth/v1beta1/genesis.proto | 17 - .../proto/cosmos/auth/v1beta1/query.proto | 130 - .../proto/cosmos/authz/v1beta1/authz.proto | 46 - .../proto/cosmos/authz/v1beta1/event.proto | 27 - .../proto/cosmos/authz/v1beta1/genesis.proto | 13 - .../proto/cosmos/authz/v1beta1/query.proto | 82 - .../proto/cosmos/authz/v1beta1/tx.proto | 75 - .../proto/cosmos/bank/v1beta1/authz.proto | 19 - .../proto/cosmos/bank/v1beta1/bank.proto | 108 - .../proto/cosmos/bank/v1beta1/genesis.proto | 40 - .../proto/cosmos/bank/v1beta1/query.proto | 231 - .../proto/cosmos/bank/v1beta1/tx.proto | 48 - .../proto/cosmos/base/abci/v1beta1/abci.proto | 158 - .../proto/cosmos/base/kv/v1beta1/kv.proto | 17 - .../base/query/v1beta1/pagination.proto | 56 - .../base/reflection/v1beta1/reflection.proto | 44 - .../base/reflection/v2alpha1/reflection.proto | 218 - .../base/snapshots/v1beta1/snapshot.proto | 70 - .../base/store/v1beta1/commit_info.proto | 29 - .../cosmos/base/store/v1beta1/listening.proto | 16 - .../base/tendermint/v1beta1/query.proto | 138 - .../proto/cosmos/base/v1beta1/coin.proto | 43 - .../capability/v1beta1/capability.proto | 30 - .../cosmos/capability/v1beta1/genesis.proto | 26 - .../proto/cosmos/crisis/v1beta1/genesis.proto | 14 - .../proto/cosmos/crisis/v1beta1/tx.proto | 29 - .../proto/cosmos/crypto/ed25519/keys.proto | 23 - .../proto/cosmos/crypto/hd/v1/hd.proto | 23 - .../cosmos/crypto/keyring/v1/record.proto | 47 - .../proto/cosmos/crypto/multisig/keys.proto | 17 - .../crypto/multisig/v1beta1/multisig.proto | 25 - .../proto/cosmos/crypto/secp256k1/keys.proto | 22 - .../proto/cosmos/crypto/secp256r1/keys.proto | 23 - .../distribution/v1beta1/distribution.proto | 154 - .../cosmos/distribution/v1beta1/genesis.proto | 144 - .../cosmos/distribution/v1beta1/query.proto | 219 - .../cosmos/distribution/v1beta1/tx.proto | 95 - .../cosmos/evidence/v1beta1/evidence.proto | 22 - .../cosmos/evidence/v1beta1/genesis.proto | 12 - .../proto/cosmos/evidence/v1beta1/query.proto | 51 - .../proto/cosmos/evidence/v1beta1/tx.proto | 35 - .../cosmos/feegrant/v1beta1/feegrant.proto | 78 - .../cosmos/feegrant/v1beta1/genesis.proto | 13 - .../proto/cosmos/feegrant/v1beta1/query.proto | 79 - .../proto/cosmos/feegrant/v1beta1/tx.proto | 53 - .../cosmos/genutil/v1beta1/genesis.proto | 12 - .../codegen/proto/cosmos/gov/v1/genesis.proto | 26 - .../codegen/proto/cosmos/gov/v1/gov.proto | 132 - .../codegen/proto/cosmos/gov/v1/query.proto | 183 - packages/codegen/proto/cosmos/gov/v1/tx.proto | 100 - .../proto/cosmos/gov/v1beta1/genesis.proto | 26 - .../proto/cosmos/gov/v1beta1/gov.proto | 201 - .../proto/cosmos/gov/v1beta1/query.proto | 191 - .../codegen/proto/cosmos/gov/v1beta1/tx.proto | 106 - .../proto/cosmos/group/v1/events.proto | 77 - .../proto/cosmos/group/v1/genesis.proto | 38 - .../codegen/proto/cosmos/group/v1/query.proto | 308 - .../codegen/proto/cosmos/group/v1/tx.proto | 364 - .../codegen/proto/cosmos/group/v1/types.proto | 308 - .../proto/cosmos/mint/v1beta1/genesis.proto | 16 - .../proto/cosmos/mint/v1beta1/mint.proto | 57 - .../proto/cosmos/mint/v1beta1/query.proto | 57 - .../codegen/proto/cosmos/msg/v1/msg.proto | 22 - .../proto/cosmos/nft/v1beta1/event.proto | 26 - .../proto/cosmos/nft/v1beta1/genesis.proto | 22 - .../proto/cosmos/nft/v1beta1/nft.proto | 48 - .../proto/cosmos/nft/v1beta1/query.proto | 125 - .../codegen/proto/cosmos/nft/v1beta1/tx.proto | 30 - .../codegen/proto/cosmos/orm/v1/orm.proto | 104 - .../proto/cosmos/orm/v1alpha1/schema.proto | 76 - .../proto/cosmos/params/v1beta1/params.proto | 29 - .../proto/cosmos/params/v1beta1/query.proto | 54 - .../cosmos/slashing/v1beta1/genesis.proto | 47 - .../proto/cosmos/slashing/v1beta1/query.proto | 64 - .../cosmos/slashing/v1beta1/slashing.proto | 45 - .../proto/cosmos/slashing/v1beta1/tx.proto | 30 - .../proto/cosmos/staking/v1beta1/authz.proto | 47 - .../cosmos/staking/v1beta1/genesis.proto | 49 - .../proto/cosmos/staking/v1beta1/query.proto | 349 - .../cosmos/staking/v1beta1/staking.proto | 358 - .../proto/cosmos/staking/v1beta1/tx.proto | 138 - .../cosmos/tx/signing/v1beta1/signing.proto | 94 - .../proto/cosmos/tx/v1beta1/service.proto | 163 - .../codegen/proto/cosmos/tx/v1beta1/tx.proto | 249 - .../proto/cosmos/upgrade/v1beta1/query.proto | 120 - .../proto/cosmos/upgrade/v1beta1/tx.proto | 55 - .../cosmos/upgrade/v1beta1/upgrade.proto | 86 - .../proto/cosmos/vesting/v1beta1/tx.proto | 74 - .../cosmos/vesting/v1beta1/vesting.proto | 76 - packages/codegen/proto/cosmos_proto/LICENSE | 204 - packages/codegen/proto/cosmos_proto/README.md | 1 - .../codegen/proto/cosmos_proto/cosmos.proto | 97 - packages/codegen/proto/cosmwasm/LICENSE | 204 - packages/codegen/proto/cosmwasm/README.md | 1 - .../proto/cosmwasm/wasm/v1/authz.proto | 109 - .../proto/cosmwasm/wasm/v1/genesis.proto | 46 - .../codegen/proto/cosmwasm/wasm/v1/ibc.proto | 31 - .../proto/cosmwasm/wasm/v1/proposal.proto | 272 - .../proto/cosmwasm/wasm/v1/query.proto | 263 - .../codegen/proto/cosmwasm/wasm/v1/tx.proto | 176 - .../proto/cosmwasm/wasm/v1/types.proto | 144 - packages/codegen/proto/gogoproto/LICENSE | 34 - packages/codegen/proto/gogoproto/README.md | 1 - packages/codegen/proto/gogoproto/gogo.proto | 145 - packages/codegen/proto/google/LICENSE | 201 - packages/codegen/proto/google/README.md | 1 - .../proto/google/api/annotations.proto | 31 - packages/codegen/proto/google/api/http.proto | 375 - .../codegen/proto/google/protobuf/any.proto | 155 - .../proto/google/protobuf/descriptor.proto | 885 -- .../proto/google/protobuf/duration.proto | 116 - .../codegen/proto/google/protobuf/empty.proto | 52 - .../proto/google/protobuf/timestamp.proto | 138 - packages/codegen/proto/ibc/LICENSE | 21 - packages/codegen/proto/ibc/README.md | 1 - .../applications/transfer/v1/genesis.proto | 19 - .../ibc/applications/transfer/v1/query.proto | 67 - .../applications/transfer/v1/transfer.proto | 30 - .../ibc/applications/transfer/v1/tx.proto | 44 - .../ibc/applications/transfer/v2/packet.proto | 19 - .../proto/ibc/core/channel/v1/channel.proto | 148 - .../proto/ibc/core/channel/v1/genesis.proto | 32 - .../proto/ibc/core/channel/v1/query.proto | 376 - .../proto/ibc/core/channel/v1/tx.proto | 211 - .../proto/ibc/core/client/v1/client.proto | 104 - .../proto/ibc/core/client/v1/genesis.proto | 48 - .../proto/ibc/core/client/v1/query.proto | 184 - .../codegen/proto/ibc/core/client/v1/tx.proto | 99 - .../ibc/core/commitment/v1/commitment.proto | 41 - .../ibc/core/connection/v1/connection.proto | 114 - .../ibc/core/connection/v1/genesis.proto | 18 - .../proto/ibc/core/connection/v1/query.proto | 138 - .../proto/ibc/core/connection/v1/tx.proto | 119 - .../proto/ibc/core/port/v1/query.proto | 35 - .../proto/ibc/core/types/v1/genesis.proto | 23 - .../lightclients/localhost/v1/localhost.proto | 18 - .../solomachine/v1/solomachine.proto | 189 - .../solomachine/v2/solomachine.proto | 189 - .../tendermint/v1/tendermint.proto | 115 - packages/codegen/proto/tendermint/LICENSE | 204 - packages/codegen/proto/tendermint/README.md | 1 - .../codegen/proto/tendermint/abci/types.proto | 394 - .../proto/tendermint/crypto/keys.proto | 17 - .../proto/tendermint/crypto/proof.proto | 41 - .../proto/tendermint/libs/bits/types.proto | 9 - .../codegen/proto/tendermint/p2p/types.proto | 42 - .../proto/tendermint/types/block.proto | 15 - .../proto/tendermint/types/evidence.proto | 38 - .../proto/tendermint/types/params.proto | 79 - .../proto/tendermint/types/types.proto | 153 - .../proto/tendermint/types/validator.proto | 25 - .../proto/tendermint/version/types.proto | 24 - packages/codegen/src/amino/amino.ts | 1 - packages/codegen/src/amino/bundle.ts | 3 - packages/codegen/src/confio/proofs.ts | 1451 --- .../codegen/src/cosmos/app/v1alpha1/config.ts | 159 - .../codegen/src/cosmos/app/v1alpha1/module.ts | 276 - .../cosmos/app/v1alpha1/query.rpc.Query.ts | 35 - .../codegen/src/cosmos/app/v1alpha1/query.ts | 99 - .../codegen/src/cosmos/auth/v1beta1/auth.ts | 284 - .../src/cosmos/auth/v1beta1/genesis.ts | 74 - .../src/cosmos/auth/v1beta1/query.lcd.ts | 83 - .../cosmos/auth/v1beta1/query.rpc.Query.ts | 125 - .../codegen/src/cosmos/auth/v1beta1/query.ts | 765 -- .../codegen/src/cosmos/authz/v1beta1/authz.ts | 298 - .../codegen/src/cosmos/authz/v1beta1/event.ts | 170 - .../src/cosmos/authz/v1beta1/genesis.ts | 58 - .../src/cosmos/authz/v1beta1/query.lcd.ts | 79 - .../cosmos/authz/v1beta1/query.rpc.Query.ts | 71 - .../codegen/src/cosmos/authz/v1beta1/query.ts | 447 - .../src/cosmos/authz/v1beta1/tx.rpc.msg.ts | 56 - .../codegen/src/cosmos/authz/v1beta1/tx.ts | 390 - .../codegen/src/cosmos/bank/v1beta1/authz.ts | 68 - .../codegen/src/cosmos/bank/v1beta1/bank.ts | 620 - .../src/cosmos/bank/v1beta1/genesis.ts | 181 - .../src/cosmos/bank/v1beta1/query.lcd.ts | 150 - .../cosmos/bank/v1beta1/query.rpc.Query.ts | 160 - .../codegen/src/cosmos/bank/v1beta1/query.ts | 1257 -- .../src/cosmos/bank/v1beta1/tx.rpc.msg.ts | 34 - .../codegen/src/cosmos/bank/v1beta1/tx.ts | 230 - .../src/cosmos/base/abci/v1beta1/abci.ts | 1020 -- .../codegen/src/cosmos/base/kv/v1beta1/kv.ts | 124 - .../cosmos/base/query/v1beta1/pagination.ts | 243 - .../base/reflection/v1beta1/reflection.ts | 221 - .../base/reflection/v2alpha1/reflection.ts | 1630 --- .../cosmos/base/snapshots/v1beta1/snapshot.ts | 670 - .../cosmos/base/store/v1beta1/commit_info.ts | 221 - .../cosmos/base/store/v1beta1/listening.ts | 108 - .../base/tendermint/v1beta1/query.lcd.ts | 81 - .../tendermint/v1beta1/query.rpc.Service.ts | 107 - .../cosmos/base/tendermint/v1beta1/query.ts | 1041 -- .../codegen/src/cosmos/base/v1beta1/coin.ts | 266 - packages/codegen/src/cosmos/bundle.ts | 399 - .../cosmos/capability/v1beta1/capability.ts | 197 - .../src/cosmos/capability/v1beta1/genesis.ts | 146 - .../src/cosmos/crisis/v1beta1/genesis.ts | 62 - .../src/cosmos/crisis/v1beta1/tx.rpc.msg.ts | 24 - .../codegen/src/cosmos/crisis/v1beta1/tx.ts | 121 - .../codegen/src/cosmos/crypto/ed25519/keys.ts | 130 - .../codegen/src/cosmos/crypto/hd/v1/hd.ts | 117 - .../src/cosmos/crypto/keyring/v1/record.ts | 338 - .../src/cosmos/crypto/multisig/keys.ts | 78 - .../crypto/multisig/v1beta1/multisig.ts | 142 - .../src/cosmos/crypto/secp256k1/keys.ts | 124 - .../src/cosmos/crypto/secp256r1/keys.ts | 117 - .../distribution/v1beta1/distribution.ts | 945 -- .../cosmos/distribution/v1beta1/genesis.ts | 752 -- .../cosmos/distribution/v1beta1/query.lcd.ts | 104 - .../distribution/v1beta1/query.rpc.Query.ts | 150 - .../src/cosmos/distribution/v1beta1/query.ts | 1160 -- .../cosmos/distribution/v1beta1/tx.rpc.msg.ts | 66 - .../src/cosmos/distribution/v1beta1/tx.ts | 473 - .../src/cosmos/evidence/v1beta1/evidence.ts | 100 - .../src/cosmos/evidence/v1beta1/genesis.ts | 59 - .../src/cosmos/evidence/v1beta1/query.lcd.ts | 41 - .../evidence/v1beta1/query.rpc.Query.ts | 51 - .../src/cosmos/evidence/v1beta1/query.ts | 254 - .../src/cosmos/evidence/v1beta1/tx.rpc.msg.ts | 27 - .../codegen/src/cosmos/evidence/v1beta1/tx.ts | 132 - .../src/cosmos/feegrant/v1beta1/feegrant.ts | 368 - .../src/cosmos/feegrant/v1beta1/genesis.ts | 58 - .../src/cosmos/feegrant/v1beta1/query.lcd.ts | 56 - .../feegrant/v1beta1/query.rpc.Query.ts | 66 - .../src/cosmos/feegrant/v1beta1/query.ts | 408 - .../src/cosmos/feegrant/v1beta1/tx.rpc.msg.ts | 40 - .../codegen/src/cosmos/feegrant/v1beta1/tx.ts | 243 - .../src/cosmos/genutil/v1beta1/genesis.ts | 58 - packages/codegen/src/cosmos/gov/v1/genesis.ts | 143 - packages/codegen/src/cosmos/gov/v1/gov.ts | 903 -- .../codegen/src/cosmos/gov/v1/query.lcd.ts | 115 - .../src/cosmos/gov/v1/query.rpc.Query.ts | 133 - packages/codegen/src/cosmos/gov/v1/query.ts | 1074 -- .../codegen/src/cosmos/gov/v1/tx.rpc.msg.ts | 67 - packages/codegen/src/cosmos/gov/v1/tx.ts | 656 - .../codegen/src/cosmos/gov/v1beta1/genesis.ts | 143 - .../codegen/src/cosmos/gov/v1beta1/gov.ts | 980 -- .../src/cosmos/gov/v1beta1/query.lcd.ts | 115 - .../src/cosmos/gov/v1beta1/query.rpc.Query.ts | 133 - .../codegen/src/cosmos/gov/v1beta1/query.ts | 1074 -- .../src/cosmos/gov/v1beta1/tx.rpc.msg.ts | 58 - packages/codegen/src/cosmos/gov/v1beta1/tx.ts | 518 - .../codegen/src/cosmos/group/v1/events.ts | 535 - .../codegen/src/cosmos/group/v1/genesis.ts | 166 - .../codegen/src/cosmos/group/v1/query.lcd.ts | 183 - .../src/cosmos/group/v1/query.rpc.Query.ts | 203 - packages/codegen/src/cosmos/group/v1/query.ts | 1698 --- .../codegen/src/cosmos/group/v1/tx.rpc.msg.ts | 154 - packages/codegen/src/cosmos/group/v1/tx.ts | 1949 --- packages/codegen/src/cosmos/group/v1/types.ts | 1461 --- packages/codegen/src/cosmos/lcd.ts | 99 - .../src/cosmos/mint/v1beta1/genesis.ts | 73 - .../codegen/src/cosmos/mint/v1beta1/mint.ts | 198 - .../src/cosmos/mint/v1beta1/query.lcd.ts | 38 - .../cosmos/mint/v1beta1/query.rpc.Query.ts | 63 - .../codegen/src/cosmos/mint/v1beta1/query.ts | 309 - packages/codegen/src/cosmos/msg/v1/msg.ts | 1 - .../codegen/src/cosmos/nft/v1beta1/event.ts | 251 - .../codegen/src/cosmos/nft/v1beta1/genesis.ts | 141 - .../codegen/src/cosmos/nft/v1beta1/nft.ts | 255 - .../src/cosmos/nft/v1beta1/query.lcd.ts | 98 - .../src/cosmos/nft/v1beta1/query.rpc.Query.ts | 124 - .../codegen/src/cosmos/nft/v1beta1/query.ts | 859 -- .../src/cosmos/nft/v1beta1/tx.rpc.msg.ts | 24 - packages/codegen/src/cosmos/nft/v1beta1/tx.ts | 140 - packages/codegen/src/cosmos/orm/v1/orm.ts | 353 - .../codegen/src/cosmos/orm/v1alpha1/schema.ts | 268 - .../src/cosmos/params/v1beta1/params.ts | 166 - .../src/cosmos/params/v1beta1/query.lcd.ts | 43 - .../cosmos/params/v1beta1/query.rpc.Query.ts | 52 - .../src/cosmos/params/v1beta1/query.ts | 309 - packages/codegen/src/cosmos/rpc.query.ts | 68 - packages/codegen/src/cosmos/rpc.tx.ts | 49 - .../src/cosmos/slashing/v1beta1/genesis.ts | 309 - .../src/cosmos/slashing/v1beta1/query.lcd.ts | 49 - .../slashing/v1beta1/query.rpc.Query.ts | 65 - .../src/cosmos/slashing/v1beta1/query.ts | 358 - .../src/cosmos/slashing/v1beta1/slashing.ts | 248 - .../src/cosmos/slashing/v1beta1/tx.rpc.msg.ts | 28 - .../codegen/src/cosmos/slashing/v1beta1/tx.ts | 97 - .../src/cosmos/staking/v1beta1/authz.ts | 234 - .../src/cosmos/staking/v1beta1/genesis.ts | 231 - .../src/cosmos/staking/v1beta1/query.lcd.ts | 199 - .../cosmos/staking/v1beta1/query.rpc.Query.ts | 229 - .../src/cosmos/staking/v1beta1/query.ts | 1910 --- .../src/cosmos/staking/v1beta1/staking.ts | 1863 --- .../src/cosmos/staking/v1beta1/tx.rpc.msg.ts | 73 - .../codegen/src/cosmos/staking/v1beta1/tx.ts | 728 -- .../src/cosmos/tx/signing/v1beta1/signing.ts | 465 - .../src/cosmos/tx/v1beta1/service.lcd.ts | 65 - .../cosmos/tx/v1beta1/service.rpc.Service.ts | 95 - .../codegen/src/cosmos/tx/v1beta1/service.ts | 916 -- packages/codegen/src/cosmos/tx/v1beta1/tx.ts | 1319 -- .../src/cosmos/upgrade/v1beta1/query.lcd.ts | 69 - .../cosmos/upgrade/v1beta1/query.rpc.Query.ts | 102 - .../src/cosmos/upgrade/v1beta1/query.ts | 617 - .../src/cosmos/upgrade/v1beta1/tx.rpc.msg.ts | 43 - .../codegen/src/cosmos/upgrade/v1beta1/tx.ts | 241 - .../src/cosmos/upgrade/v1beta1/upgrade.ts | 398 - .../src/cosmos/vesting/v1beta1/tx.rpc.msg.ts | 53 - .../codegen/src/cosmos/vesting/v1beta1/tx.ts | 421 - .../src/cosmos/vesting/v1beta1/vesting.ts | 468 - packages/codegen/src/cosmos_proto/bundle.ts | 3 - packages/codegen/src/cosmos_proto/cosmos.ts | 255 - packages/codegen/src/cosmwasm/bundle.ts | 32 - packages/codegen/src/cosmwasm/lcd.ts | 106 - packages/codegen/src/cosmwasm/rpc.query.ts | 73 - packages/codegen/src/cosmwasm/rpc.tx.ts | 54 - .../codegen/src/cosmwasm/wasm/v1/authz.ts | 603 - .../codegen/src/cosmwasm/wasm/v1/genesis.ts | 345 - packages/codegen/src/cosmwasm/wasm/v1/ibc.ts | 164 - .../codegen/src/cosmwasm/wasm/v1/proposal.ts | 1668 --- .../codegen/src/cosmwasm/wasm/v1/query.lcd.ts | 155 - .../src/cosmwasm/wasm/v1/query.rpc.Query.ts | 179 - .../codegen/src/cosmwasm/wasm/v1/query.ts | 1606 --- .../src/cosmwasm/wasm/v1/tx.rpc.msg.ts | 90 - packages/codegen/src/cosmwasm/wasm/v1/tx.ts | 1141 -- .../codegen/src/cosmwasm/wasm/v1/types.ts | 811 -- packages/codegen/src/gogoproto/bundle.ts | 3 - packages/codegen/src/gogoproto/gogo.ts | 1 - .../codegen/src/google/api/annotations.ts | 1 - packages/codegen/src/google/api/http.ts | 913 -- packages/codegen/src/google/bundle.ts | 18 - packages/codegen/src/google/protobuf/any.ts | 260 - .../codegen/src/google/protobuf/descriptor.ts | 3697 ------ .../codegen/src/google/protobuf/duration.ts | 201 - packages/codegen/src/google/protobuf/empty.ts | 62 - .../codegen/src/google/protobuf/timestamp.ts | 247 - packages/codegen/src/helpers.ts | 242 - .../ibc/applications/transfer/v1/genesis.ts | 82 - .../ibc/applications/transfer/v1/query.lcd.ts | 49 - .../transfer/v1/query.rpc.Query.ts | 65 - .../src/ibc/applications/transfer/v1/query.ts | 362 - .../ibc/applications/transfer/v1/transfer.ts | 167 - .../applications/transfer/v1/tx.rpc.msg.ts | 24 - .../src/ibc/applications/transfer/v1/tx.ts | 198 - .../ibc/applications/transfer/v2/packet.ts | 108 - packages/codegen/src/ibc/bundle.ts | 121 - .../src/ibc/core/channel/v1/channel.ts | 826 -- .../src/ibc/core/channel/v1/genesis.ts | 229 - .../src/ibc/core/channel/v1/query.lcd.ts | 165 - .../ibc/core/channel/v1/query.rpc.Query.ts | 229 - .../codegen/src/ibc/core/channel/v1/query.ts | 2326 ---- .../src/ibc/core/channel/v1/tx.rpc.msg.ts | 117 - .../codegen/src/ibc/core/channel/v1/tx.ts | 1487 --- .../codegen/src/ibc/core/client/v1/client.ts | 597 - .../codegen/src/ibc/core/client/v1/genesis.ts | 276 - .../src/ibc/core/client/v1/query.lcd.ts | 107 - .../src/ibc/core/client/v1/query.rpc.Query.ts | 141 - .../codegen/src/ibc/core/client/v1/query.ts | 1095 -- .../src/ibc/core/client/v1/tx.rpc.msg.ts | 54 - packages/codegen/src/ibc/core/client/v1/tx.ts | 571 - .../src/ibc/core/commitment/v1/commitment.ts | 257 - .../src/ibc/core/connection/v1/connection.ts | 685 - .../src/ibc/core/connection/v1/genesis.ts | 96 - .../src/ibc/core/connection/v1/query.lcd.ts | 68 - .../ibc/core/connection/v1/query.rpc.Query.ts | 102 - .../src/ibc/core/connection/v1/query.ts | 805 -- .../src/ibc/core/connection/v1/tx.rpc.msg.ts | 57 - .../codegen/src/ibc/core/connection/v1/tx.ts | 770 -- .../src/ibc/core/port/v1/query.rpc.Query.ts | 35 - .../codegen/src/ibc/core/port/v1/query.ts | 185 - .../codegen/src/ibc/core/types/v1/genesis.ts | 92 - packages/codegen/src/ibc/lcd.ts | 125 - .../lightclients/localhost/v1/localhost.ts | 79 - .../solomachine/v1/solomachine.ts | 1441 --- .../solomachine/v2/solomachine.ts | 1441 --- .../lightclients/tendermint/v1/tendermint.ts | 585 - packages/codegen/src/ibc/rpc.query.ts | 89 - packages/codegen/src/ibc/rpc.tx.ts | 67 - packages/codegen/src/ics23/bundle.ts | 3 - packages/codegen/src/index.ts | 15 - packages/codegen/src/tendermint/abci/types.ts | 3846 ------ packages/codegen/src/tendermint/bundle.ts | 32 - .../codegen/src/tendermint/crypto/keys.ts | 69 - .../codegen/src/tendermint/crypto/proof.ts | 372 - .../codegen/src/tendermint/libs/bits/types.ts | 77 - packages/codegen/src/tendermint/p2p/types.ts | 438 - .../codegen/src/tendermint/types/block.ts | 91 - .../codegen/src/tendermint/types/evidence.ts | 325 - .../codegen/src/tendermint/types/params.ts | 485 - .../codegen/src/tendermint/types/types.ts | 1357 -- .../codegen/src/tendermint/types/validator.ts | 228 - .../codegen/src/tendermint/version/types.ts | 152 - packages/codegen/tsconfig.json | 19 - packages/dashboard/src/libs/api-registry.ts | 46 + packages/dashboard/src/libs/http.ts | 16 + public/favicon.ico | Bin 0 -> 81902 bytes public/loader.css | 70 + public/logo.svg | 82 + public/logos/8ball.png | Bin 0 -> 47444 bytes public/logos/DWS.png | Bin 0 -> 171285 bytes public/logos/VDL.png | Bin 0 -> 2976 bytes public/logos/agoric-bld.svg | 21 + public/logos/agoric.png | Bin 0 -> 13373 bytes public/logos/akash-network.png | Bin 0 -> 2047 bytes public/logos/androma.png | Bin 0 -> 6556 bytes public/logos/aura.png | Bin 0 -> 139713 bytes public/logos/axelar.svg | 15 + public/logos/band-protocol.svg | 12 + public/logos/beezee.png | Bin 0 -> 5016 bytes public/logos/bitcanna.svg | 1 + public/logos/bitsong.svg | 20 + public/logos/bostrom.png | Bin 0 -> 7963 bytes public/logos/c4e.png | Bin 0 -> 110177 bytes public/logos/canto.png | Bin 0 -> 533 bytes public/logos/carbon.svg | 91 + public/logos/ccc.png | Bin 0 -> 103252 bytes public/logos/celestia.png | Bin 0 -> 11459 bytes public/logos/cerberus.png | Bin 0 -> 247251 bytes public/logos/cheqd.png | Bin 0 -> 29219 bytes public/logos/chihuahua.png | Bin 0 -> 35086 bytes public/logos/chronic-token.jpg | Bin 0 -> 15454 bytes public/logos/com.png | 1527 +++ public/logos/comdex.png | Bin 0 -> 6613 bytes public/logos/commercionetwork.png | Bin 0 -> 172492 bytes public/logos/cosmic-horizon.png | Bin 0 -> 253710 bytes public/logos/cosmos.svg | 1 + public/logos/craft.png | Bin 0 -> 10536 bytes public/logos/cre.png | Bin 0 -> 18592 bytes public/logos/cronos.png | Bin 0 -> 9777 bytes public/logos/crypto-com-chain.png | Bin 0 -> 142046 bytes public/logos/dai.svg | 11 + public/logos/decentr.png | Bin 0 -> 574537 bytes public/logos/desmos.png | Bin 0 -> 474681 bytes public/logos/dig1.png | Bin 0 -> 10352 bytes public/logos/dot.svg | 15 + public/logos/e-money.jpg | Bin 0 -> 8290 bytes public/logos/echelon.gif | Bin 0 -> 5869358 bytes public/logos/empower.png | Bin 0 -> 300 bytes public/logos/ethereum.png | Bin 0 -> 2382 bytes public/logos/evmos.jpeg | Bin 0 -> 7915 bytes public/logos/evmos.png | Bin 0 -> 3948 bytes public/logos/fetchhub.png | Bin 0 -> 2156 bytes public/logos/game_of_chain.jpeg | Bin 0 -> 77212 bytes public/logos/genesisl1.png | Bin 0 -> 7279 bytes public/logos/gravity-bridge.png | Bin 0 -> 17596 bytes public/logos/haqq.png | Bin 0 -> 6935 bytes public/logos/haqq.svg | 14 + public/logos/injective.jpg | Bin 0 -> 17948 bytes public/logos/iris-network.svg | 78 + public/logos/islm.png | Bin 0 -> 4153 bytes public/logos/islm.svg | 14 + public/logos/ixo.svg | 24 + public/logos/jackal.png | Bin 0 -> 217755 bytes public/logos/juno.jpg | Bin 0 -> 22894 bytes public/logos/juno.png | Bin 0 -> 39163 bytes public/logos/kava.png | Bin 0 -> 8804 bytes public/logos/kichain.png | Bin 0 -> 7977 bytes public/logos/kujira.png | Bin 0 -> 117587 bytes public/logos/lambda.png | Bin 0 -> 120788 bytes public/logos/likecoin.png | Bin 0 -> 18923 bytes public/logos/lum-network.png | Bin 0 -> 4930 bytes public/logos/lumen.png | Bin 0 -> 13498 bytes public/logos/mars.jpg | Bin 0 -> 45722 bytes public/logos/mars.png | Bin 0 -> 263430 bytes public/logos/meme.svg | 13 + public/logos/microtick.png | Bin 0 -> 15123 bytes public/logos/migaloo.png | Bin 0 -> 11100 bytes public/logos/nois.svg | 68 + public/logos/nym.jpeg | Bin 0 -> 1168 bytes public/logos/odin.png | Bin 0 -> 4046 bytes public/logos/okexchain.svg | 34 + public/logos/okp4.svg | 2 + public/logos/omniflix.png | Bin 0 -> 268164 bytes public/logos/osmosis.jpg | Bin 0 -> 17840 bytes public/logos/passage.png | Bin 0 -> 28237 bytes public/logos/persistence.png | Bin 0 -> 17894 bytes public/logos/planq.png | Bin 0 -> 13555 bytes public/logos/point-logo.png | Bin 0 -> 33448 bytes public/logos/provenance.svg | 5 + public/logos/quasar.png | Bin 0 -> 12750 bytes public/logos/quicksilver.png | Bin 0 -> 5873 bytes public/logos/rebus.png | Bin 0 -> 47863 bytes public/logos/regen.svg | 16 + public/logos/rizon.svg | 59 + public/logos/secret.png | Bin 0 -> 105005 bytes public/logos/sentinel.png | Bin 0 -> 31899 bytes public/logos/shentu.jpg | Bin 0 -> 14522 bytes public/logos/sifchain.jpeg | Bin 0 -> 11689 bytes public/logos/stafihub.png | Bin 0 -> 5190 bytes public/logos/stargaze.png | Bin 0 -> 82937 bytes public/logos/starname.jpg | Bin 0 -> 14231 bytes public/logos/stride.png | Bin 0 -> 2028 bytes public/logos/teritori.svg | 104 + public/logos/terra-luna-krt.png | Bin 0 -> 141381 bytes public/logos/terra-luna-tokenlogo.webp | Bin 0 -> 4702 bytes public/logos/terra-luna-ust.png | Bin 0 -> 31083 bytes public/logos/terra-luna.jpg | Bin 0 -> 9865 bytes public/logos/umee.png | Bin 0 -> 73872 bytes public/logos/unification.png | Bin 0 -> 42893 bytes public/logos/usdc.svg | 12 + public/logos/usdt.svg | 1 + public/logos/wavax.svg | 6 + public/logos/weth.svg | 14 + public/logos/whitewhale.png | Bin 0 -> 51482 bytes public/logos/wmatic.svg | 12 + src/App.vue | 22 + src/assets/base.css | 74 + src/assets/logo.svg | 82 + src/assets/main.css | 35 + src/components/CardStatisticsHorizontal.vue | 55 + src/components/CardStatisticsVertical.vue | 64 + src/components/CardStatisticsWithImages.vue | 65 + src/components/ChainSummary.vue | 54 + src/components/ProposalProcess.vue | 58 + src/components/ValidatorCommissionRate.vue | 155 + src/components/charts/PriceMarketChart.vue | 30 + src/components/charts/apexCharConfig.ts | 779 ++ src/components/dynamic/ArrayBytesElement.vue | 15 + src/components/dynamic/ArrayElement.vue | 31 + src/components/dynamic/ArrayObjectElement.vue | 30 + src/components/dynamic/DynamicComponent.vue | 11 + src/components/dynamic/NumberElement.vue | 6 + src/components/dynamic/ObjectElement.vue | 19 + src/components/dynamic/TextElement.vue | 6 + src/components/dynamic/TxsElement.vue | 35 + src/components/dynamic/UInt8Array.vue | 16 + src/components/dynamic/index.ts | 37 + src/components/icons/IconCommunity.vue | 7 + src/components/icons/IconDocumentation.vue | 7 + src/components/icons/IconEcosystem.vue | 7 + src/components/icons/IconSupport.vue | 7 + src/components/icons/IconTooling.vue | 19 + src/layouts/blank.vue | 21 + src/layouts/components/Breadcrumbs.vue | 25 + src/layouts/components/ChainProfile.vue | 56 + src/layouts/components/DefaultLayout.vue | 110 + src/layouts/components/Footer.vue | 33 + src/layouts/components/NavBarI18n.vue | 34 + .../components/NavBarNotifications.vue | 88 + src/layouts/components/NavSearchBar.vue | 170 + src/layouts/components/NavbarShortcuts.vue | 44 + .../components/NavbarThemeSwitcher.vue | 22 + src/layouts/default.vue | 19 + src/libs/address.ts | 73 + src/libs/api.ts | 16 + src/libs/extensions/OsmosMintExtention.ts | 38 + src/libs/http.ts | 38 + src/libs/index.ts | 4 + src/libs/misc.ts | 19 + src/libs/registry.ts | 46 + src/main.ts | 33 + src/modules/[chain]/block/[height].vue | 58 + src/modules/[chain]/block/block.ts | 62 + src/modules/[chain]/block/index.vue | 74 + src/modules/[chain]/index.vue | 191 + src/modules/[chain]/indexStore.ts | 224 + src/modules/[chain]/staking/[validator].vue | 254 + src/modules/[chain]/staking/index.vue | 232 + src/modules/[chain]/test.vue | 3 + src/modules/[chain]/tx/[hash].vue | 66 + src/modules/wallet/test.vue | 3 + src/pages/[...all].vue | 40 + src/pages/index.vue | 56 + src/pages/second-page.vue | 18 + src/plugins/i18n/index.ts | 15 + src/plugins/i18n/locales/cn.json | 14 + src/plugins/i18n/locales/en.json | 15 + src/plugins/pinia/ClientProperties.ts | 11 + src/plugins/pinia/dashboardPlugin.ts | 10 + .../components/AddAuthenticatorAppDialog.vue | 100 + .../@core/components/AddEditAddressDialog.vue | 261 + .../vuetify/@core/components/AppBarSearch.vue | 378 + .../@core/components/AppCardActions.vue | 152 + .../vuetify/@core/components/AppCardCode.vue | 125 + .../@core/components/AppDateTimePicker.vue | 416 + .../components/AppDrawerHeaderSection.vue | 29 + .../vuetify/@core/components/AppOtpInput.vue | 88 + .../vuetify/@core/components/AppPricing.vue | 230 + .../@core/components/AppSearchHeader.vue | 77 + .../vuetify/@core/components/BuyNow.vue | 40 + .../@core/components/CardAddEditDialog.vue | 147 + .../components/CardStatisticsHorizontal.vue | 55 + .../components/CardStatisticsVertical.vue | 63 + .../components/CardStatisticsWithImages.vue | 65 + .../@core/components/ConfirmDialog.vue | 73 + .../@core/components/CustomCheckboxes.vue | 75 + .../components/CustomCheckboxesWithIcon.vue | 77 + .../components/CustomCheckboxesWithImage.vue | 80 + .../vuetify/@core/components/CustomRadios.vue | 74 + .../@core/components/CustomRadiosWithIcon.vue | 77 + .../components/CustomRadiosWithImage.vue | 65 + .../@core/components/CustomizerSection.vue | 22 + .../@core/components/DialogCloseBtn.vue | 20 + .../EnableOneTimePasswordDialog.vue | 79 + .../vuetify/@core/components/ErrorHeader.vue | 22 + src/plugins/vuetify/@core/components/I18n.vue | 56 + .../vuetify/@core/components/MoreBtn.vue | 27 + .../@core/components/Notifications.vue | 196 + .../@core/components/PricingPlanDialog.vue | 55 + .../@core/components/ReferAndEarnDialog.vue | 185 + .../@core/components/ShareProjectDialog.vue | 203 + .../vuetify/@core/components/Shortcuts.vue | 76 + .../@core/components/TheCustomizer.vue | 376 + .../@core/components/ThemeSwitcher.vue | 32 + .../@core/components/TwoFactorAuthDialog.vue | 158 + .../@core/components/UserInfoEditDialog.vue | 226 + .../components/UserUpgradePlanDialog.vue | 89 + .../composable/useGenerateImageVariant.ts | 26 + .../@core/composable/useResponsiveSidebar.ts | 29 + .../vuetify/@core/composable/useSkins.ts | 36 + .../@core/composable/useThemeConfig.ts | 154 + src/plugins/vuetify/@core/enums.ts | 14 + src/plugins/vuetify/@core/index.ts | 97 + .../@core/libs/apex-chart/apexCharConfig.ts | 703 ++ .../@core/libs/chartjs/chartjsConfig.ts | 373 + .../@core/libs/chartjs/components/BarChart.ts | 58 + .../libs/chartjs/components/BubbleChart.ts | 58 + .../libs/chartjs/components/DoughnutChart.ts | 58 + .../libs/chartjs/components/LineChart.ts | 58 + .../libs/chartjs/components/PolarAreaChart.ts | 58 + .../libs/chartjs/components/RadarChart.ts | 58 + .../libs/chartjs/components/ScatterChart.ts | 58 + .../vuetify/@core/scss/base/_components.scss | 139 + .../vuetify/@core/scss/base/_dark.scss | 16 + .../_default-layout-w-horizontal-nav.scss | 45 + .../base/_default-layout-w-vertical-nav.scss | 103 + .../@core/scss/base/_default-layout.scss | 8 + .../@core/scss/base/_horizontal-nav.scss | 189 + .../vuetify/@core/scss/base/_index.scss | 48 + .../vuetify/@core/scss/base/_layouts.scss | 63 + .../vuetify/@core/scss/base/_misc.scss | 20 + .../vuetify/@core/scss/base/_mixins.scss | 73 + .../@core/scss/base/_route-transitions.scss | 70 + .../vuetify/@core/scss/base/_utilities.scss | 116 + .../vuetify/@core/scss/base/_utils.scss | 152 + .../vuetify/@core/scss/base/_variables.scss | 141 + .../@core/scss/base/_vertical-nav.scss | 245 + .../scss/base/libs/_perfect-scrollbar.scss | 35 + .../@core/scss/base/libs/vuetify/_index.scss | 1 + .../scss/base/libs/vuetify/_overrides.scss | 243 + .../scss/base/libs/vuetify/_variables.scss | 55 + .../_default-layout-horizontal-nav.scss | 27 + .../_default-layout-vertical-nav.scss | 46 + .../base/placeholders/_default-layout.scss | 3 + .../base/placeholders/_horizontal-nav.scss | 94 + .../@core/scss/base/placeholders/_index.scss | 7 + .../@core/scss/base/placeholders/_misc.scss | 7 + .../@core/scss/base/placeholders/_nav.scss | 33 + .../scss/base/placeholders/_vertical-nav.scss | 81 + .../@core/scss/base/skins/_bordered.scss | 90 + .../vuetify/@core/scss/base/skins/_index.scss | 1 + .../@core/scss/template/_components.scss | 108 + .../@core/scss/template/_horizontal-nav.scss | 13 + .../@core/scss/template/_utilities.scss | 11 + .../vuetify/@core/scss/template/_utils.scss | 41 + .../@core/scss/template/_variables.scss | 74 + .../@core/scss/template/_vertical-nav.scss | 32 + .../vuetify/@core/scss/template/index.scss | 12 + .../@core/scss/template/libs/apex-chart.scss | 95 + .../scss/template/libs/full-calendar.scss | 254 + .../template/libs/vuetify/_overrides.scss | 43 + .../template/libs/vuetify/_variables.scss | 225 + .../scss/template/libs/vuetify/index.scss | 2 + .../@core/scss/template/pages/misc.scss | 35 + .../@core/scss/template/pages/page-auth.scss | 45 + .../scss/template/placeholders/_index.scss | 2 + .../scss/template/placeholders/_nav.scss | 9 + .../template/placeholders/_vertical-nav.scss | 9 + src/plugins/vuetify/@core/types.d.ts | 107 + src/plugins/vuetify/@core/utils/formatters.ts | 46 + src/plugins/vuetify/@core/utils/index.ts | 33 + src/plugins/vuetify/@core/utils/validators.ts | 109 + src/plugins/vuetify/@core/utils/vuetify.ts | 12 + src/plugins/vuetify/@iconify/build-icons.js | 217 + src/plugins/vuetify/@iconify/build-icons.ts | 306 + src/plugins/vuetify/@iconify/icons-bundle.js | 4 + src/plugins/vuetify/@iconify/tsconfig.json | 18 + src/plugins/vuetify/@layouts/components.ts | 6 + .../@layouts/components/TransitionExpand.vue | 92 + .../@layouts/components/VNodeRenderer.tsx | 17 + .../@layouts/components/VerticalNav.vue | 176 + .../@layouts/components/VerticalNavGroup.vue | 253 + .../@layouts/components/VerticalNavLayout.vue | 250 + .../@layouts/components/VerticalNavLink.vue | 48 + .../components/VerticalNavSectionTitle.vue | 34 + .../composable/useDynamicVhCssProperty.ts | 14 + .../vuetify/@layouts/composable/useLayouts.ts | 206 + src/plugins/vuetify/@layouts/enums.ts | 21 + src/plugins/vuetify/@layouts/index.ts | 63 + .../vuetify/@layouts/styles/_classes.scss | 3 + .../@layouts/styles/_default-layout.scss | 35 + .../vuetify/@layouts/styles/_global.scss | 16 + .../vuetify/@layouts/styles/_mixins.scss | 28 + .../@layouts/styles/_placeholders.scss | 53 + src/plugins/vuetify/@layouts/styles/_rtl.scss | 7 + .../vuetify/@layouts/styles/_variables.scss | 28 + .../vuetify/@layouts/styles/index.scss | 3 + src/plugins/vuetify/@layouts/types.d.ts | 157 + src/plugins/vuetify/@layouts/utils.ts | 91 + src/plugins/vuetify/defaults.ts | 124 + src/plugins/vuetify/icons.ts | 24 + .../vuetify/images/avatars/avatar-1.png | Bin 0 -> 8032 bytes .../vuetify/images/avatars/avatar-10.png | Bin 0 -> 8118 bytes .../vuetify/images/avatars/avatar-11.png | Bin 0 -> 8725 bytes .../vuetify/images/avatars/avatar-12.png | Bin 0 -> 10799 bytes .../vuetify/images/avatars/avatar-13.png | Bin 0 -> 7811 bytes .../vuetify/images/avatars/avatar-14.png | Bin 0 -> 9237 bytes .../vuetify/images/avatars/avatar-15.png | Bin 0 -> 8009 bytes .../vuetify/images/avatars/avatar-2.png | Bin 0 -> 8118 bytes .../vuetify/images/avatars/avatar-3.png | Bin 0 -> 8725 bytes .../vuetify/images/avatars/avatar-4.png | Bin 0 -> 10799 bytes .../vuetify/images/avatars/avatar-5.png | Bin 0 -> 7811 bytes .../vuetify/images/avatars/avatar-6.png | Bin 0 -> 9237 bytes .../vuetify/images/avatars/avatar-7.png | Bin 0 -> 8009 bytes .../vuetify/images/avatars/avatar-8.png | Bin 0 -> 9125 bytes .../vuetify/images/avatars/avatar-9.png | Bin 0 -> 8032 bytes .../iconify-svg/vertical-nav-header-arrow.svg | 4 + src/plugins/vuetify/images/logo.svg | 18 + .../images/misc/pricing-cta-illustration.png | Bin 0 -> 12970 bytes .../images/misc/pricing-illustration-1.png | Bin 0 -> 2260 bytes .../images/misc/pricing-illustration-2.png | Bin 0 -> 1880 bytes .../images/misc/pricing-illustration-3.png | Bin 0 -> 1866 bytes .../vuetify/images/misc/triangle-dark.png | Bin 0 -> 757 bytes .../vuetify/images/misc/triangle-light.png | Bin 0 -> 6538 bytes src/plugins/vuetify/images/misc/trophy.png | Bin 0 -> 14567 bytes src/plugins/vuetify/images/pages/1.png | Bin 0 -> 104009 bytes src/plugins/vuetify/images/pages/2.png | Bin 0 -> 65429 bytes src/plugins/vuetify/images/pages/3.png | Bin 0 -> 99013 bytes src/plugins/vuetify/images/pages/401.png | Bin 0 -> 19807 bytes src/plugins/vuetify/images/pages/404.png | Bin 0 -> 17178 bytes src/plugins/vuetify/images/pages/5.jpg | Bin 0 -> 6790 bytes src/plugins/vuetify/images/pages/500.png | Bin 0 -> 16393 bytes src/plugins/vuetify/images/pages/6.png | Bin 0 -> 13389 bytes .../pages/app-search-header-bg-dark.png | Bin 0 -> 6307 bytes .../pages/app-search-header-bg-light.png | Bin 0 -> 6686 bytes .../auth-v1-forgot-password-mask-dark.png | Bin 0 -> 9446 bytes .../auth-v1-forgot-password-mask-light.png | Bin 0 -> 9132 bytes .../images/pages/auth-v1-login-mask-dark.png | Bin 0 -> 10371 bytes .../images/pages/auth-v1-login-mask-light.png | Bin 0 -> 10054 bytes .../pages/auth-v1-register-mask-dark.png | Bin 0 -> 10356 bytes .../pages/auth-v1-register-mask-light.png | Bin 0 -> 10702 bytes .../auth-v1-reset-password-mask-dark.png | Bin 0 -> 8968 bytes .../auth-v1-reset-password-mask-light.png | Bin 0 -> 8791 bytes ...ot-password-illustration-bordered-dark.png | Bin 0 -> 73149 bytes ...t-password-illustration-bordered-light.png | Bin 0 -> 72462 bytes ...h-v2-forgot-password-illustration-dark.png | Bin 0 -> 79994 bytes ...-v2-forgot-password-illustration-light.png | Bin 0 -> 80702 bytes .../auth-v2-forgot-password-mask-dark.png | Bin 0 -> 9147 bytes .../auth-v2-forgot-password-mask-light.png | Bin 0 -> 8900 bytes ...th-v2-login-illustration-bordered-dark.png | Bin 0 -> 72601 bytes ...h-v2-login-illustration-bordered-light.png | Bin 0 -> 74167 bytes .../pages/auth-v2-login-illustration-dark.png | Bin 0 -> 81894 bytes .../auth-v2-login-illustration-light.png | Bin 0 -> 82757 bytes .../images/pages/auth-v2-login-mask-dark.png | Bin 0 -> 9497 bytes .../images/pages/auth-v2-login-mask-light.png | Bin 0 -> 9248 bytes ...v2-register-illustration-bordered-dark.png | Bin 0 -> 75246 bytes ...2-register-illustration-bordered-light.png | Bin 0 -> 76457 bytes .../auth-v2-register-illustration-dark.png | Bin 0 -> 85004 bytes .../auth-v2-register-illustration-light.png | Bin 0 -> 86054 bytes .../pages/auth-v2-register-mask-dark.png | Bin 0 -> 9264 bytes .../pages/auth-v2-register-mask-light.png | Bin 0 -> 9984 bytes ...et-password-illustration-bordered-dark.png | Bin 0 -> 81372 bytes ...t-password-illustration-bordered-light.png | Bin 0 -> 82178 bytes ...th-v2-reset-password-illustration-dark.png | Bin 0 -> 90640 bytes ...h-v2-reset-password-illustration-light.png | Bin 0 -> 90996 bytes .../auth-v2-reset-password-mask-dark.png | Bin 0 -> 9529 bytes .../auth-v2-reset-password-mask-light.png | Bin 0 -> 8939 bytes ...2-two-steps-illustration-bordered-dark.png | Bin 0 -> 76217 bytes ...-two-steps-illustration-bordered-light.png | Bin 0 -> 76579 bytes .../auth-v2-two-steps-illustration-dark.png | Bin 0 -> 84307 bytes .../auth-v2-two-steps-illustration-light.png | Bin 0 -> 87867 bytes ...erify-email-illustration-bordered-dark.png | Bin 0 -> 75090 bytes ...rify-email-illustration-bordered-light.png | Bin 0 -> 74242 bytes ...auth-v2-verify-email-illustration-dark.png | Bin 0 -> 82508 bytes ...uth-v2-verify-email-illustration-light.png | Bin 0 -> 86502 bytes .../vuetify/images/pages/background-1.jpg | Bin 0 -> 36820 bytes .../vuetify/images/pages/background-2.jpg | Bin 0 -> 74443 bytes .../vuetify/images/pages/background-3.jpg | Bin 0 -> 88783 bytes .../vuetify/images/pages/misc-401-object.png | Bin 0 -> 3033 bytes .../vuetify/images/pages/misc-404-object.png | Bin 0 -> 3044 bytes .../vuetify/images/pages/misc-500-object.png | Bin 0 -> 3044 bytes .../images/pages/misc-coming-soon-object.png | Bin 0 -> 3025 bytes .../vuetify/images/pages/misc-coming-soon.png | Bin 0 -> 15899 bytes .../vuetify/images/pages/misc-mask-dark.png | Bin 0 -> 857 bytes .../vuetify/images/pages/misc-mask-light.png | Bin 0 -> 958 bytes .../pages/misc-under-maintenance-object.png | Bin 0 -> 2708 bytes .../images/pages/misc-under-maintenance.png | Bin 0 -> 23248 bytes .../vuetify/images/pages/pixinvent-qr.png | Bin 0 -> 6691 bytes .../vuetify/images/pages/pose-fs-9.png | Bin 0 -> 29430 bytes .../vuetify/images/pages/puma-shoes.jpeg | Bin 0 -> 13191 bytes .../images/pages/user-profile-header-bg.png | Bin 0 -> 21112 bytes src/plugins/vuetify/images/svg/discord.svg | 10 + src/plugins/vuetify/images/svg/gift.svg | 8 + src/plugins/vuetify/images/svg/keyboard.svg | 8 + src/plugins/vuetify/images/svg/laptop.svg | 8 + src/plugins/vuetify/images/svg/lightbulb.svg | 8 + src/plugins/vuetify/images/svg/paypal.svg | 19 + src/plugins/vuetify/images/svg/rocket.svg | 8 + src/plugins/vuetify/index.ts | 18 + src/plugins/vuetify/layouts.ts | 6 + src/plugins/vuetify/styles/styles.scss | 4 + .../vuetify/styles/variables/_template.scss | 6 + .../vuetify/styles/variables/_vuetify.scss | 7 + src/plugins/vuetify/theme.ts | 106 + src/plugins/vuetify/webfontloader.ts | 16 + src/router/index.ts | 22 + src/stores/index.ts | 10 + src/stores/template.ts | 13 + src/stores/useBankStore.ts | 45 + src/stores/useBaseStore.ts | 66 + src/stores/useBlockchain.ts | 128 + src/stores/useCoinGecko.ts | 51 + src/stores/useDashboard.ts | 261 + src/stores/useDistributionStore.ts | 19 + src/stores/useFormatter.ts | 160 + src/stores/useGovStore.ts | 46 + src/stores/useMintStore.ts | 27 + src/stores/useStakingStore.ts | 64 + src/types/Coin.ts | 4 + src/types/Proposal.ts | 5 + src/types/index.ts | 2 + themeConfig.ts | 51 + tsconfig.config.json | 8 + tsconfig.json | 20 + vite.config.ts | 79 + yarn-error.log | 10411 +++++++++++++++ yarn.lock | 3465 +---- 1157 files changed, 33878 insertions(+), 159167 deletions(-) create mode 100644 .idea/vcs.xml create mode 100644 .idea/workspace.xml create mode 100644 README.md create mode 100644 auto-imports.d.ts create mode 100644 chains/mainnet/8ball.json create mode 100644 chains/mainnet/agoric.json create mode 100644 chains/mainnet/akash.json create mode 100644 chains/mainnet/aura.json.disabled create mode 100644 chains/mainnet/axelar.json create mode 100644 chains/mainnet/band.json create mode 100644 chains/mainnet/beezee.json create mode 100644 chains/mainnet/bitcanna.json create mode 100644 chains/mainnet/bitsong.json create mode 100644 chains/mainnet/bostrom.json create mode 100644 chains/mainnet/canto.json create mode 100644 chains/mainnet/carbon.json create mode 100644 chains/mainnet/celestia.json.disabled create mode 100644 chains/mainnet/cerberus.json create mode 100644 chains/mainnet/chain4energy.json create mode 100644 chains/mainnet/cheqd.json create mode 100644 chains/mainnet/chihuahua.json create mode 100644 chains/mainnet/cht.json.disabled create mode 100644 chains/mainnet/comdex.json create mode 100644 chains/mainnet/commercionetwork.json create mode 100644 chains/mainnet/cosmos.json create mode 100644 chains/mainnet/crescent.json create mode 100644 chains/mainnet/cronos.json create mode 100644 chains/mainnet/crypto.json create mode 100644 chains/mainnet/cudos.json create mode 100644 chains/mainnet/decentr.json create mode 100644 chains/mainnet/desmos.json create mode 100644 chains/mainnet/dig.json create mode 100644 chains/mainnet/echelon.json create mode 100644 chains/mainnet/emoney.json create mode 100644 chains/mainnet/evmos.json create mode 100644 chains/mainnet/fetchai.json create mode 100644 chains/mainnet/genesisl1.json create mode 100644 chains/mainnet/gravitybridge.json create mode 100644 chains/mainnet/injective.json create mode 100644 chains/mainnet/iris.json create mode 100644 chains/mainnet/ixo.json create mode 100644 chains/mainnet/jackal.json create mode 100644 chains/mainnet/juno.json create mode 100644 chains/mainnet/kava.json create mode 100644 chains/mainnet/kichain.json create mode 100644 chains/mainnet/kujira.json create mode 100644 chains/mainnet/lambda.json create mode 100644 chains/mainnet/likecoin.json create mode 100644 chains/mainnet/lum.json create mode 100644 chains/mainnet/lumenx.json create mode 100644 chains/mainnet/mars.json create mode 100644 chains/mainnet/meme.json create mode 100644 chains/mainnet/microtick.json create mode 100644 chains/mainnet/migaloo.json create mode 100644 chains/mainnet/nym.json create mode 100644 chains/mainnet/odin.json create mode 100644 chains/mainnet/okexchain.json.disabled create mode 100644 chains/mainnet/omniflix.json create mode 100644 chains/mainnet/osmosis.json create mode 100644 chains/mainnet/passage.json create mode 100644 chains/mainnet/persistence.json create mode 100644 chains/mainnet/planq.json create mode 100644 chains/mainnet/point.json create mode 100644 chains/mainnet/provenance.json create mode 100644 chains/mainnet/quicksilver.json create mode 100644 chains/mainnet/rebus.json create mode 100644 chains/mainnet/regen.json create mode 100644 chains/mainnet/rizon.json create mode 100644 chains/mainnet/secret.json create mode 100644 chains/mainnet/sentinel.json create mode 100644 chains/mainnet/shentu.json create mode 100644 chains/mainnet/sifchain.json create mode 100644 chains/mainnet/sommelier.json.disabled create mode 100644 chains/mainnet/stafihub.json create mode 100644 chains/mainnet/stargaze.json create mode 100644 chains/mainnet/starname.json create mode 100644 chains/mainnet/stride.json create mode 100644 chains/mainnet/teritori.json create mode 100644 chains/mainnet/terra.json create mode 100644 chains/mainnet/terra2.json create mode 100644 chains/mainnet/umee.json create mode 100644 chains/mainnet/unification.json create mode 100644 chains/mainnet/vidulum.json create mode 100644 chains/mainnet/whitewhale.json create mode 100644 chains/testnet/iris.json create mode 100644 chains/testnet/juno.json create mode 100644 chains/testnet/omniflix.json create mode 100644 chains/testnet/stargaze.json create mode 100644 components.d.ts create mode 100644 env.d.ts create mode 100644 index.html delete mode 100644 lerna.json delete mode 100644 package-lock.json delete mode 100644 packages/codegen/.telescope.json delete mode 100644 packages/codegen/dist/amino/amino.d.ts delete mode 100644 packages/codegen/dist/amino/bundle.d.ts delete mode 100644 packages/codegen/dist/confio/proofs.d.ts delete mode 100644 packages/codegen/dist/cosmos/app/v1alpha1/config.d.ts delete mode 100644 packages/codegen/dist/cosmos/app/v1alpha1/module.d.ts delete mode 100644 packages/codegen/dist/cosmos/app/v1alpha1/query.d.ts delete mode 100644 packages/codegen/dist/cosmos/app/v1alpha1/query.rpc.Query.d.ts delete mode 100644 packages/codegen/dist/cosmos/auth/v1beta1/auth.d.ts delete mode 100644 packages/codegen/dist/cosmos/auth/v1beta1/genesis.d.ts delete mode 100644 packages/codegen/dist/cosmos/auth/v1beta1/query.d.ts delete mode 100644 packages/codegen/dist/cosmos/auth/v1beta1/query.lcd.d.ts delete mode 100644 packages/codegen/dist/cosmos/auth/v1beta1/query.rpc.Query.d.ts delete mode 100644 packages/codegen/dist/cosmos/authz/v1beta1/authz.d.ts delete mode 100644 packages/codegen/dist/cosmos/authz/v1beta1/event.d.ts delete mode 100644 packages/codegen/dist/cosmos/authz/v1beta1/genesis.d.ts delete mode 100644 packages/codegen/dist/cosmos/authz/v1beta1/query.d.ts delete mode 100644 packages/codegen/dist/cosmos/authz/v1beta1/query.lcd.d.ts delete mode 100644 packages/codegen/dist/cosmos/authz/v1beta1/query.rpc.Query.d.ts delete mode 100644 packages/codegen/dist/cosmos/authz/v1beta1/tx.d.ts delete mode 100644 packages/codegen/dist/cosmos/authz/v1beta1/tx.rpc.msg.d.ts delete mode 100644 packages/codegen/dist/cosmos/bank/v1beta1/authz.d.ts delete mode 100644 packages/codegen/dist/cosmos/bank/v1beta1/bank.d.ts delete mode 100644 packages/codegen/dist/cosmos/bank/v1beta1/genesis.d.ts delete mode 100644 packages/codegen/dist/cosmos/bank/v1beta1/query.d.ts delete mode 100644 packages/codegen/dist/cosmos/bank/v1beta1/query.lcd.d.ts delete mode 100644 packages/codegen/dist/cosmos/bank/v1beta1/query.rpc.Query.d.ts delete mode 100644 packages/codegen/dist/cosmos/bank/v1beta1/tx.d.ts delete mode 100644 packages/codegen/dist/cosmos/bank/v1beta1/tx.rpc.msg.d.ts delete mode 100644 packages/codegen/dist/cosmos/base/abci/v1beta1/abci.d.ts delete mode 100644 packages/codegen/dist/cosmos/base/kv/v1beta1/kv.d.ts delete mode 100644 packages/codegen/dist/cosmos/base/query/v1beta1/pagination.d.ts delete mode 100644 packages/codegen/dist/cosmos/base/reflection/v1beta1/reflection.d.ts delete mode 100644 packages/codegen/dist/cosmos/base/reflection/v2alpha1/reflection.d.ts delete mode 100644 packages/codegen/dist/cosmos/base/snapshots/v1beta1/snapshot.d.ts delete mode 100644 packages/codegen/dist/cosmos/base/store/v1beta1/commit_info.d.ts delete mode 100644 packages/codegen/dist/cosmos/base/store/v1beta1/listening.d.ts delete mode 100644 packages/codegen/dist/cosmos/base/tendermint/v1beta1/query.d.ts delete mode 100644 packages/codegen/dist/cosmos/base/tendermint/v1beta1/query.lcd.d.ts delete mode 100644 packages/codegen/dist/cosmos/base/tendermint/v1beta1/query.rpc.Service.d.ts delete mode 100644 packages/codegen/dist/cosmos/base/v1beta1/coin.d.ts delete mode 100644 packages/codegen/dist/cosmos/bundle.d.ts delete mode 100644 packages/codegen/dist/cosmos/capability/v1beta1/capability.d.ts delete mode 100644 packages/codegen/dist/cosmos/capability/v1beta1/genesis.d.ts delete mode 100644 packages/codegen/dist/cosmos/crisis/v1beta1/genesis.d.ts delete mode 100644 packages/codegen/dist/cosmos/crisis/v1beta1/tx.d.ts delete mode 100644 packages/codegen/dist/cosmos/crisis/v1beta1/tx.rpc.msg.d.ts delete mode 100644 packages/codegen/dist/cosmos/crypto/ed25519/keys.d.ts delete mode 100644 packages/codegen/dist/cosmos/crypto/hd/v1/hd.d.ts delete mode 100644 packages/codegen/dist/cosmos/crypto/keyring/v1/record.d.ts delete mode 100644 packages/codegen/dist/cosmos/crypto/multisig/keys.d.ts delete mode 100644 packages/codegen/dist/cosmos/crypto/multisig/v1beta1/multisig.d.ts delete mode 100644 packages/codegen/dist/cosmos/crypto/secp256k1/keys.d.ts delete mode 100644 packages/codegen/dist/cosmos/crypto/secp256r1/keys.d.ts delete mode 100644 packages/codegen/dist/cosmos/distribution/v1beta1/distribution.d.ts delete mode 100644 packages/codegen/dist/cosmos/distribution/v1beta1/genesis.d.ts delete mode 100644 packages/codegen/dist/cosmos/distribution/v1beta1/query.d.ts delete mode 100644 packages/codegen/dist/cosmos/distribution/v1beta1/query.lcd.d.ts delete mode 100644 packages/codegen/dist/cosmos/distribution/v1beta1/query.rpc.Query.d.ts delete mode 100644 packages/codegen/dist/cosmos/distribution/v1beta1/tx.d.ts delete mode 100644 packages/codegen/dist/cosmos/distribution/v1beta1/tx.rpc.msg.d.ts delete mode 100644 packages/codegen/dist/cosmos/evidence/v1beta1/evidence.d.ts delete mode 100644 packages/codegen/dist/cosmos/evidence/v1beta1/genesis.d.ts delete mode 100644 packages/codegen/dist/cosmos/evidence/v1beta1/query.d.ts delete mode 100644 packages/codegen/dist/cosmos/evidence/v1beta1/query.lcd.d.ts delete mode 100644 packages/codegen/dist/cosmos/evidence/v1beta1/query.rpc.Query.d.ts delete mode 100644 packages/codegen/dist/cosmos/evidence/v1beta1/tx.d.ts delete mode 100644 packages/codegen/dist/cosmos/evidence/v1beta1/tx.rpc.msg.d.ts delete mode 100644 packages/codegen/dist/cosmos/feegrant/v1beta1/feegrant.d.ts delete mode 100644 packages/codegen/dist/cosmos/feegrant/v1beta1/genesis.d.ts delete mode 100644 packages/codegen/dist/cosmos/feegrant/v1beta1/query.d.ts delete mode 100644 packages/codegen/dist/cosmos/feegrant/v1beta1/query.lcd.d.ts delete mode 100644 packages/codegen/dist/cosmos/feegrant/v1beta1/query.rpc.Query.d.ts delete mode 100644 packages/codegen/dist/cosmos/feegrant/v1beta1/tx.d.ts delete mode 100644 packages/codegen/dist/cosmos/feegrant/v1beta1/tx.rpc.msg.d.ts delete mode 100644 packages/codegen/dist/cosmos/genutil/v1beta1/genesis.d.ts delete mode 100644 packages/codegen/dist/cosmos/gov/v1/genesis.d.ts delete mode 100644 packages/codegen/dist/cosmos/gov/v1/gov.d.ts delete mode 100644 packages/codegen/dist/cosmos/gov/v1/query.d.ts delete mode 100644 packages/codegen/dist/cosmos/gov/v1/query.lcd.d.ts delete mode 100644 packages/codegen/dist/cosmos/gov/v1/query.rpc.Query.d.ts delete mode 100644 packages/codegen/dist/cosmos/gov/v1/tx.d.ts delete mode 100644 packages/codegen/dist/cosmos/gov/v1/tx.rpc.msg.d.ts delete mode 100644 packages/codegen/dist/cosmos/gov/v1beta1/genesis.d.ts delete mode 100644 packages/codegen/dist/cosmos/gov/v1beta1/gov.d.ts delete mode 100644 packages/codegen/dist/cosmos/gov/v1beta1/query.d.ts delete mode 100644 packages/codegen/dist/cosmos/gov/v1beta1/query.lcd.d.ts delete mode 100644 packages/codegen/dist/cosmos/gov/v1beta1/query.rpc.Query.d.ts delete mode 100644 packages/codegen/dist/cosmos/gov/v1beta1/tx.d.ts delete mode 100644 packages/codegen/dist/cosmos/gov/v1beta1/tx.rpc.msg.d.ts delete mode 100644 packages/codegen/dist/cosmos/group/v1/events.d.ts delete mode 100644 packages/codegen/dist/cosmos/group/v1/genesis.d.ts delete mode 100644 packages/codegen/dist/cosmos/group/v1/query.d.ts delete mode 100644 packages/codegen/dist/cosmos/group/v1/query.lcd.d.ts delete mode 100644 packages/codegen/dist/cosmos/group/v1/query.rpc.Query.d.ts delete mode 100644 packages/codegen/dist/cosmos/group/v1/tx.d.ts delete mode 100644 packages/codegen/dist/cosmos/group/v1/tx.rpc.msg.d.ts delete mode 100644 packages/codegen/dist/cosmos/group/v1/types.d.ts delete mode 100644 packages/codegen/dist/cosmos/lcd.d.ts delete mode 100644 packages/codegen/dist/cosmos/mint/v1beta1/genesis.d.ts delete mode 100644 packages/codegen/dist/cosmos/mint/v1beta1/mint.d.ts delete mode 100644 packages/codegen/dist/cosmos/mint/v1beta1/query.d.ts delete mode 100644 packages/codegen/dist/cosmos/mint/v1beta1/query.lcd.d.ts delete mode 100644 packages/codegen/dist/cosmos/mint/v1beta1/query.rpc.Query.d.ts delete mode 100644 packages/codegen/dist/cosmos/msg/v1/msg.d.ts delete mode 100644 packages/codegen/dist/cosmos/nft/v1beta1/event.d.ts delete mode 100644 packages/codegen/dist/cosmos/nft/v1beta1/genesis.d.ts delete mode 100644 packages/codegen/dist/cosmos/nft/v1beta1/nft.d.ts delete mode 100644 packages/codegen/dist/cosmos/nft/v1beta1/query.d.ts delete mode 100644 packages/codegen/dist/cosmos/nft/v1beta1/query.lcd.d.ts delete mode 100644 packages/codegen/dist/cosmos/nft/v1beta1/query.rpc.Query.d.ts delete mode 100644 packages/codegen/dist/cosmos/nft/v1beta1/tx.d.ts delete mode 100644 packages/codegen/dist/cosmos/nft/v1beta1/tx.rpc.msg.d.ts delete mode 100644 packages/codegen/dist/cosmos/orm/v1/orm.d.ts delete mode 100644 packages/codegen/dist/cosmos/orm/v1alpha1/schema.d.ts delete mode 100644 packages/codegen/dist/cosmos/params/v1beta1/params.d.ts delete mode 100644 packages/codegen/dist/cosmos/params/v1beta1/query.d.ts delete mode 100644 packages/codegen/dist/cosmos/params/v1beta1/query.lcd.d.ts delete mode 100644 packages/codegen/dist/cosmos/params/v1beta1/query.rpc.Query.d.ts delete mode 100644 packages/codegen/dist/cosmos/rpc.query.d.ts delete mode 100644 packages/codegen/dist/cosmos/rpc.tx.d.ts delete mode 100644 packages/codegen/dist/cosmos/slashing/v1beta1/genesis.d.ts delete mode 100644 packages/codegen/dist/cosmos/slashing/v1beta1/query.d.ts delete mode 100644 packages/codegen/dist/cosmos/slashing/v1beta1/query.lcd.d.ts delete mode 100644 packages/codegen/dist/cosmos/slashing/v1beta1/query.rpc.Query.d.ts delete mode 100644 packages/codegen/dist/cosmos/slashing/v1beta1/slashing.d.ts delete mode 100644 packages/codegen/dist/cosmos/slashing/v1beta1/tx.d.ts delete mode 100644 packages/codegen/dist/cosmos/slashing/v1beta1/tx.rpc.msg.d.ts delete mode 100644 packages/codegen/dist/cosmos/staking/v1beta1/authz.d.ts delete mode 100644 packages/codegen/dist/cosmos/staking/v1beta1/genesis.d.ts delete mode 100644 packages/codegen/dist/cosmos/staking/v1beta1/query.d.ts delete mode 100644 packages/codegen/dist/cosmos/staking/v1beta1/query.lcd.d.ts delete mode 100644 packages/codegen/dist/cosmos/staking/v1beta1/query.rpc.Query.d.ts delete mode 100644 packages/codegen/dist/cosmos/staking/v1beta1/staking.d.ts delete mode 100644 packages/codegen/dist/cosmos/staking/v1beta1/tx.d.ts delete mode 100644 packages/codegen/dist/cosmos/staking/v1beta1/tx.rpc.msg.d.ts delete mode 100644 packages/codegen/dist/cosmos/tx/signing/v1beta1/signing.d.ts delete mode 100644 packages/codegen/dist/cosmos/tx/v1beta1/service.d.ts delete mode 100644 packages/codegen/dist/cosmos/tx/v1beta1/service.lcd.d.ts delete mode 100644 packages/codegen/dist/cosmos/tx/v1beta1/service.rpc.Service.d.ts delete mode 100644 packages/codegen/dist/cosmos/tx/v1beta1/tx.d.ts delete mode 100644 packages/codegen/dist/cosmos/upgrade/v1beta1/query.d.ts delete mode 100644 packages/codegen/dist/cosmos/upgrade/v1beta1/query.lcd.d.ts delete mode 100644 packages/codegen/dist/cosmos/upgrade/v1beta1/query.rpc.Query.d.ts delete mode 100644 packages/codegen/dist/cosmos/upgrade/v1beta1/tx.d.ts delete mode 100644 packages/codegen/dist/cosmos/upgrade/v1beta1/tx.rpc.msg.d.ts delete mode 100644 packages/codegen/dist/cosmos/upgrade/v1beta1/upgrade.d.ts delete mode 100644 packages/codegen/dist/cosmos/vesting/v1beta1/tx.d.ts delete mode 100644 packages/codegen/dist/cosmos/vesting/v1beta1/tx.rpc.msg.d.ts delete mode 100644 packages/codegen/dist/cosmos/vesting/v1beta1/vesting.d.ts delete mode 100644 packages/codegen/dist/cosmos_proto/bundle.d.ts delete mode 100644 packages/codegen/dist/cosmos_proto/cosmos.d.ts delete mode 100644 packages/codegen/dist/cosmwasm/bundle.d.ts delete mode 100644 packages/codegen/dist/cosmwasm/lcd.d.ts delete mode 100644 packages/codegen/dist/cosmwasm/rpc.query.d.ts delete mode 100644 packages/codegen/dist/cosmwasm/rpc.tx.d.ts delete mode 100644 packages/codegen/dist/cosmwasm/wasm/v1/authz.d.ts delete mode 100644 packages/codegen/dist/cosmwasm/wasm/v1/genesis.d.ts delete mode 100644 packages/codegen/dist/cosmwasm/wasm/v1/ibc.d.ts delete mode 100644 packages/codegen/dist/cosmwasm/wasm/v1/proposal.d.ts delete mode 100644 packages/codegen/dist/cosmwasm/wasm/v1/query.d.ts delete mode 100644 packages/codegen/dist/cosmwasm/wasm/v1/query.lcd.d.ts delete mode 100644 packages/codegen/dist/cosmwasm/wasm/v1/query.rpc.Query.d.ts delete mode 100644 packages/codegen/dist/cosmwasm/wasm/v1/tx.d.ts delete mode 100644 packages/codegen/dist/cosmwasm/wasm/v1/tx.rpc.msg.d.ts delete mode 100644 packages/codegen/dist/cosmwasm/wasm/v1/types.d.ts delete mode 100644 packages/codegen/dist/gogoproto/bundle.d.ts delete mode 100644 packages/codegen/dist/gogoproto/gogo.d.ts delete mode 100644 packages/codegen/dist/google/api/annotations.d.ts delete mode 100644 packages/codegen/dist/google/api/http.d.ts delete mode 100644 packages/codegen/dist/google/bundle.d.ts delete mode 100644 packages/codegen/dist/google/protobuf/any.d.ts delete mode 100644 packages/codegen/dist/google/protobuf/descriptor.d.ts delete mode 100644 packages/codegen/dist/google/protobuf/duration.d.ts delete mode 100644 packages/codegen/dist/google/protobuf/empty.d.ts delete mode 100644 packages/codegen/dist/google/protobuf/timestamp.d.ts delete mode 100644 packages/codegen/dist/helpers.d.ts delete mode 100644 packages/codegen/dist/ibc/applications/transfer/v1/genesis.d.ts delete mode 100644 packages/codegen/dist/ibc/applications/transfer/v1/query.d.ts delete mode 100644 packages/codegen/dist/ibc/applications/transfer/v1/query.lcd.d.ts delete mode 100644 packages/codegen/dist/ibc/applications/transfer/v1/query.rpc.Query.d.ts delete mode 100644 packages/codegen/dist/ibc/applications/transfer/v1/transfer.d.ts delete mode 100644 packages/codegen/dist/ibc/applications/transfer/v1/tx.d.ts delete mode 100644 packages/codegen/dist/ibc/applications/transfer/v1/tx.rpc.msg.d.ts delete mode 100644 packages/codegen/dist/ibc/applications/transfer/v2/packet.d.ts delete mode 100644 packages/codegen/dist/ibc/bundle.d.ts delete mode 100644 packages/codegen/dist/ibc/core/channel/v1/channel.d.ts delete mode 100644 packages/codegen/dist/ibc/core/channel/v1/genesis.d.ts delete mode 100644 packages/codegen/dist/ibc/core/channel/v1/query.d.ts delete mode 100644 packages/codegen/dist/ibc/core/channel/v1/query.lcd.d.ts delete mode 100644 packages/codegen/dist/ibc/core/channel/v1/query.rpc.Query.d.ts delete mode 100644 packages/codegen/dist/ibc/core/channel/v1/tx.d.ts delete mode 100644 packages/codegen/dist/ibc/core/channel/v1/tx.rpc.msg.d.ts delete mode 100644 packages/codegen/dist/ibc/core/client/v1/client.d.ts delete mode 100644 packages/codegen/dist/ibc/core/client/v1/genesis.d.ts delete mode 100644 packages/codegen/dist/ibc/core/client/v1/query.d.ts delete mode 100644 packages/codegen/dist/ibc/core/client/v1/query.lcd.d.ts delete mode 100644 packages/codegen/dist/ibc/core/client/v1/query.rpc.Query.d.ts delete mode 100644 packages/codegen/dist/ibc/core/client/v1/tx.d.ts delete mode 100644 packages/codegen/dist/ibc/core/client/v1/tx.rpc.msg.d.ts delete mode 100644 packages/codegen/dist/ibc/core/commitment/v1/commitment.d.ts delete mode 100644 packages/codegen/dist/ibc/core/connection/v1/connection.d.ts delete mode 100644 packages/codegen/dist/ibc/core/connection/v1/genesis.d.ts delete mode 100644 packages/codegen/dist/ibc/core/connection/v1/query.d.ts delete mode 100644 packages/codegen/dist/ibc/core/connection/v1/query.lcd.d.ts delete mode 100644 packages/codegen/dist/ibc/core/connection/v1/query.rpc.Query.d.ts delete mode 100644 packages/codegen/dist/ibc/core/connection/v1/tx.d.ts delete mode 100644 packages/codegen/dist/ibc/core/connection/v1/tx.rpc.msg.d.ts delete mode 100644 packages/codegen/dist/ibc/core/port/v1/query.d.ts delete mode 100644 packages/codegen/dist/ibc/core/port/v1/query.rpc.Query.d.ts delete mode 100644 packages/codegen/dist/ibc/core/types/v1/genesis.d.ts delete mode 100644 packages/codegen/dist/ibc/lcd.d.ts delete mode 100644 packages/codegen/dist/ibc/lightclients/localhost/v1/localhost.d.ts delete mode 100644 packages/codegen/dist/ibc/lightclients/solomachine/v1/solomachine.d.ts delete mode 100644 packages/codegen/dist/ibc/lightclients/solomachine/v2/solomachine.d.ts delete mode 100644 packages/codegen/dist/ibc/lightclients/tendermint/v1/tendermint.d.ts delete mode 100644 packages/codegen/dist/ibc/rpc.query.d.ts delete mode 100644 packages/codegen/dist/ibc/rpc.tx.d.ts delete mode 100644 packages/codegen/dist/ics23/bundle.d.ts delete mode 100644 packages/codegen/dist/index.d.ts delete mode 100644 packages/codegen/dist/tendermint/abci/types.d.ts delete mode 100644 packages/codegen/dist/tendermint/bundle.d.ts delete mode 100644 packages/codegen/dist/tendermint/crypto/keys.d.ts delete mode 100644 packages/codegen/dist/tendermint/crypto/proof.d.ts delete mode 100644 packages/codegen/dist/tendermint/libs/bits/types.d.ts delete mode 100644 packages/codegen/dist/tendermint/p2p/types.d.ts delete mode 100644 packages/codegen/dist/tendermint/types/block.d.ts delete mode 100644 packages/codegen/dist/tendermint/types/evidence.d.ts delete mode 100644 packages/codegen/dist/tendermint/types/params.d.ts delete mode 100644 packages/codegen/dist/tendermint/types/types.d.ts delete mode 100644 packages/codegen/dist/tendermint/types/validator.d.ts delete mode 100644 packages/codegen/dist/tendermint/version/types.d.ts delete mode 100644 packages/codegen/package.json delete mode 100644 packages/codegen/proto/amino/LICENSE delete mode 100644 packages/codegen/proto/amino/README.md delete mode 100644 packages/codegen/proto/amino/amino.proto delete mode 100644 packages/codegen/proto/confio/LICENSE delete mode 100644 packages/codegen/proto/confio/README.md delete mode 100644 packages/codegen/proto/confio/proofs.proto delete mode 100644 packages/codegen/proto/cosmos/LICENSE delete mode 100644 packages/codegen/proto/cosmos/README.md delete mode 100644 packages/codegen/proto/cosmos/app/v1alpha1/config.proto delete mode 100644 packages/codegen/proto/cosmos/app/v1alpha1/module.proto delete mode 100644 packages/codegen/proto/cosmos/app/v1alpha1/query.proto delete mode 100644 packages/codegen/proto/cosmos/auth/v1beta1/auth.proto delete mode 100644 packages/codegen/proto/cosmos/auth/v1beta1/genesis.proto delete mode 100644 packages/codegen/proto/cosmos/auth/v1beta1/query.proto delete mode 100644 packages/codegen/proto/cosmos/authz/v1beta1/authz.proto delete mode 100644 packages/codegen/proto/cosmos/authz/v1beta1/event.proto delete mode 100644 packages/codegen/proto/cosmos/authz/v1beta1/genesis.proto delete mode 100644 packages/codegen/proto/cosmos/authz/v1beta1/query.proto delete mode 100644 packages/codegen/proto/cosmos/authz/v1beta1/tx.proto delete mode 100644 packages/codegen/proto/cosmos/bank/v1beta1/authz.proto delete mode 100644 packages/codegen/proto/cosmos/bank/v1beta1/bank.proto delete mode 100644 packages/codegen/proto/cosmos/bank/v1beta1/genesis.proto delete mode 100644 packages/codegen/proto/cosmos/bank/v1beta1/query.proto delete mode 100644 packages/codegen/proto/cosmos/bank/v1beta1/tx.proto delete mode 100644 packages/codegen/proto/cosmos/base/abci/v1beta1/abci.proto delete mode 100644 packages/codegen/proto/cosmos/base/kv/v1beta1/kv.proto delete mode 100644 packages/codegen/proto/cosmos/base/query/v1beta1/pagination.proto delete mode 100644 packages/codegen/proto/cosmos/base/reflection/v1beta1/reflection.proto delete mode 100644 packages/codegen/proto/cosmos/base/reflection/v2alpha1/reflection.proto delete mode 100644 packages/codegen/proto/cosmos/base/snapshots/v1beta1/snapshot.proto delete mode 100644 packages/codegen/proto/cosmos/base/store/v1beta1/commit_info.proto delete mode 100644 packages/codegen/proto/cosmos/base/store/v1beta1/listening.proto delete mode 100644 packages/codegen/proto/cosmos/base/tendermint/v1beta1/query.proto delete mode 100644 packages/codegen/proto/cosmos/base/v1beta1/coin.proto delete mode 100644 packages/codegen/proto/cosmos/capability/v1beta1/capability.proto delete mode 100644 packages/codegen/proto/cosmos/capability/v1beta1/genesis.proto delete mode 100644 packages/codegen/proto/cosmos/crisis/v1beta1/genesis.proto delete mode 100644 packages/codegen/proto/cosmos/crisis/v1beta1/tx.proto delete mode 100644 packages/codegen/proto/cosmos/crypto/ed25519/keys.proto delete mode 100644 packages/codegen/proto/cosmos/crypto/hd/v1/hd.proto delete mode 100644 packages/codegen/proto/cosmos/crypto/keyring/v1/record.proto delete mode 100644 packages/codegen/proto/cosmos/crypto/multisig/keys.proto delete mode 100644 packages/codegen/proto/cosmos/crypto/multisig/v1beta1/multisig.proto delete mode 100644 packages/codegen/proto/cosmos/crypto/secp256k1/keys.proto delete mode 100644 packages/codegen/proto/cosmos/crypto/secp256r1/keys.proto delete mode 100644 packages/codegen/proto/cosmos/distribution/v1beta1/distribution.proto delete mode 100644 packages/codegen/proto/cosmos/distribution/v1beta1/genesis.proto delete mode 100644 packages/codegen/proto/cosmos/distribution/v1beta1/query.proto delete mode 100644 packages/codegen/proto/cosmos/distribution/v1beta1/tx.proto delete mode 100644 packages/codegen/proto/cosmos/evidence/v1beta1/evidence.proto delete mode 100644 packages/codegen/proto/cosmos/evidence/v1beta1/genesis.proto delete mode 100644 packages/codegen/proto/cosmos/evidence/v1beta1/query.proto delete mode 100644 packages/codegen/proto/cosmos/evidence/v1beta1/tx.proto delete mode 100644 packages/codegen/proto/cosmos/feegrant/v1beta1/feegrant.proto delete mode 100644 packages/codegen/proto/cosmos/feegrant/v1beta1/genesis.proto delete mode 100644 packages/codegen/proto/cosmos/feegrant/v1beta1/query.proto delete mode 100644 packages/codegen/proto/cosmos/feegrant/v1beta1/tx.proto delete mode 100644 packages/codegen/proto/cosmos/genutil/v1beta1/genesis.proto delete mode 100644 packages/codegen/proto/cosmos/gov/v1/genesis.proto delete mode 100644 packages/codegen/proto/cosmos/gov/v1/gov.proto delete mode 100644 packages/codegen/proto/cosmos/gov/v1/query.proto delete mode 100644 packages/codegen/proto/cosmos/gov/v1/tx.proto delete mode 100644 packages/codegen/proto/cosmos/gov/v1beta1/genesis.proto delete mode 100644 packages/codegen/proto/cosmos/gov/v1beta1/gov.proto delete mode 100644 packages/codegen/proto/cosmos/gov/v1beta1/query.proto delete mode 100644 packages/codegen/proto/cosmos/gov/v1beta1/tx.proto delete mode 100644 packages/codegen/proto/cosmos/group/v1/events.proto delete mode 100644 packages/codegen/proto/cosmos/group/v1/genesis.proto delete mode 100644 packages/codegen/proto/cosmos/group/v1/query.proto delete mode 100644 packages/codegen/proto/cosmos/group/v1/tx.proto delete mode 100644 packages/codegen/proto/cosmos/group/v1/types.proto delete mode 100644 packages/codegen/proto/cosmos/mint/v1beta1/genesis.proto delete mode 100644 packages/codegen/proto/cosmos/mint/v1beta1/mint.proto delete mode 100644 packages/codegen/proto/cosmos/mint/v1beta1/query.proto delete mode 100644 packages/codegen/proto/cosmos/msg/v1/msg.proto delete mode 100644 packages/codegen/proto/cosmos/nft/v1beta1/event.proto delete mode 100644 packages/codegen/proto/cosmos/nft/v1beta1/genesis.proto delete mode 100644 packages/codegen/proto/cosmos/nft/v1beta1/nft.proto delete mode 100644 packages/codegen/proto/cosmos/nft/v1beta1/query.proto delete mode 100644 packages/codegen/proto/cosmos/nft/v1beta1/tx.proto delete mode 100644 packages/codegen/proto/cosmos/orm/v1/orm.proto delete mode 100644 packages/codegen/proto/cosmos/orm/v1alpha1/schema.proto delete mode 100644 packages/codegen/proto/cosmos/params/v1beta1/params.proto delete mode 100644 packages/codegen/proto/cosmos/params/v1beta1/query.proto delete mode 100644 packages/codegen/proto/cosmos/slashing/v1beta1/genesis.proto delete mode 100644 packages/codegen/proto/cosmos/slashing/v1beta1/query.proto delete mode 100644 packages/codegen/proto/cosmos/slashing/v1beta1/slashing.proto delete mode 100644 packages/codegen/proto/cosmos/slashing/v1beta1/tx.proto delete mode 100644 packages/codegen/proto/cosmos/staking/v1beta1/authz.proto delete mode 100644 packages/codegen/proto/cosmos/staking/v1beta1/genesis.proto delete mode 100644 packages/codegen/proto/cosmos/staking/v1beta1/query.proto delete mode 100644 packages/codegen/proto/cosmos/staking/v1beta1/staking.proto delete mode 100644 packages/codegen/proto/cosmos/staking/v1beta1/tx.proto delete mode 100644 packages/codegen/proto/cosmos/tx/signing/v1beta1/signing.proto delete mode 100644 packages/codegen/proto/cosmos/tx/v1beta1/service.proto delete mode 100644 packages/codegen/proto/cosmos/tx/v1beta1/tx.proto delete mode 100644 packages/codegen/proto/cosmos/upgrade/v1beta1/query.proto delete mode 100644 packages/codegen/proto/cosmos/upgrade/v1beta1/tx.proto delete mode 100644 packages/codegen/proto/cosmos/upgrade/v1beta1/upgrade.proto delete mode 100644 packages/codegen/proto/cosmos/vesting/v1beta1/tx.proto delete mode 100644 packages/codegen/proto/cosmos/vesting/v1beta1/vesting.proto delete mode 100644 packages/codegen/proto/cosmos_proto/LICENSE delete mode 100644 packages/codegen/proto/cosmos_proto/README.md delete mode 100644 packages/codegen/proto/cosmos_proto/cosmos.proto delete mode 100644 packages/codegen/proto/cosmwasm/LICENSE delete mode 100644 packages/codegen/proto/cosmwasm/README.md delete mode 100644 packages/codegen/proto/cosmwasm/wasm/v1/authz.proto delete mode 100644 packages/codegen/proto/cosmwasm/wasm/v1/genesis.proto delete mode 100644 packages/codegen/proto/cosmwasm/wasm/v1/ibc.proto delete mode 100644 packages/codegen/proto/cosmwasm/wasm/v1/proposal.proto delete mode 100644 packages/codegen/proto/cosmwasm/wasm/v1/query.proto delete mode 100644 packages/codegen/proto/cosmwasm/wasm/v1/tx.proto delete mode 100644 packages/codegen/proto/cosmwasm/wasm/v1/types.proto delete mode 100644 packages/codegen/proto/gogoproto/LICENSE delete mode 100644 packages/codegen/proto/gogoproto/README.md delete mode 100644 packages/codegen/proto/gogoproto/gogo.proto delete mode 100644 packages/codegen/proto/google/LICENSE delete mode 100644 packages/codegen/proto/google/README.md delete mode 100644 packages/codegen/proto/google/api/annotations.proto delete mode 100644 packages/codegen/proto/google/api/http.proto delete mode 100644 packages/codegen/proto/google/protobuf/any.proto delete mode 100644 packages/codegen/proto/google/protobuf/descriptor.proto delete mode 100644 packages/codegen/proto/google/protobuf/duration.proto delete mode 100644 packages/codegen/proto/google/protobuf/empty.proto delete mode 100644 packages/codegen/proto/google/protobuf/timestamp.proto delete mode 100644 packages/codegen/proto/ibc/LICENSE delete mode 100644 packages/codegen/proto/ibc/README.md delete mode 100644 packages/codegen/proto/ibc/applications/transfer/v1/genesis.proto delete mode 100644 packages/codegen/proto/ibc/applications/transfer/v1/query.proto delete mode 100644 packages/codegen/proto/ibc/applications/transfer/v1/transfer.proto delete mode 100644 packages/codegen/proto/ibc/applications/transfer/v1/tx.proto delete mode 100644 packages/codegen/proto/ibc/applications/transfer/v2/packet.proto delete mode 100644 packages/codegen/proto/ibc/core/channel/v1/channel.proto delete mode 100644 packages/codegen/proto/ibc/core/channel/v1/genesis.proto delete mode 100644 packages/codegen/proto/ibc/core/channel/v1/query.proto delete mode 100644 packages/codegen/proto/ibc/core/channel/v1/tx.proto delete mode 100644 packages/codegen/proto/ibc/core/client/v1/client.proto delete mode 100644 packages/codegen/proto/ibc/core/client/v1/genesis.proto delete mode 100644 packages/codegen/proto/ibc/core/client/v1/query.proto delete mode 100644 packages/codegen/proto/ibc/core/client/v1/tx.proto delete mode 100644 packages/codegen/proto/ibc/core/commitment/v1/commitment.proto delete mode 100644 packages/codegen/proto/ibc/core/connection/v1/connection.proto delete mode 100644 packages/codegen/proto/ibc/core/connection/v1/genesis.proto delete mode 100644 packages/codegen/proto/ibc/core/connection/v1/query.proto delete mode 100644 packages/codegen/proto/ibc/core/connection/v1/tx.proto delete mode 100644 packages/codegen/proto/ibc/core/port/v1/query.proto delete mode 100644 packages/codegen/proto/ibc/core/types/v1/genesis.proto delete mode 100644 packages/codegen/proto/ibc/lightclients/localhost/v1/localhost.proto delete mode 100644 packages/codegen/proto/ibc/lightclients/solomachine/v1/solomachine.proto delete mode 100644 packages/codegen/proto/ibc/lightclients/solomachine/v2/solomachine.proto delete mode 100644 packages/codegen/proto/ibc/lightclients/tendermint/v1/tendermint.proto delete mode 100644 packages/codegen/proto/tendermint/LICENSE delete mode 100644 packages/codegen/proto/tendermint/README.md delete mode 100644 packages/codegen/proto/tendermint/abci/types.proto delete mode 100644 packages/codegen/proto/tendermint/crypto/keys.proto delete mode 100644 packages/codegen/proto/tendermint/crypto/proof.proto delete mode 100644 packages/codegen/proto/tendermint/libs/bits/types.proto delete mode 100644 packages/codegen/proto/tendermint/p2p/types.proto delete mode 100644 packages/codegen/proto/tendermint/types/block.proto delete mode 100644 packages/codegen/proto/tendermint/types/evidence.proto delete mode 100644 packages/codegen/proto/tendermint/types/params.proto delete mode 100644 packages/codegen/proto/tendermint/types/types.proto delete mode 100644 packages/codegen/proto/tendermint/types/validator.proto delete mode 100644 packages/codegen/proto/tendermint/version/types.proto delete mode 100644 packages/codegen/src/amino/amino.ts delete mode 100644 packages/codegen/src/amino/bundle.ts delete mode 100644 packages/codegen/src/confio/proofs.ts delete mode 100644 packages/codegen/src/cosmos/app/v1alpha1/config.ts delete mode 100644 packages/codegen/src/cosmos/app/v1alpha1/module.ts delete mode 100644 packages/codegen/src/cosmos/app/v1alpha1/query.rpc.Query.ts delete mode 100644 packages/codegen/src/cosmos/app/v1alpha1/query.ts delete mode 100644 packages/codegen/src/cosmos/auth/v1beta1/auth.ts delete mode 100644 packages/codegen/src/cosmos/auth/v1beta1/genesis.ts delete mode 100644 packages/codegen/src/cosmos/auth/v1beta1/query.lcd.ts delete mode 100644 packages/codegen/src/cosmos/auth/v1beta1/query.rpc.Query.ts delete mode 100644 packages/codegen/src/cosmos/auth/v1beta1/query.ts delete mode 100644 packages/codegen/src/cosmos/authz/v1beta1/authz.ts delete mode 100644 packages/codegen/src/cosmos/authz/v1beta1/event.ts delete mode 100644 packages/codegen/src/cosmos/authz/v1beta1/genesis.ts delete mode 100644 packages/codegen/src/cosmos/authz/v1beta1/query.lcd.ts delete mode 100644 packages/codegen/src/cosmos/authz/v1beta1/query.rpc.Query.ts delete mode 100644 packages/codegen/src/cosmos/authz/v1beta1/query.ts delete mode 100644 packages/codegen/src/cosmos/authz/v1beta1/tx.rpc.msg.ts delete mode 100644 packages/codegen/src/cosmos/authz/v1beta1/tx.ts delete mode 100644 packages/codegen/src/cosmos/bank/v1beta1/authz.ts delete mode 100644 packages/codegen/src/cosmos/bank/v1beta1/bank.ts delete mode 100644 packages/codegen/src/cosmos/bank/v1beta1/genesis.ts delete mode 100644 packages/codegen/src/cosmos/bank/v1beta1/query.lcd.ts delete mode 100644 packages/codegen/src/cosmos/bank/v1beta1/query.rpc.Query.ts delete mode 100644 packages/codegen/src/cosmos/bank/v1beta1/query.ts delete mode 100644 packages/codegen/src/cosmos/bank/v1beta1/tx.rpc.msg.ts delete mode 100644 packages/codegen/src/cosmos/bank/v1beta1/tx.ts delete mode 100644 packages/codegen/src/cosmos/base/abci/v1beta1/abci.ts delete mode 100644 packages/codegen/src/cosmos/base/kv/v1beta1/kv.ts delete mode 100644 packages/codegen/src/cosmos/base/query/v1beta1/pagination.ts delete mode 100644 packages/codegen/src/cosmos/base/reflection/v1beta1/reflection.ts delete mode 100644 packages/codegen/src/cosmos/base/reflection/v2alpha1/reflection.ts delete mode 100644 packages/codegen/src/cosmos/base/snapshots/v1beta1/snapshot.ts delete mode 100644 packages/codegen/src/cosmos/base/store/v1beta1/commit_info.ts delete mode 100644 packages/codegen/src/cosmos/base/store/v1beta1/listening.ts delete mode 100644 packages/codegen/src/cosmos/base/tendermint/v1beta1/query.lcd.ts delete mode 100644 packages/codegen/src/cosmos/base/tendermint/v1beta1/query.rpc.Service.ts delete mode 100644 packages/codegen/src/cosmos/base/tendermint/v1beta1/query.ts delete mode 100644 packages/codegen/src/cosmos/base/v1beta1/coin.ts delete mode 100644 packages/codegen/src/cosmos/bundle.ts delete mode 100644 packages/codegen/src/cosmos/capability/v1beta1/capability.ts delete mode 100644 packages/codegen/src/cosmos/capability/v1beta1/genesis.ts delete mode 100644 packages/codegen/src/cosmos/crisis/v1beta1/genesis.ts delete mode 100644 packages/codegen/src/cosmos/crisis/v1beta1/tx.rpc.msg.ts delete mode 100644 packages/codegen/src/cosmos/crisis/v1beta1/tx.ts delete mode 100644 packages/codegen/src/cosmos/crypto/ed25519/keys.ts delete mode 100644 packages/codegen/src/cosmos/crypto/hd/v1/hd.ts delete mode 100644 packages/codegen/src/cosmos/crypto/keyring/v1/record.ts delete mode 100644 packages/codegen/src/cosmos/crypto/multisig/keys.ts delete mode 100644 packages/codegen/src/cosmos/crypto/multisig/v1beta1/multisig.ts delete mode 100644 packages/codegen/src/cosmos/crypto/secp256k1/keys.ts delete mode 100644 packages/codegen/src/cosmos/crypto/secp256r1/keys.ts delete mode 100644 packages/codegen/src/cosmos/distribution/v1beta1/distribution.ts delete mode 100644 packages/codegen/src/cosmos/distribution/v1beta1/genesis.ts delete mode 100644 packages/codegen/src/cosmos/distribution/v1beta1/query.lcd.ts delete mode 100644 packages/codegen/src/cosmos/distribution/v1beta1/query.rpc.Query.ts delete mode 100644 packages/codegen/src/cosmos/distribution/v1beta1/query.ts delete mode 100644 packages/codegen/src/cosmos/distribution/v1beta1/tx.rpc.msg.ts delete mode 100644 packages/codegen/src/cosmos/distribution/v1beta1/tx.ts delete mode 100644 packages/codegen/src/cosmos/evidence/v1beta1/evidence.ts delete mode 100644 packages/codegen/src/cosmos/evidence/v1beta1/genesis.ts delete mode 100644 packages/codegen/src/cosmos/evidence/v1beta1/query.lcd.ts delete mode 100644 packages/codegen/src/cosmos/evidence/v1beta1/query.rpc.Query.ts delete mode 100644 packages/codegen/src/cosmos/evidence/v1beta1/query.ts delete mode 100644 packages/codegen/src/cosmos/evidence/v1beta1/tx.rpc.msg.ts delete mode 100644 packages/codegen/src/cosmos/evidence/v1beta1/tx.ts delete mode 100644 packages/codegen/src/cosmos/feegrant/v1beta1/feegrant.ts delete mode 100644 packages/codegen/src/cosmos/feegrant/v1beta1/genesis.ts delete mode 100644 packages/codegen/src/cosmos/feegrant/v1beta1/query.lcd.ts delete mode 100644 packages/codegen/src/cosmos/feegrant/v1beta1/query.rpc.Query.ts delete mode 100644 packages/codegen/src/cosmos/feegrant/v1beta1/query.ts delete mode 100644 packages/codegen/src/cosmos/feegrant/v1beta1/tx.rpc.msg.ts delete mode 100644 packages/codegen/src/cosmos/feegrant/v1beta1/tx.ts delete mode 100644 packages/codegen/src/cosmos/genutil/v1beta1/genesis.ts delete mode 100644 packages/codegen/src/cosmos/gov/v1/genesis.ts delete mode 100644 packages/codegen/src/cosmos/gov/v1/gov.ts delete mode 100644 packages/codegen/src/cosmos/gov/v1/query.lcd.ts delete mode 100644 packages/codegen/src/cosmos/gov/v1/query.rpc.Query.ts delete mode 100644 packages/codegen/src/cosmos/gov/v1/query.ts delete mode 100644 packages/codegen/src/cosmos/gov/v1/tx.rpc.msg.ts delete mode 100644 packages/codegen/src/cosmos/gov/v1/tx.ts delete mode 100644 packages/codegen/src/cosmos/gov/v1beta1/genesis.ts delete mode 100644 packages/codegen/src/cosmos/gov/v1beta1/gov.ts delete mode 100644 packages/codegen/src/cosmos/gov/v1beta1/query.lcd.ts delete mode 100644 packages/codegen/src/cosmos/gov/v1beta1/query.rpc.Query.ts delete mode 100644 packages/codegen/src/cosmos/gov/v1beta1/query.ts delete mode 100644 packages/codegen/src/cosmos/gov/v1beta1/tx.rpc.msg.ts delete mode 100644 packages/codegen/src/cosmos/gov/v1beta1/tx.ts delete mode 100644 packages/codegen/src/cosmos/group/v1/events.ts delete mode 100644 packages/codegen/src/cosmos/group/v1/genesis.ts delete mode 100644 packages/codegen/src/cosmos/group/v1/query.lcd.ts delete mode 100644 packages/codegen/src/cosmos/group/v1/query.rpc.Query.ts delete mode 100644 packages/codegen/src/cosmos/group/v1/query.ts delete mode 100644 packages/codegen/src/cosmos/group/v1/tx.rpc.msg.ts delete mode 100644 packages/codegen/src/cosmos/group/v1/tx.ts delete mode 100644 packages/codegen/src/cosmos/group/v1/types.ts delete mode 100644 packages/codegen/src/cosmos/lcd.ts delete mode 100644 packages/codegen/src/cosmos/mint/v1beta1/genesis.ts delete mode 100644 packages/codegen/src/cosmos/mint/v1beta1/mint.ts delete mode 100644 packages/codegen/src/cosmos/mint/v1beta1/query.lcd.ts delete mode 100644 packages/codegen/src/cosmos/mint/v1beta1/query.rpc.Query.ts delete mode 100644 packages/codegen/src/cosmos/mint/v1beta1/query.ts delete mode 100644 packages/codegen/src/cosmos/msg/v1/msg.ts delete mode 100644 packages/codegen/src/cosmos/nft/v1beta1/event.ts delete mode 100644 packages/codegen/src/cosmos/nft/v1beta1/genesis.ts delete mode 100644 packages/codegen/src/cosmos/nft/v1beta1/nft.ts delete mode 100644 packages/codegen/src/cosmos/nft/v1beta1/query.lcd.ts delete mode 100644 packages/codegen/src/cosmos/nft/v1beta1/query.rpc.Query.ts delete mode 100644 packages/codegen/src/cosmos/nft/v1beta1/query.ts delete mode 100644 packages/codegen/src/cosmos/nft/v1beta1/tx.rpc.msg.ts delete mode 100644 packages/codegen/src/cosmos/nft/v1beta1/tx.ts delete mode 100644 packages/codegen/src/cosmos/orm/v1/orm.ts delete mode 100644 packages/codegen/src/cosmos/orm/v1alpha1/schema.ts delete mode 100644 packages/codegen/src/cosmos/params/v1beta1/params.ts delete mode 100644 packages/codegen/src/cosmos/params/v1beta1/query.lcd.ts delete mode 100644 packages/codegen/src/cosmos/params/v1beta1/query.rpc.Query.ts delete mode 100644 packages/codegen/src/cosmos/params/v1beta1/query.ts delete mode 100644 packages/codegen/src/cosmos/rpc.query.ts delete mode 100644 packages/codegen/src/cosmos/rpc.tx.ts delete mode 100644 packages/codegen/src/cosmos/slashing/v1beta1/genesis.ts delete mode 100644 packages/codegen/src/cosmos/slashing/v1beta1/query.lcd.ts delete mode 100644 packages/codegen/src/cosmos/slashing/v1beta1/query.rpc.Query.ts delete mode 100644 packages/codegen/src/cosmos/slashing/v1beta1/query.ts delete mode 100644 packages/codegen/src/cosmos/slashing/v1beta1/slashing.ts delete mode 100644 packages/codegen/src/cosmos/slashing/v1beta1/tx.rpc.msg.ts delete mode 100644 packages/codegen/src/cosmos/slashing/v1beta1/tx.ts delete mode 100644 packages/codegen/src/cosmos/staking/v1beta1/authz.ts delete mode 100644 packages/codegen/src/cosmos/staking/v1beta1/genesis.ts delete mode 100644 packages/codegen/src/cosmos/staking/v1beta1/query.lcd.ts delete mode 100644 packages/codegen/src/cosmos/staking/v1beta1/query.rpc.Query.ts delete mode 100644 packages/codegen/src/cosmos/staking/v1beta1/query.ts delete mode 100644 packages/codegen/src/cosmos/staking/v1beta1/staking.ts delete mode 100644 packages/codegen/src/cosmos/staking/v1beta1/tx.rpc.msg.ts delete mode 100644 packages/codegen/src/cosmos/staking/v1beta1/tx.ts delete mode 100644 packages/codegen/src/cosmos/tx/signing/v1beta1/signing.ts delete mode 100644 packages/codegen/src/cosmos/tx/v1beta1/service.lcd.ts delete mode 100644 packages/codegen/src/cosmos/tx/v1beta1/service.rpc.Service.ts delete mode 100644 packages/codegen/src/cosmos/tx/v1beta1/service.ts delete mode 100644 packages/codegen/src/cosmos/tx/v1beta1/tx.ts delete mode 100644 packages/codegen/src/cosmos/upgrade/v1beta1/query.lcd.ts delete mode 100644 packages/codegen/src/cosmos/upgrade/v1beta1/query.rpc.Query.ts delete mode 100644 packages/codegen/src/cosmos/upgrade/v1beta1/query.ts delete mode 100644 packages/codegen/src/cosmos/upgrade/v1beta1/tx.rpc.msg.ts delete mode 100644 packages/codegen/src/cosmos/upgrade/v1beta1/tx.ts delete mode 100644 packages/codegen/src/cosmos/upgrade/v1beta1/upgrade.ts delete mode 100644 packages/codegen/src/cosmos/vesting/v1beta1/tx.rpc.msg.ts delete mode 100644 packages/codegen/src/cosmos/vesting/v1beta1/tx.ts delete mode 100644 packages/codegen/src/cosmos/vesting/v1beta1/vesting.ts delete mode 100644 packages/codegen/src/cosmos_proto/bundle.ts delete mode 100644 packages/codegen/src/cosmos_proto/cosmos.ts delete mode 100644 packages/codegen/src/cosmwasm/bundle.ts delete mode 100644 packages/codegen/src/cosmwasm/lcd.ts delete mode 100644 packages/codegen/src/cosmwasm/rpc.query.ts delete mode 100644 packages/codegen/src/cosmwasm/rpc.tx.ts delete mode 100644 packages/codegen/src/cosmwasm/wasm/v1/authz.ts delete mode 100644 packages/codegen/src/cosmwasm/wasm/v1/genesis.ts delete mode 100644 packages/codegen/src/cosmwasm/wasm/v1/ibc.ts delete mode 100644 packages/codegen/src/cosmwasm/wasm/v1/proposal.ts delete mode 100644 packages/codegen/src/cosmwasm/wasm/v1/query.lcd.ts delete mode 100644 packages/codegen/src/cosmwasm/wasm/v1/query.rpc.Query.ts delete mode 100644 packages/codegen/src/cosmwasm/wasm/v1/query.ts delete mode 100644 packages/codegen/src/cosmwasm/wasm/v1/tx.rpc.msg.ts delete mode 100644 packages/codegen/src/cosmwasm/wasm/v1/tx.ts delete mode 100644 packages/codegen/src/cosmwasm/wasm/v1/types.ts delete mode 100644 packages/codegen/src/gogoproto/bundle.ts delete mode 100644 packages/codegen/src/gogoproto/gogo.ts delete mode 100644 packages/codegen/src/google/api/annotations.ts delete mode 100644 packages/codegen/src/google/api/http.ts delete mode 100644 packages/codegen/src/google/bundle.ts delete mode 100644 packages/codegen/src/google/protobuf/any.ts delete mode 100644 packages/codegen/src/google/protobuf/descriptor.ts delete mode 100644 packages/codegen/src/google/protobuf/duration.ts delete mode 100644 packages/codegen/src/google/protobuf/empty.ts delete mode 100644 packages/codegen/src/google/protobuf/timestamp.ts delete mode 100644 packages/codegen/src/helpers.ts delete mode 100644 packages/codegen/src/ibc/applications/transfer/v1/genesis.ts delete mode 100644 packages/codegen/src/ibc/applications/transfer/v1/query.lcd.ts delete mode 100644 packages/codegen/src/ibc/applications/transfer/v1/query.rpc.Query.ts delete mode 100644 packages/codegen/src/ibc/applications/transfer/v1/query.ts delete mode 100644 packages/codegen/src/ibc/applications/transfer/v1/transfer.ts delete mode 100644 packages/codegen/src/ibc/applications/transfer/v1/tx.rpc.msg.ts delete mode 100644 packages/codegen/src/ibc/applications/transfer/v1/tx.ts delete mode 100644 packages/codegen/src/ibc/applications/transfer/v2/packet.ts delete mode 100644 packages/codegen/src/ibc/bundle.ts delete mode 100644 packages/codegen/src/ibc/core/channel/v1/channel.ts delete mode 100644 packages/codegen/src/ibc/core/channel/v1/genesis.ts delete mode 100644 packages/codegen/src/ibc/core/channel/v1/query.lcd.ts delete mode 100644 packages/codegen/src/ibc/core/channel/v1/query.rpc.Query.ts delete mode 100644 packages/codegen/src/ibc/core/channel/v1/query.ts delete mode 100644 packages/codegen/src/ibc/core/channel/v1/tx.rpc.msg.ts delete mode 100644 packages/codegen/src/ibc/core/channel/v1/tx.ts delete mode 100644 packages/codegen/src/ibc/core/client/v1/client.ts delete mode 100644 packages/codegen/src/ibc/core/client/v1/genesis.ts delete mode 100644 packages/codegen/src/ibc/core/client/v1/query.lcd.ts delete mode 100644 packages/codegen/src/ibc/core/client/v1/query.rpc.Query.ts delete mode 100644 packages/codegen/src/ibc/core/client/v1/query.ts delete mode 100644 packages/codegen/src/ibc/core/client/v1/tx.rpc.msg.ts delete mode 100644 packages/codegen/src/ibc/core/client/v1/tx.ts delete mode 100644 packages/codegen/src/ibc/core/commitment/v1/commitment.ts delete mode 100644 packages/codegen/src/ibc/core/connection/v1/connection.ts delete mode 100644 packages/codegen/src/ibc/core/connection/v1/genesis.ts delete mode 100644 packages/codegen/src/ibc/core/connection/v1/query.lcd.ts delete mode 100644 packages/codegen/src/ibc/core/connection/v1/query.rpc.Query.ts delete mode 100644 packages/codegen/src/ibc/core/connection/v1/query.ts delete mode 100644 packages/codegen/src/ibc/core/connection/v1/tx.rpc.msg.ts delete mode 100644 packages/codegen/src/ibc/core/connection/v1/tx.ts delete mode 100644 packages/codegen/src/ibc/core/port/v1/query.rpc.Query.ts delete mode 100644 packages/codegen/src/ibc/core/port/v1/query.ts delete mode 100644 packages/codegen/src/ibc/core/types/v1/genesis.ts delete mode 100644 packages/codegen/src/ibc/lcd.ts delete mode 100644 packages/codegen/src/ibc/lightclients/localhost/v1/localhost.ts delete mode 100644 packages/codegen/src/ibc/lightclients/solomachine/v1/solomachine.ts delete mode 100644 packages/codegen/src/ibc/lightclients/solomachine/v2/solomachine.ts delete mode 100644 packages/codegen/src/ibc/lightclients/tendermint/v1/tendermint.ts delete mode 100644 packages/codegen/src/ibc/rpc.query.ts delete mode 100644 packages/codegen/src/ibc/rpc.tx.ts delete mode 100644 packages/codegen/src/ics23/bundle.ts delete mode 100644 packages/codegen/src/index.ts delete mode 100644 packages/codegen/src/tendermint/abci/types.ts delete mode 100644 packages/codegen/src/tendermint/bundle.ts delete mode 100644 packages/codegen/src/tendermint/crypto/keys.ts delete mode 100644 packages/codegen/src/tendermint/crypto/proof.ts delete mode 100644 packages/codegen/src/tendermint/libs/bits/types.ts delete mode 100644 packages/codegen/src/tendermint/p2p/types.ts delete mode 100644 packages/codegen/src/tendermint/types/block.ts delete mode 100644 packages/codegen/src/tendermint/types/evidence.ts delete mode 100644 packages/codegen/src/tendermint/types/params.ts delete mode 100644 packages/codegen/src/tendermint/types/types.ts delete mode 100644 packages/codegen/src/tendermint/types/validator.ts delete mode 100644 packages/codegen/src/tendermint/version/types.ts delete mode 100644 packages/codegen/tsconfig.json create mode 100644 packages/dashboard/src/libs/api-registry.ts create mode 100644 public/favicon.ico create mode 100644 public/loader.css create mode 100644 public/logo.svg create mode 100644 public/logos/8ball.png create mode 100644 public/logos/DWS.png create mode 100644 public/logos/VDL.png create mode 100644 public/logos/agoric-bld.svg create mode 100644 public/logos/agoric.png create mode 100644 public/logos/akash-network.png create mode 100644 public/logos/androma.png create mode 100644 public/logos/aura.png create mode 100644 public/logos/axelar.svg create mode 100644 public/logos/band-protocol.svg create mode 100644 public/logos/beezee.png create mode 100644 public/logos/bitcanna.svg create mode 100644 public/logos/bitsong.svg create mode 100644 public/logos/bostrom.png create mode 100644 public/logos/c4e.png create mode 100644 public/logos/canto.png create mode 100644 public/logos/carbon.svg create mode 100644 public/logos/ccc.png create mode 100644 public/logos/celestia.png create mode 100644 public/logos/cerberus.png create mode 100644 public/logos/cheqd.png create mode 100644 public/logos/chihuahua.png create mode 100644 public/logos/chronic-token.jpg create mode 100644 public/logos/com.png create mode 100644 public/logos/comdex.png create mode 100644 public/logos/commercionetwork.png create mode 100644 public/logos/cosmic-horizon.png create mode 100644 public/logos/cosmos.svg create mode 100644 public/logos/craft.png create mode 100644 public/logos/cre.png create mode 100644 public/logos/cronos.png create mode 100644 public/logos/crypto-com-chain.png create mode 100644 public/logos/dai.svg create mode 100644 public/logos/decentr.png create mode 100644 public/logos/desmos.png create mode 100644 public/logos/dig1.png create mode 100644 public/logos/dot.svg create mode 100644 public/logos/e-money.jpg create mode 100644 public/logos/echelon.gif create mode 100644 public/logos/empower.png create mode 100644 public/logos/ethereum.png create mode 100644 public/logos/evmos.jpeg create mode 100644 public/logos/evmos.png create mode 100644 public/logos/fetchhub.png create mode 100644 public/logos/game_of_chain.jpeg create mode 100644 public/logos/genesisl1.png create mode 100644 public/logos/gravity-bridge.png create mode 100644 public/logos/haqq.png create mode 100644 public/logos/haqq.svg create mode 100644 public/logos/injective.jpg create mode 100644 public/logos/iris-network.svg create mode 100644 public/logos/islm.png create mode 100644 public/logos/islm.svg create mode 100644 public/logos/ixo.svg create mode 100644 public/logos/jackal.png create mode 100644 public/logos/juno.jpg create mode 100644 public/logos/juno.png create mode 100644 public/logos/kava.png create mode 100644 public/logos/kichain.png create mode 100644 public/logos/kujira.png create mode 100644 public/logos/lambda.png create mode 100644 public/logos/likecoin.png create mode 100644 public/logos/lum-network.png create mode 100644 public/logos/lumen.png create mode 100644 public/logos/mars.jpg create mode 100644 public/logos/mars.png create mode 100644 public/logos/meme.svg create mode 100644 public/logos/microtick.png create mode 100644 public/logos/migaloo.png create mode 100644 public/logos/nois.svg create mode 100644 public/logos/nym.jpeg create mode 100644 public/logos/odin.png create mode 100644 public/logos/okexchain.svg create mode 100644 public/logos/okp4.svg create mode 100644 public/logos/omniflix.png create mode 100644 public/logos/osmosis.jpg create mode 100644 public/logos/passage.png create mode 100644 public/logos/persistence.png create mode 100644 public/logos/planq.png create mode 100644 public/logos/point-logo.png create mode 100644 public/logos/provenance.svg create mode 100644 public/logos/quasar.png create mode 100644 public/logos/quicksilver.png create mode 100644 public/logos/rebus.png create mode 100644 public/logos/regen.svg create mode 100644 public/logos/rizon.svg create mode 100644 public/logos/secret.png create mode 100644 public/logos/sentinel.png create mode 100644 public/logos/shentu.jpg create mode 100644 public/logos/sifchain.jpeg create mode 100644 public/logos/stafihub.png create mode 100644 public/logos/stargaze.png create mode 100644 public/logos/starname.jpg create mode 100644 public/logos/stride.png create mode 100644 public/logos/teritori.svg create mode 100644 public/logos/terra-luna-krt.png create mode 100644 public/logos/terra-luna-tokenlogo.webp create mode 100644 public/logos/terra-luna-ust.png create mode 100644 public/logos/terra-luna.jpg create mode 100644 public/logos/umee.png create mode 100644 public/logos/unification.png create mode 100644 public/logos/usdc.svg create mode 100644 public/logos/usdt.svg create mode 100644 public/logos/wavax.svg create mode 100644 public/logos/weth.svg create mode 100644 public/logos/whitewhale.png create mode 100644 public/logos/wmatic.svg create mode 100644 src/App.vue create mode 100644 src/assets/base.css create mode 100644 src/assets/logo.svg create mode 100644 src/assets/main.css create mode 100644 src/components/CardStatisticsHorizontal.vue create mode 100644 src/components/CardStatisticsVertical.vue create mode 100644 src/components/CardStatisticsWithImages.vue create mode 100644 src/components/ChainSummary.vue create mode 100644 src/components/ProposalProcess.vue create mode 100644 src/components/ValidatorCommissionRate.vue create mode 100644 src/components/charts/PriceMarketChart.vue create mode 100644 src/components/charts/apexCharConfig.ts create mode 100644 src/components/dynamic/ArrayBytesElement.vue create mode 100644 src/components/dynamic/ArrayElement.vue create mode 100644 src/components/dynamic/ArrayObjectElement.vue create mode 100644 src/components/dynamic/DynamicComponent.vue create mode 100644 src/components/dynamic/NumberElement.vue create mode 100644 src/components/dynamic/ObjectElement.vue create mode 100644 src/components/dynamic/TextElement.vue create mode 100644 src/components/dynamic/TxsElement.vue create mode 100644 src/components/dynamic/UInt8Array.vue create mode 100644 src/components/dynamic/index.ts create mode 100644 src/components/icons/IconCommunity.vue create mode 100644 src/components/icons/IconDocumentation.vue create mode 100644 src/components/icons/IconEcosystem.vue create mode 100644 src/components/icons/IconSupport.vue create mode 100644 src/components/icons/IconTooling.vue create mode 100644 src/layouts/blank.vue create mode 100644 src/layouts/components/Breadcrumbs.vue create mode 100644 src/layouts/components/ChainProfile.vue create mode 100644 src/layouts/components/DefaultLayout.vue create mode 100644 src/layouts/components/Footer.vue create mode 100644 src/layouts/components/NavBarI18n.vue create mode 100644 src/layouts/components/NavBarNotifications.vue create mode 100644 src/layouts/components/NavSearchBar.vue create mode 100644 src/layouts/components/NavbarShortcuts.vue create mode 100644 src/layouts/components/NavbarThemeSwitcher.vue create mode 100644 src/layouts/default.vue create mode 100644 src/libs/address.ts create mode 100644 src/libs/api.ts create mode 100644 src/libs/extensions/OsmosMintExtention.ts create mode 100644 src/libs/http.ts create mode 100644 src/libs/index.ts create mode 100644 src/libs/misc.ts create mode 100644 src/libs/registry.ts create mode 100644 src/main.ts create mode 100644 src/modules/[chain]/block/[height].vue create mode 100644 src/modules/[chain]/block/block.ts create mode 100644 src/modules/[chain]/block/index.vue create mode 100644 src/modules/[chain]/index.vue create mode 100644 src/modules/[chain]/indexStore.ts create mode 100644 src/modules/[chain]/staking/[validator].vue create mode 100644 src/modules/[chain]/staking/index.vue create mode 100644 src/modules/[chain]/test.vue create mode 100644 src/modules/[chain]/tx/[hash].vue create mode 100644 src/modules/wallet/test.vue create mode 100644 src/pages/[...all].vue create mode 100644 src/pages/index.vue create mode 100644 src/pages/second-page.vue create mode 100644 src/plugins/i18n/index.ts create mode 100644 src/plugins/i18n/locales/cn.json create mode 100644 src/plugins/i18n/locales/en.json create mode 100644 src/plugins/pinia/ClientProperties.ts create mode 100644 src/plugins/pinia/dashboardPlugin.ts create mode 100644 src/plugins/vuetify/@core/components/AddAuthenticatorAppDialog.vue create mode 100644 src/plugins/vuetify/@core/components/AddEditAddressDialog.vue create mode 100644 src/plugins/vuetify/@core/components/AppBarSearch.vue create mode 100644 src/plugins/vuetify/@core/components/AppCardActions.vue create mode 100644 src/plugins/vuetify/@core/components/AppCardCode.vue create mode 100644 src/plugins/vuetify/@core/components/AppDateTimePicker.vue create mode 100644 src/plugins/vuetify/@core/components/AppDrawerHeaderSection.vue create mode 100644 src/plugins/vuetify/@core/components/AppOtpInput.vue create mode 100644 src/plugins/vuetify/@core/components/AppPricing.vue create mode 100644 src/plugins/vuetify/@core/components/AppSearchHeader.vue create mode 100644 src/plugins/vuetify/@core/components/BuyNow.vue create mode 100644 src/plugins/vuetify/@core/components/CardAddEditDialog.vue create mode 100644 src/plugins/vuetify/@core/components/CardStatisticsHorizontal.vue create mode 100644 src/plugins/vuetify/@core/components/CardStatisticsVertical.vue create mode 100644 src/plugins/vuetify/@core/components/CardStatisticsWithImages.vue create mode 100644 src/plugins/vuetify/@core/components/ConfirmDialog.vue create mode 100644 src/plugins/vuetify/@core/components/CustomCheckboxes.vue create mode 100644 src/plugins/vuetify/@core/components/CustomCheckboxesWithIcon.vue create mode 100644 src/plugins/vuetify/@core/components/CustomCheckboxesWithImage.vue create mode 100644 src/plugins/vuetify/@core/components/CustomRadios.vue create mode 100644 src/plugins/vuetify/@core/components/CustomRadiosWithIcon.vue create mode 100644 src/plugins/vuetify/@core/components/CustomRadiosWithImage.vue create mode 100644 src/plugins/vuetify/@core/components/CustomizerSection.vue create mode 100644 src/plugins/vuetify/@core/components/DialogCloseBtn.vue create mode 100644 src/plugins/vuetify/@core/components/EnableOneTimePasswordDialog.vue create mode 100644 src/plugins/vuetify/@core/components/ErrorHeader.vue create mode 100644 src/plugins/vuetify/@core/components/I18n.vue create mode 100644 src/plugins/vuetify/@core/components/MoreBtn.vue create mode 100644 src/plugins/vuetify/@core/components/Notifications.vue create mode 100644 src/plugins/vuetify/@core/components/PricingPlanDialog.vue create mode 100644 src/plugins/vuetify/@core/components/ReferAndEarnDialog.vue create mode 100644 src/plugins/vuetify/@core/components/ShareProjectDialog.vue create mode 100644 src/plugins/vuetify/@core/components/Shortcuts.vue create mode 100644 src/plugins/vuetify/@core/components/TheCustomizer.vue create mode 100644 src/plugins/vuetify/@core/components/ThemeSwitcher.vue create mode 100644 src/plugins/vuetify/@core/components/TwoFactorAuthDialog.vue create mode 100644 src/plugins/vuetify/@core/components/UserInfoEditDialog.vue create mode 100644 src/plugins/vuetify/@core/components/UserUpgradePlanDialog.vue create mode 100644 src/plugins/vuetify/@core/composable/useGenerateImageVariant.ts create mode 100644 src/plugins/vuetify/@core/composable/useResponsiveSidebar.ts create mode 100644 src/plugins/vuetify/@core/composable/useSkins.ts create mode 100644 src/plugins/vuetify/@core/composable/useThemeConfig.ts create mode 100644 src/plugins/vuetify/@core/enums.ts create mode 100644 src/plugins/vuetify/@core/index.ts create mode 100644 src/plugins/vuetify/@core/libs/apex-chart/apexCharConfig.ts create mode 100644 src/plugins/vuetify/@core/libs/chartjs/chartjsConfig.ts create mode 100644 src/plugins/vuetify/@core/libs/chartjs/components/BarChart.ts create mode 100644 src/plugins/vuetify/@core/libs/chartjs/components/BubbleChart.ts create mode 100644 src/plugins/vuetify/@core/libs/chartjs/components/DoughnutChart.ts create mode 100644 src/plugins/vuetify/@core/libs/chartjs/components/LineChart.ts create mode 100644 src/plugins/vuetify/@core/libs/chartjs/components/PolarAreaChart.ts create mode 100644 src/plugins/vuetify/@core/libs/chartjs/components/RadarChart.ts create mode 100644 src/plugins/vuetify/@core/libs/chartjs/components/ScatterChart.ts create mode 100644 src/plugins/vuetify/@core/scss/base/_components.scss create mode 100644 src/plugins/vuetify/@core/scss/base/_dark.scss create mode 100644 src/plugins/vuetify/@core/scss/base/_default-layout-w-horizontal-nav.scss create mode 100644 src/plugins/vuetify/@core/scss/base/_default-layout-w-vertical-nav.scss create mode 100644 src/plugins/vuetify/@core/scss/base/_default-layout.scss create mode 100644 src/plugins/vuetify/@core/scss/base/_horizontal-nav.scss create mode 100644 src/plugins/vuetify/@core/scss/base/_index.scss create mode 100644 src/plugins/vuetify/@core/scss/base/_layouts.scss create mode 100644 src/plugins/vuetify/@core/scss/base/_misc.scss create mode 100644 src/plugins/vuetify/@core/scss/base/_mixins.scss create mode 100644 src/plugins/vuetify/@core/scss/base/_route-transitions.scss create mode 100644 src/plugins/vuetify/@core/scss/base/_utilities.scss create mode 100644 src/plugins/vuetify/@core/scss/base/_utils.scss create mode 100644 src/plugins/vuetify/@core/scss/base/_variables.scss create mode 100644 src/plugins/vuetify/@core/scss/base/_vertical-nav.scss create mode 100644 src/plugins/vuetify/@core/scss/base/libs/_perfect-scrollbar.scss create mode 100644 src/plugins/vuetify/@core/scss/base/libs/vuetify/_index.scss create mode 100644 src/plugins/vuetify/@core/scss/base/libs/vuetify/_overrides.scss create mode 100644 src/plugins/vuetify/@core/scss/base/libs/vuetify/_variables.scss create mode 100644 src/plugins/vuetify/@core/scss/base/placeholders/_default-layout-horizontal-nav.scss create mode 100644 src/plugins/vuetify/@core/scss/base/placeholders/_default-layout-vertical-nav.scss create mode 100644 src/plugins/vuetify/@core/scss/base/placeholders/_default-layout.scss create mode 100644 src/plugins/vuetify/@core/scss/base/placeholders/_horizontal-nav.scss create mode 100644 src/plugins/vuetify/@core/scss/base/placeholders/_index.scss create mode 100644 src/plugins/vuetify/@core/scss/base/placeholders/_misc.scss create mode 100644 src/plugins/vuetify/@core/scss/base/placeholders/_nav.scss create mode 100644 src/plugins/vuetify/@core/scss/base/placeholders/_vertical-nav.scss create mode 100644 src/plugins/vuetify/@core/scss/base/skins/_bordered.scss create mode 100644 src/plugins/vuetify/@core/scss/base/skins/_index.scss create mode 100644 src/plugins/vuetify/@core/scss/template/_components.scss create mode 100644 src/plugins/vuetify/@core/scss/template/_horizontal-nav.scss create mode 100644 src/plugins/vuetify/@core/scss/template/_utilities.scss create mode 100644 src/plugins/vuetify/@core/scss/template/_utils.scss create mode 100644 src/plugins/vuetify/@core/scss/template/_variables.scss create mode 100644 src/plugins/vuetify/@core/scss/template/_vertical-nav.scss create mode 100644 src/plugins/vuetify/@core/scss/template/index.scss create mode 100644 src/plugins/vuetify/@core/scss/template/libs/apex-chart.scss create mode 100644 src/plugins/vuetify/@core/scss/template/libs/full-calendar.scss create mode 100644 src/plugins/vuetify/@core/scss/template/libs/vuetify/_overrides.scss create mode 100644 src/plugins/vuetify/@core/scss/template/libs/vuetify/_variables.scss create mode 100644 src/plugins/vuetify/@core/scss/template/libs/vuetify/index.scss create mode 100644 src/plugins/vuetify/@core/scss/template/pages/misc.scss create mode 100644 src/plugins/vuetify/@core/scss/template/pages/page-auth.scss create mode 100644 src/plugins/vuetify/@core/scss/template/placeholders/_index.scss create mode 100644 src/plugins/vuetify/@core/scss/template/placeholders/_nav.scss create mode 100644 src/plugins/vuetify/@core/scss/template/placeholders/_vertical-nav.scss create mode 100644 src/plugins/vuetify/@core/types.d.ts create mode 100644 src/plugins/vuetify/@core/utils/formatters.ts create mode 100644 src/plugins/vuetify/@core/utils/index.ts create mode 100644 src/plugins/vuetify/@core/utils/validators.ts create mode 100644 src/plugins/vuetify/@core/utils/vuetify.ts create mode 100644 src/plugins/vuetify/@iconify/build-icons.js create mode 100644 src/plugins/vuetify/@iconify/build-icons.ts create mode 100644 src/plugins/vuetify/@iconify/icons-bundle.js create mode 100644 src/plugins/vuetify/@iconify/tsconfig.json create mode 100644 src/plugins/vuetify/@layouts/components.ts create mode 100644 src/plugins/vuetify/@layouts/components/TransitionExpand.vue create mode 100644 src/plugins/vuetify/@layouts/components/VNodeRenderer.tsx create mode 100644 src/plugins/vuetify/@layouts/components/VerticalNav.vue create mode 100644 src/plugins/vuetify/@layouts/components/VerticalNavGroup.vue create mode 100644 src/plugins/vuetify/@layouts/components/VerticalNavLayout.vue create mode 100644 src/plugins/vuetify/@layouts/components/VerticalNavLink.vue create mode 100644 src/plugins/vuetify/@layouts/components/VerticalNavSectionTitle.vue create mode 100644 src/plugins/vuetify/@layouts/composable/useDynamicVhCssProperty.ts create mode 100644 src/plugins/vuetify/@layouts/composable/useLayouts.ts create mode 100644 src/plugins/vuetify/@layouts/enums.ts create mode 100644 src/plugins/vuetify/@layouts/index.ts create mode 100644 src/plugins/vuetify/@layouts/styles/_classes.scss create mode 100644 src/plugins/vuetify/@layouts/styles/_default-layout.scss create mode 100644 src/plugins/vuetify/@layouts/styles/_global.scss create mode 100644 src/plugins/vuetify/@layouts/styles/_mixins.scss create mode 100644 src/plugins/vuetify/@layouts/styles/_placeholders.scss create mode 100644 src/plugins/vuetify/@layouts/styles/_rtl.scss create mode 100644 src/plugins/vuetify/@layouts/styles/_variables.scss create mode 100644 src/plugins/vuetify/@layouts/styles/index.scss create mode 100644 src/plugins/vuetify/@layouts/types.d.ts create mode 100644 src/plugins/vuetify/@layouts/utils.ts create mode 100644 src/plugins/vuetify/defaults.ts create mode 100644 src/plugins/vuetify/icons.ts create mode 100644 src/plugins/vuetify/images/avatars/avatar-1.png create mode 100644 src/plugins/vuetify/images/avatars/avatar-10.png create mode 100644 src/plugins/vuetify/images/avatars/avatar-11.png create mode 100644 src/plugins/vuetify/images/avatars/avatar-12.png create mode 100644 src/plugins/vuetify/images/avatars/avatar-13.png create mode 100644 src/plugins/vuetify/images/avatars/avatar-14.png create mode 100644 src/plugins/vuetify/images/avatars/avatar-15.png create mode 100644 src/plugins/vuetify/images/avatars/avatar-2.png create mode 100644 src/plugins/vuetify/images/avatars/avatar-3.png create mode 100644 src/plugins/vuetify/images/avatars/avatar-4.png create mode 100644 src/plugins/vuetify/images/avatars/avatar-5.png create mode 100644 src/plugins/vuetify/images/avatars/avatar-6.png create mode 100644 src/plugins/vuetify/images/avatars/avatar-7.png create mode 100644 src/plugins/vuetify/images/avatars/avatar-8.png create mode 100644 src/plugins/vuetify/images/avatars/avatar-9.png create mode 100644 src/plugins/vuetify/images/iconify-svg/vertical-nav-header-arrow.svg create mode 100644 src/plugins/vuetify/images/logo.svg create mode 100644 src/plugins/vuetify/images/misc/pricing-cta-illustration.png create mode 100644 src/plugins/vuetify/images/misc/pricing-illustration-1.png create mode 100644 src/plugins/vuetify/images/misc/pricing-illustration-2.png create mode 100644 src/plugins/vuetify/images/misc/pricing-illustration-3.png create mode 100644 src/plugins/vuetify/images/misc/triangle-dark.png create mode 100644 src/plugins/vuetify/images/misc/triangle-light.png create mode 100644 src/plugins/vuetify/images/misc/trophy.png create mode 100644 src/plugins/vuetify/images/pages/1.png create mode 100644 src/plugins/vuetify/images/pages/2.png create mode 100644 src/plugins/vuetify/images/pages/3.png create mode 100644 src/plugins/vuetify/images/pages/401.png create mode 100644 src/plugins/vuetify/images/pages/404.png create mode 100644 src/plugins/vuetify/images/pages/5.jpg create mode 100644 src/plugins/vuetify/images/pages/500.png create mode 100644 src/plugins/vuetify/images/pages/6.png create mode 100644 src/plugins/vuetify/images/pages/app-search-header-bg-dark.png create mode 100644 src/plugins/vuetify/images/pages/app-search-header-bg-light.png create mode 100644 src/plugins/vuetify/images/pages/auth-v1-forgot-password-mask-dark.png create mode 100644 src/plugins/vuetify/images/pages/auth-v1-forgot-password-mask-light.png create mode 100644 src/plugins/vuetify/images/pages/auth-v1-login-mask-dark.png create mode 100644 src/plugins/vuetify/images/pages/auth-v1-login-mask-light.png create mode 100644 src/plugins/vuetify/images/pages/auth-v1-register-mask-dark.png create mode 100644 src/plugins/vuetify/images/pages/auth-v1-register-mask-light.png create mode 100644 src/plugins/vuetify/images/pages/auth-v1-reset-password-mask-dark.png create mode 100644 src/plugins/vuetify/images/pages/auth-v1-reset-password-mask-light.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-forgot-password-illustration-bordered-dark.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-forgot-password-illustration-bordered-light.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-forgot-password-illustration-dark.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-forgot-password-illustration-light.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-forgot-password-mask-dark.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-forgot-password-mask-light.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-login-illustration-bordered-dark.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-login-illustration-bordered-light.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-login-illustration-dark.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-login-illustration-light.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-login-mask-dark.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-login-mask-light.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-register-illustration-bordered-dark.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-register-illustration-bordered-light.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-register-illustration-dark.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-register-illustration-light.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-register-mask-dark.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-register-mask-light.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-reset-password-illustration-bordered-dark.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-reset-password-illustration-bordered-light.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-reset-password-illustration-dark.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-reset-password-illustration-light.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-reset-password-mask-dark.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-reset-password-mask-light.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-two-steps-illustration-bordered-dark.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-two-steps-illustration-bordered-light.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-two-steps-illustration-dark.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-two-steps-illustration-light.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-verify-email-illustration-bordered-dark.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-verify-email-illustration-bordered-light.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-verify-email-illustration-dark.png create mode 100644 src/plugins/vuetify/images/pages/auth-v2-verify-email-illustration-light.png create mode 100644 src/plugins/vuetify/images/pages/background-1.jpg create mode 100644 src/plugins/vuetify/images/pages/background-2.jpg create mode 100644 src/plugins/vuetify/images/pages/background-3.jpg create mode 100644 src/plugins/vuetify/images/pages/misc-401-object.png create mode 100644 src/plugins/vuetify/images/pages/misc-404-object.png create mode 100644 src/plugins/vuetify/images/pages/misc-500-object.png create mode 100644 src/plugins/vuetify/images/pages/misc-coming-soon-object.png create mode 100644 src/plugins/vuetify/images/pages/misc-coming-soon.png create mode 100644 src/plugins/vuetify/images/pages/misc-mask-dark.png create mode 100644 src/plugins/vuetify/images/pages/misc-mask-light.png create mode 100644 src/plugins/vuetify/images/pages/misc-under-maintenance-object.png create mode 100644 src/plugins/vuetify/images/pages/misc-under-maintenance.png create mode 100644 src/plugins/vuetify/images/pages/pixinvent-qr.png create mode 100644 src/plugins/vuetify/images/pages/pose-fs-9.png create mode 100644 src/plugins/vuetify/images/pages/puma-shoes.jpeg create mode 100644 src/plugins/vuetify/images/pages/user-profile-header-bg.png create mode 100644 src/plugins/vuetify/images/svg/discord.svg create mode 100644 src/plugins/vuetify/images/svg/gift.svg create mode 100644 src/plugins/vuetify/images/svg/keyboard.svg create mode 100644 src/plugins/vuetify/images/svg/laptop.svg create mode 100644 src/plugins/vuetify/images/svg/lightbulb.svg create mode 100644 src/plugins/vuetify/images/svg/paypal.svg create mode 100644 src/plugins/vuetify/images/svg/rocket.svg create mode 100644 src/plugins/vuetify/index.ts create mode 100644 src/plugins/vuetify/layouts.ts create mode 100644 src/plugins/vuetify/styles/styles.scss create mode 100644 src/plugins/vuetify/styles/variables/_template.scss create mode 100644 src/plugins/vuetify/styles/variables/_vuetify.scss create mode 100644 src/plugins/vuetify/theme.ts create mode 100644 src/plugins/vuetify/webfontloader.ts create mode 100644 src/router/index.ts create mode 100644 src/stores/index.ts create mode 100644 src/stores/template.ts create mode 100644 src/stores/useBankStore.ts create mode 100644 src/stores/useBaseStore.ts create mode 100644 src/stores/useBlockchain.ts create mode 100644 src/stores/useCoinGecko.ts create mode 100644 src/stores/useDashboard.ts create mode 100644 src/stores/useDistributionStore.ts create mode 100644 src/stores/useFormatter.ts create mode 100644 src/stores/useGovStore.ts create mode 100644 src/stores/useMintStore.ts create mode 100644 src/stores/useStakingStore.ts create mode 100644 src/types/Coin.ts create mode 100644 src/types/Proposal.ts create mode 100644 src/types/index.ts create mode 100644 themeConfig.ts create mode 100644 tsconfig.config.json create mode 100644 tsconfig.json create mode 100644 vite.config.ts create mode 100644 yarn-error.log diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..35eb1ddf --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 00000000..0de2685f --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,741 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { + "keyToString": { + "RunOnceActivity.OpenProjectViewOnStart": "true", + "RunOnceActivity.ShowReadmeOnStart": "true", + "last_opened_file_path": "/Users/ping/workspace/dashboard" + } +} + + + $USER_HOME$/.subversion + + + + + 1678753718354 + + + + + + + + + + + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 00000000..1d8dd06d --- /dev/null +++ b/README.md @@ -0,0 +1,46 @@ +# framework + +This template should help get you started developing with Vue 3 in Vite. + +## Recommended IDE Setup + +[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin). + +## Type Support for `.vue` Imports in TS + +TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin) to make the TypeScript language service aware of `.vue` types. + +If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a [Take Over Mode](https://github.com/johnsoncodehk/volar/discussions/471#discussioncomment-1361669) that is more performant. You can enable it by the following steps: + +1. Disable the built-in TypeScript Extension + 1) Run `Extensions: Show Built-in Extensions` from VSCode's command palette + 2) Find `TypeScript and JavaScript Language Features`, right click and select `Disable (Workspace)` +2. Reload the VSCode window by running `Developer: Reload Window` from the command palette. + +## Customize configuration + +See [Vite Configuration Reference](https://vitejs.dev/config/). + +## Project Setup + +```sh +npm install +``` + +### Compile and Hot-Reload for Development + +```sh +npm run dev +``` + +### Type-Check, Compile and Minify for Production + +```sh +npm run build +``` + +### Lint with [ESLint](https://eslint.org/) + +```sh +npm run lint +``` diff --git a/auto-imports.d.ts b/auto-imports.d.ts new file mode 100644 index 00000000..10eab88d --- /dev/null +++ b/auto-imports.d.ts @@ -0,0 +1,604 @@ +// Generated by 'unplugin-auto-import' +export {} +declare global { + const EffectScope: typeof import('vue')['EffectScope'] + const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate'] + const asyncComputed: typeof import('@vueuse/core')['asyncComputed'] + const autoResetRef: typeof import('@vueuse/core')['autoResetRef'] + const computed: typeof import('vue')['computed'] + const computedAsync: typeof import('@vueuse/core')['computedAsync'] + const computedEager: typeof import('@vueuse/core')['computedEager'] + const computedInject: typeof import('@vueuse/core')['computedInject'] + const computedWithControl: typeof import('@vueuse/core')['computedWithControl'] + const controlledComputed: typeof import('@vueuse/core')['controlledComputed'] + const controlledRef: typeof import('@vueuse/core')['controlledRef'] + const createApp: typeof import('vue')['createApp'] + const createEventHook: typeof import('@vueuse/core')['createEventHook'] + const createGenericProjection: typeof import('@vueuse/math')['createGenericProjection'] + const createGlobalState: typeof import('@vueuse/core')['createGlobalState'] + const createInjectionState: typeof import('@vueuse/core')['createInjectionState'] + const createPinia: typeof import('pinia')['createPinia'] + const createProjection: typeof import('@vueuse/math')['createProjection'] + const createReactiveFn: typeof import('@vueuse/core')['createReactiveFn'] + const createSharedComposable: typeof import('@vueuse/core')['createSharedComposable'] + const createUnrefFn: typeof import('@vueuse/core')['createUnrefFn'] + const customRef: typeof import('vue')['customRef'] + const debouncedRef: typeof import('@vueuse/core')['debouncedRef'] + const debouncedWatch: typeof import('@vueuse/core')['debouncedWatch'] + const defineAsyncComponent: typeof import('vue')['defineAsyncComponent'] + const defineComponent: typeof import('vue')['defineComponent'] + const defineStore: typeof import('pinia')['defineStore'] + const eagerComputed: typeof import('@vueuse/core')['eagerComputed'] + const effectScope: typeof import('vue')['effectScope'] + const extendRef: typeof import('@vueuse/core')['extendRef'] + const getActivePinia: typeof import('pinia')['getActivePinia'] + const getCurrentInstance: typeof import('vue')['getCurrentInstance'] + const getCurrentScope: typeof import('vue')['getCurrentScope'] + const h: typeof import('vue')['h'] + const ignorableWatch: typeof import('@vueuse/core')['ignorableWatch'] + const inject: typeof import('vue')['inject'] + const isDefined: typeof import('@vueuse/core')['isDefined'] + const isProxy: typeof import('vue')['isProxy'] + const isReactive: typeof import('vue')['isReactive'] + const isReadonly: typeof import('vue')['isReadonly'] + const isRef: typeof import('vue')['isRef'] + const logicAnd: typeof import('@vueuse/math')['logicAnd'] + const logicNot: typeof import('@vueuse/math')['logicNot'] + const logicOr: typeof import('@vueuse/math')['logicOr'] + const makeDestructurable: typeof import('@vueuse/core')['makeDestructurable'] + const mapActions: typeof import('pinia')['mapActions'] + const mapGetters: typeof import('pinia')['mapGetters'] + const mapState: typeof import('pinia')['mapState'] + const mapStores: typeof import('pinia')['mapStores'] + const mapWritableState: typeof import('pinia')['mapWritableState'] + const markRaw: typeof import('vue')['markRaw'] + const nextTick: typeof import('vue')['nextTick'] + const onActivated: typeof import('vue')['onActivated'] + const onBeforeMount: typeof import('vue')['onBeforeMount'] + const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave'] + const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate'] + const onBeforeUnmount: typeof import('vue')['onBeforeUnmount'] + const onBeforeUpdate: typeof import('vue')['onBeforeUpdate'] + const onClickOutside: typeof import('@vueuse/core')['onClickOutside'] + const onDeactivated: typeof import('vue')['onDeactivated'] + const onErrorCaptured: typeof import('vue')['onErrorCaptured'] + const onKeyStroke: typeof import('@vueuse/core')['onKeyStroke'] + const onLongPress: typeof import('@vueuse/core')['onLongPress'] + const onMounted: typeof import('vue')['onMounted'] + const onRenderTracked: typeof import('vue')['onRenderTracked'] + const onRenderTriggered: typeof import('vue')['onRenderTriggered'] + const onScopeDispose: typeof import('vue')['onScopeDispose'] + const onServerPrefetch: typeof import('vue')['onServerPrefetch'] + const onStartTyping: typeof import('@vueuse/core')['onStartTyping'] + const onUnmounted: typeof import('vue')['onUnmounted'] + const onUpdated: typeof import('vue')['onUpdated'] + const pausableWatch: typeof import('@vueuse/core')['pausableWatch'] + const provide: typeof import('vue')['provide'] + const reactify: typeof import('@vueuse/core')['reactify'] + const reactifyObject: typeof import('@vueuse/core')['reactifyObject'] + const reactive: typeof import('vue')['reactive'] + const reactiveComputed: typeof import('@vueuse/core')['reactiveComputed'] + const reactiveOmit: typeof import('@vueuse/core')['reactiveOmit'] + const reactivePick: typeof import('@vueuse/core')['reactivePick'] + const readonly: typeof import('vue')['readonly'] + const ref: typeof import('vue')['ref'] + const refAutoReset: typeof import('@vueuse/core')['refAutoReset'] + const refDebounced: typeof import('@vueuse/core')['refDebounced'] + const refDefault: typeof import('@vueuse/core')['refDefault'] + const refThrottled: typeof import('@vueuse/core')['refThrottled'] + const refWithControl: typeof import('@vueuse/core')['refWithControl'] + const resolveComponent: typeof import('vue')['resolveComponent'] + const resolveDirective: typeof import('vue')['resolveDirective'] + const resolveRef: typeof import('@vueuse/core')['resolveRef'] + const resolveUnref: typeof import('@vueuse/core')['resolveUnref'] + const setActivePinia: typeof import('pinia')['setActivePinia'] + const setMapStoreSuffix: typeof import('pinia')['setMapStoreSuffix'] + const shallowReactive: typeof import('vue')['shallowReactive'] + const shallowReadonly: typeof import('vue')['shallowReadonly'] + const shallowRef: typeof import('vue')['shallowRef'] + const storeToRefs: typeof import('pinia')['storeToRefs'] + const syncRef: typeof import('@vueuse/core')['syncRef'] + const syncRefs: typeof import('@vueuse/core')['syncRefs'] + const templateRef: typeof import('@vueuse/core')['templateRef'] + const throttledRef: typeof import('@vueuse/core')['throttledRef'] + const throttledWatch: typeof import('@vueuse/core')['throttledWatch'] + const toRaw: typeof import('vue')['toRaw'] + const toReactive: typeof import('@vueuse/core')['toReactive'] + const toRef: typeof import('vue')['toRef'] + const toRefs: typeof import('vue')['toRefs'] + const triggerRef: typeof import('vue')['triggerRef'] + const tryOnBeforeMount: typeof import('@vueuse/core')['tryOnBeforeMount'] + const tryOnBeforeUnmount: typeof import('@vueuse/core')['tryOnBeforeUnmount'] + const tryOnMounted: typeof import('@vueuse/core')['tryOnMounted'] + const tryOnScopeDispose: typeof import('@vueuse/core')['tryOnScopeDispose'] + const tryOnUnmounted: typeof import('@vueuse/core')['tryOnUnmounted'] + const unref: typeof import('vue')['unref'] + const unrefElement: typeof import('@vueuse/core')['unrefElement'] + const until: typeof import('@vueuse/core')['until'] + const useAbs: typeof import('@vueuse/math')['useAbs'] + const useActiveElement: typeof import('@vueuse/core')['useActiveElement'] + const useArrayEvery: typeof import('@vueuse/core')['useArrayEvery'] + const useArrayFilter: typeof import('@vueuse/core')['useArrayFilter'] + const useArrayFind: typeof import('@vueuse/core')['useArrayFind'] + const useArrayFindIndex: typeof import('@vueuse/core')['useArrayFindIndex'] + const useArrayJoin: typeof import('@vueuse/core')['useArrayJoin'] + const useArrayMap: typeof import('@vueuse/core')['useArrayMap'] + const useArrayReduce: typeof import('@vueuse/core')['useArrayReduce'] + const useArraySome: typeof import('@vueuse/core')['useArraySome'] + const useArrayUnique: typeof import('@vueuse/core')['useArrayUnique'] + const useAsyncQueue: typeof import('@vueuse/core')['useAsyncQueue'] + const useAsyncState: typeof import('@vueuse/core')['useAsyncState'] + const useAttrs: typeof import('vue')['useAttrs'] + const useAverage: typeof import('@vueuse/math')['useAverage'] + const useBase64: typeof import('@vueuse/core')['useBase64'] + const useBattery: typeof import('@vueuse/core')['useBattery'] + const useBluetooth: typeof import('@vueuse/core')['useBluetooth'] + const useBreakpoints: typeof import('@vueuse/core')['useBreakpoints'] + const useBroadcastChannel: typeof import('@vueuse/core')['useBroadcastChannel'] + const useBrowserLocation: typeof import('@vueuse/core')['useBrowserLocation'] + const useCached: typeof import('@vueuse/core')['useCached'] + const useCeil: typeof import('@vueuse/math')['useCeil'] + const useClamp: typeof import('@vueuse/math')['useClamp'] + const useClipboard: typeof import('@vueuse/core')['useClipboard'] + const useCloned: typeof import('@vueuse/core')['useCloned'] + const useColorMode: typeof import('@vueuse/core')['useColorMode'] + const useConfirmDialog: typeof import('@vueuse/core')['useConfirmDialog'] + const useCounter: typeof import('@vueuse/core')['useCounter'] + const useCssModule: typeof import('vue')['useCssModule'] + const useCssVar: typeof import('@vueuse/core')['useCssVar'] + const useCssVars: typeof import('vue')['useCssVars'] + const useCurrentElement: typeof import('@vueuse/core')['useCurrentElement'] + const useCycleList: typeof import('@vueuse/core')['useCycleList'] + const useDark: typeof import('@vueuse/core')['useDark'] + const useDateFormat: typeof import('@vueuse/core')['useDateFormat'] + const useDebounce: typeof import('@vueuse/core')['useDebounce'] + const useDebounceFn: typeof import('@vueuse/core')['useDebounceFn'] + const useDebouncedRefHistory: typeof import('@vueuse/core')['useDebouncedRefHistory'] + const useDeviceMotion: typeof import('@vueuse/core')['useDeviceMotion'] + const useDeviceOrientation: typeof import('@vueuse/core')['useDeviceOrientation'] + const useDevicePixelRatio: typeof import('@vueuse/core')['useDevicePixelRatio'] + const useDevicesList: typeof import('@vueuse/core')['useDevicesList'] + const useDisplayMedia: typeof import('@vueuse/core')['useDisplayMedia'] + const useDocumentVisibility: typeof import('@vueuse/core')['useDocumentVisibility'] + const useDraggable: typeof import('@vueuse/core')['useDraggable'] + const useDropZone: typeof import('@vueuse/core')['useDropZone'] + const useElementBounding: typeof import('@vueuse/core')['useElementBounding'] + const useElementByPoint: typeof import('@vueuse/core')['useElementByPoint'] + const useElementHover: typeof import('@vueuse/core')['useElementHover'] + const useElementSize: typeof import('@vueuse/core')['useElementSize'] + const useElementVisibility: typeof import('@vueuse/core')['useElementVisibility'] + const useEventBus: typeof import('@vueuse/core')['useEventBus'] + const useEventListener: typeof import('@vueuse/core')['useEventListener'] + const useEventSource: typeof import('@vueuse/core')['useEventSource'] + const useEyeDropper: typeof import('@vueuse/core')['useEyeDropper'] + const useFavicon: typeof import('@vueuse/core')['useFavicon'] + const useFetch: typeof import('@vueuse/core')['useFetch'] + const useFileDialog: typeof import('@vueuse/core')['useFileDialog'] + const useFileSystemAccess: typeof import('@vueuse/core')['useFileSystemAccess'] + const useFloor: typeof import('@vueuse/math')['useFloor'] + const useFocus: typeof import('@vueuse/core')['useFocus'] + const useFocusWithin: typeof import('@vueuse/core')['useFocusWithin'] + const useFps: typeof import('@vueuse/core')['useFps'] + const useFullscreen: typeof import('@vueuse/core')['useFullscreen'] + const useGamepad: typeof import('@vueuse/core')['useGamepad'] + const useGeolocation: typeof import('@vueuse/core')['useGeolocation'] + const useI18n: typeof import('vue-i18n')['useI18n'] + const useIdle: typeof import('@vueuse/core')['useIdle'] + const useImage: typeof import('@vueuse/core')['useImage'] + const useInfiniteScroll: typeof import('@vueuse/core')['useInfiniteScroll'] + const useIntersectionObserver: typeof import('@vueuse/core')['useIntersectionObserver'] + const useInterval: typeof import('@vueuse/core')['useInterval'] + const useIntervalFn: typeof import('@vueuse/core')['useIntervalFn'] + const useKeyModifier: typeof import('@vueuse/core')['useKeyModifier'] + const useLastChanged: typeof import('@vueuse/core')['useLastChanged'] + const useLink: typeof import('vue-router')['useLink'] + const useLocalStorage: typeof import('@vueuse/core')['useLocalStorage'] + const useMagicKeys: typeof import('@vueuse/core')['useMagicKeys'] + const useManualRefHistory: typeof import('@vueuse/core')['useManualRefHistory'] + const useMath: typeof import('@vueuse/math')['useMath'] + const useMax: typeof import('@vueuse/math')['useMax'] + const useMediaControls: typeof import('@vueuse/core')['useMediaControls'] + const useMediaQuery: typeof import('@vueuse/core')['useMediaQuery'] + const useMemoize: typeof import('@vueuse/core')['useMemoize'] + const useMemory: typeof import('@vueuse/core')['useMemory'] + const useMin: typeof import('@vueuse/math')['useMin'] + const useMounted: typeof import('@vueuse/core')['useMounted'] + const useMouse: typeof import('@vueuse/core')['useMouse'] + const useMouseInElement: typeof import('@vueuse/core')['useMouseInElement'] + const useMousePressed: typeof import('@vueuse/core')['useMousePressed'] + const useMutationObserver: typeof import('@vueuse/core')['useMutationObserver'] + const useNavigatorLanguage: typeof import('@vueuse/core')['useNavigatorLanguage'] + const useNetwork: typeof import('@vueuse/core')['useNetwork'] + const useNow: typeof import('@vueuse/core')['useNow'] + const useObjectUrl: typeof import('@vueuse/core')['useObjectUrl'] + const useOffsetPagination: typeof import('@vueuse/core')['useOffsetPagination'] + const useOnline: typeof import('@vueuse/core')['useOnline'] + const usePageLeave: typeof import('@vueuse/core')['usePageLeave'] + const useParallax: typeof import('@vueuse/core')['useParallax'] + const usePermission: typeof import('@vueuse/core')['usePermission'] + const usePointer: typeof import('@vueuse/core')['usePointer'] + const usePointerLock: typeof import('@vueuse/core')['usePointerLock'] + const usePointerSwipe: typeof import('@vueuse/core')['usePointerSwipe'] + const usePrecision: typeof import('@vueuse/math')['usePrecision'] + const usePreferredColorScheme: typeof import('@vueuse/core')['usePreferredColorScheme'] + const usePreferredContrast: typeof import('@vueuse/core')['usePreferredContrast'] + const usePreferredDark: typeof import('@vueuse/core')['usePreferredDark'] + const usePreferredLanguages: typeof import('@vueuse/core')['usePreferredLanguages'] + const usePreferredReducedMotion: typeof import('@vueuse/core')['usePreferredReducedMotion'] + const usePrevious: typeof import('@vueuse/core')['usePrevious'] + const useProjection: typeof import('@vueuse/math')['useProjection'] + const useRafFn: typeof import('@vueuse/core')['useRafFn'] + const useRefHistory: typeof import('@vueuse/core')['useRefHistory'] + const useResizeObserver: typeof import('@vueuse/core')['useResizeObserver'] + const useRound: typeof import('@vueuse/math')['useRound'] + const useRoute: typeof import('vue-router')['useRoute'] + const useRouter: typeof import('vue-router')['useRouter'] + const useScreenOrientation: typeof import('@vueuse/core')['useScreenOrientation'] + const useScreenSafeArea: typeof import('@vueuse/core')['useScreenSafeArea'] + const useScriptTag: typeof import('@vueuse/core')['useScriptTag'] + const useScroll: typeof import('@vueuse/core')['useScroll'] + const useScrollLock: typeof import('@vueuse/core')['useScrollLock'] + const useSessionStorage: typeof import('@vueuse/core')['useSessionStorage'] + const useShare: typeof import('@vueuse/core')['useShare'] + const useSlots: typeof import('vue')['useSlots'] + const useSorted: typeof import('@vueuse/core')['useSorted'] + const useSpeechRecognition: typeof import('@vueuse/core')['useSpeechRecognition'] + const useSpeechSynthesis: typeof import('@vueuse/core')['useSpeechSynthesis'] + const useStepper: typeof import('@vueuse/core')['useStepper'] + const useStorage: typeof import('@vueuse/core')['useStorage'] + const useStorageAsync: typeof import('@vueuse/core')['useStorageAsync'] + const useStyleTag: typeof import('@vueuse/core')['useStyleTag'] + const useSum: typeof import('@vueuse/math')['useSum'] + const useSupported: typeof import('@vueuse/core')['useSupported'] + const useSwipe: typeof import('@vueuse/core')['useSwipe'] + const useTemplateRefsList: typeof import('@vueuse/core')['useTemplateRefsList'] + const useTextDirection: typeof import('@vueuse/core')['useTextDirection'] + const useTextSelection: typeof import('@vueuse/core')['useTextSelection'] + const useTextareaAutosize: typeof import('@vueuse/core')['useTextareaAutosize'] + const useThrottle: typeof import('@vueuse/core')['useThrottle'] + const useThrottleFn: typeof import('@vueuse/core')['useThrottleFn'] + const useThrottledRefHistory: typeof import('@vueuse/core')['useThrottledRefHistory'] + const useTimeAgo: typeof import('@vueuse/core')['useTimeAgo'] + const useTimeout: typeof import('@vueuse/core')['useTimeout'] + const useTimeoutFn: typeof import('@vueuse/core')['useTimeoutFn'] + const useTimeoutPoll: typeof import('@vueuse/core')['useTimeoutPoll'] + const useTimestamp: typeof import('@vueuse/core')['useTimestamp'] + const useTitle: typeof import('@vueuse/core')['useTitle'] + const useToFixed: typeof import('@vueuse/math')['useToFixed'] + const useToNumber: typeof import('@vueuse/core')['useToNumber'] + const useToString: typeof import('@vueuse/core')['useToString'] + const useToggle: typeof import('@vueuse/core')['useToggle'] + const useTransition: typeof import('@vueuse/core')['useTransition'] + const useTrunc: typeof import('@vueuse/math')['useTrunc'] + const useUrlSearchParams: typeof import('@vueuse/core')['useUrlSearchParams'] + const useUserMedia: typeof import('@vueuse/core')['useUserMedia'] + const useVModel: typeof import('@vueuse/core')['useVModel'] + const useVModels: typeof import('@vueuse/core')['useVModels'] + const useVibrate: typeof import('@vueuse/core')['useVibrate'] + const useVirtualList: typeof import('@vueuse/core')['useVirtualList'] + const useWakeLock: typeof import('@vueuse/core')['useWakeLock'] + const useWebNotification: typeof import('@vueuse/core')['useWebNotification'] + const useWebSocket: typeof import('@vueuse/core')['useWebSocket'] + const useWebWorker: typeof import('@vueuse/core')['useWebWorker'] + const useWebWorkerFn: typeof import('@vueuse/core')['useWebWorkerFn'] + const useWindowFocus: typeof import('@vueuse/core')['useWindowFocus'] + const useWindowScroll: typeof import('@vueuse/core')['useWindowScroll'] + const useWindowSize: typeof import('@vueuse/core')['useWindowSize'] + const watch: typeof import('vue')['watch'] + const watchArray: typeof import('@vueuse/core')['watchArray'] + const watchAtMost: typeof import('@vueuse/core')['watchAtMost'] + const watchDebounced: typeof import('@vueuse/core')['watchDebounced'] + const watchEffect: typeof import('vue')['watchEffect'] + const watchIgnorable: typeof import('@vueuse/core')['watchIgnorable'] + const watchOnce: typeof import('@vueuse/core')['watchOnce'] + const watchPausable: typeof import('@vueuse/core')['watchPausable'] + const watchPostEffect: typeof import('vue')['watchPostEffect'] + const watchSyncEffect: typeof import('vue')['watchSyncEffect'] + const watchThrottled: typeof import('@vueuse/core')['watchThrottled'] + const watchTriggerable: typeof import('@vueuse/core')['watchTriggerable'] + const watchWithFilter: typeof import('@vueuse/core')['watchWithFilter'] + const whenever: typeof import('@vueuse/core')['whenever'] +} +// for vue template auto import +import { UnwrapRef } from 'vue' +declare module 'vue' { + interface ComponentCustomProperties { + readonly EffectScope: UnwrapRef + readonly acceptHMRUpdate: UnwrapRef + readonly asyncComputed: UnwrapRef + readonly autoResetRef: UnwrapRef + readonly computed: UnwrapRef + readonly computedAsync: UnwrapRef + readonly computedEager: UnwrapRef + readonly computedInject: UnwrapRef + readonly computedWithControl: UnwrapRef + readonly controlledComputed: UnwrapRef + readonly controlledRef: UnwrapRef + readonly createApp: UnwrapRef + readonly createEventHook: UnwrapRef + readonly createGenericProjection: UnwrapRef + readonly createGlobalState: UnwrapRef + readonly createInjectionState: UnwrapRef + readonly createPinia: UnwrapRef + readonly createProjection: UnwrapRef + readonly createReactiveFn: UnwrapRef + readonly createSharedComposable: UnwrapRef + readonly createUnrefFn: UnwrapRef + readonly customRef: UnwrapRef + readonly debouncedRef: UnwrapRef + readonly debouncedWatch: UnwrapRef + readonly defineAsyncComponent: UnwrapRef + readonly defineComponent: UnwrapRef + readonly defineStore: UnwrapRef + readonly eagerComputed: UnwrapRef + readonly effectScope: UnwrapRef + readonly extendRef: UnwrapRef + readonly getActivePinia: UnwrapRef + readonly getCurrentInstance: UnwrapRef + readonly getCurrentScope: UnwrapRef + readonly h: UnwrapRef + readonly ignorableWatch: UnwrapRef + readonly inject: UnwrapRef + readonly isDefined: UnwrapRef + readonly isProxy: UnwrapRef + readonly isReactive: UnwrapRef + readonly isReadonly: UnwrapRef + readonly isRef: UnwrapRef + readonly logicAnd: UnwrapRef + readonly logicNot: UnwrapRef + readonly logicOr: UnwrapRef + readonly makeDestructurable: UnwrapRef + readonly mapActions: UnwrapRef + readonly mapGetters: UnwrapRef + readonly mapState: UnwrapRef + readonly mapStores: UnwrapRef + readonly mapWritableState: UnwrapRef + readonly markRaw: UnwrapRef + readonly nextTick: UnwrapRef + readonly onActivated: UnwrapRef + readonly onBeforeMount: UnwrapRef + readonly onBeforeRouteLeave: UnwrapRef + readonly onBeforeRouteUpdate: UnwrapRef + readonly onBeforeUnmount: UnwrapRef + readonly onBeforeUpdate: UnwrapRef + readonly onClickOutside: UnwrapRef + readonly onDeactivated: UnwrapRef + readonly onErrorCaptured: UnwrapRef + readonly onKeyStroke: UnwrapRef + readonly onLongPress: UnwrapRef + readonly onMounted: UnwrapRef + readonly onRenderTracked: UnwrapRef + readonly onRenderTriggered: UnwrapRef + readonly onScopeDispose: UnwrapRef + readonly onServerPrefetch: UnwrapRef + readonly onStartTyping: UnwrapRef + readonly onUnmounted: UnwrapRef + readonly onUpdated: UnwrapRef + readonly pausableWatch: UnwrapRef + readonly provide: UnwrapRef + readonly reactify: UnwrapRef + readonly reactifyObject: UnwrapRef + readonly reactive: UnwrapRef + readonly reactiveComputed: UnwrapRef + readonly reactiveOmit: UnwrapRef + readonly reactivePick: UnwrapRef + readonly readonly: UnwrapRef + readonly ref: UnwrapRef + readonly refAutoReset: UnwrapRef + readonly refDebounced: UnwrapRef + readonly refDefault: UnwrapRef + readonly refThrottled: UnwrapRef + readonly refWithControl: UnwrapRef + readonly resolveComponent: UnwrapRef + readonly resolveDirective: UnwrapRef + readonly resolveRef: UnwrapRef + readonly resolveUnref: UnwrapRef + readonly setActivePinia: UnwrapRef + readonly setMapStoreSuffix: UnwrapRef + readonly shallowReactive: UnwrapRef + readonly shallowReadonly: UnwrapRef + readonly shallowRef: UnwrapRef + readonly storeToRefs: UnwrapRef + readonly syncRef: UnwrapRef + readonly syncRefs: UnwrapRef + readonly templateRef: UnwrapRef + readonly throttledRef: UnwrapRef + readonly throttledWatch: UnwrapRef + readonly toRaw: UnwrapRef + readonly toReactive: UnwrapRef + readonly toRef: UnwrapRef + readonly toRefs: UnwrapRef + readonly triggerRef: UnwrapRef + readonly tryOnBeforeMount: UnwrapRef + readonly tryOnBeforeUnmount: UnwrapRef + readonly tryOnMounted: UnwrapRef + readonly tryOnScopeDispose: UnwrapRef + readonly tryOnUnmounted: UnwrapRef + readonly unref: UnwrapRef + readonly unrefElement: UnwrapRef + readonly until: UnwrapRef + readonly useAbs: UnwrapRef + readonly useActiveElement: UnwrapRef + readonly useArrayEvery: UnwrapRef + readonly useArrayFilter: UnwrapRef + readonly useArrayFind: UnwrapRef + readonly useArrayFindIndex: UnwrapRef + readonly useArrayJoin: UnwrapRef + readonly useArrayMap: UnwrapRef + readonly useArrayReduce: UnwrapRef + readonly useArraySome: UnwrapRef + readonly useArrayUnique: UnwrapRef + readonly useAsyncQueue: UnwrapRef + readonly useAsyncState: UnwrapRef + readonly useAttrs: UnwrapRef + readonly useAverage: UnwrapRef + readonly useBase64: UnwrapRef + readonly useBattery: UnwrapRef + readonly useBluetooth: UnwrapRef + readonly useBreakpoints: UnwrapRef + readonly useBroadcastChannel: UnwrapRef + readonly useBrowserLocation: UnwrapRef + readonly useCached: UnwrapRef + readonly useCeil: UnwrapRef + readonly useClamp: UnwrapRef + readonly useClipboard: UnwrapRef + readonly useCloned: UnwrapRef + readonly useColorMode: UnwrapRef + readonly useConfirmDialog: UnwrapRef + readonly useCounter: UnwrapRef + readonly useCssModule: UnwrapRef + readonly useCssVar: UnwrapRef + readonly useCssVars: UnwrapRef + readonly useCurrentElement: UnwrapRef + readonly useCycleList: UnwrapRef + readonly useDark: UnwrapRef + readonly useDateFormat: UnwrapRef + readonly useDebounce: UnwrapRef + readonly useDebounceFn: UnwrapRef + readonly useDebouncedRefHistory: UnwrapRef + readonly useDeviceMotion: UnwrapRef + readonly useDeviceOrientation: UnwrapRef + readonly useDevicePixelRatio: UnwrapRef + readonly useDevicesList: UnwrapRef + readonly useDisplayMedia: UnwrapRef + readonly useDocumentVisibility: UnwrapRef + readonly useDraggable: UnwrapRef + readonly useDropZone: UnwrapRef + readonly useElementBounding: UnwrapRef + readonly useElementByPoint: UnwrapRef + readonly useElementHover: UnwrapRef + readonly useElementSize: UnwrapRef + readonly useElementVisibility: UnwrapRef + readonly useEventBus: UnwrapRef + readonly useEventListener: UnwrapRef + readonly useEventSource: UnwrapRef + readonly useEyeDropper: UnwrapRef + readonly useFavicon: UnwrapRef + readonly useFetch: UnwrapRef + readonly useFileDialog: UnwrapRef + readonly useFileSystemAccess: UnwrapRef + readonly useFloor: UnwrapRef + readonly useFocus: UnwrapRef + readonly useFocusWithin: UnwrapRef + readonly useFps: UnwrapRef + readonly useFullscreen: UnwrapRef + readonly useGamepad: UnwrapRef + readonly useGeolocation: UnwrapRef + readonly useI18n: UnwrapRef + readonly useIdle: UnwrapRef + readonly useImage: UnwrapRef + readonly useInfiniteScroll: UnwrapRef + readonly useIntersectionObserver: UnwrapRef + readonly useInterval: UnwrapRef + readonly useIntervalFn: UnwrapRef + readonly useKeyModifier: UnwrapRef + readonly useLastChanged: UnwrapRef + readonly useLink: UnwrapRef + readonly useLocalStorage: UnwrapRef + readonly useMagicKeys: UnwrapRef + readonly useManualRefHistory: UnwrapRef + readonly useMath: UnwrapRef + readonly useMax: UnwrapRef + readonly useMediaControls: UnwrapRef + readonly useMediaQuery: UnwrapRef + readonly useMemoize: UnwrapRef + readonly useMemory: UnwrapRef + readonly useMin: UnwrapRef + readonly useMounted: UnwrapRef + readonly useMouse: UnwrapRef + readonly useMouseInElement: UnwrapRef + readonly useMousePressed: UnwrapRef + readonly useMutationObserver: UnwrapRef + readonly useNavigatorLanguage: UnwrapRef + readonly useNetwork: UnwrapRef + readonly useNow: UnwrapRef + readonly useObjectUrl: UnwrapRef + readonly useOffsetPagination: UnwrapRef + readonly useOnline: UnwrapRef + readonly usePageLeave: UnwrapRef + readonly useParallax: UnwrapRef + readonly usePermission: UnwrapRef + readonly usePointer: UnwrapRef + readonly usePointerLock: UnwrapRef + readonly usePointerSwipe: UnwrapRef + readonly usePrecision: UnwrapRef + readonly usePreferredColorScheme: UnwrapRef + readonly usePreferredContrast: UnwrapRef + readonly usePreferredDark: UnwrapRef + readonly usePreferredLanguages: UnwrapRef + readonly usePreferredReducedMotion: UnwrapRef + readonly usePrevious: UnwrapRef + readonly useProjection: UnwrapRef + readonly useRafFn: UnwrapRef + readonly useRefHistory: UnwrapRef + readonly useResizeObserver: UnwrapRef + readonly useRound: UnwrapRef + readonly useRoute: UnwrapRef + readonly useRouter: UnwrapRef + readonly useScreenOrientation: UnwrapRef + readonly useScreenSafeArea: UnwrapRef + readonly useScriptTag: UnwrapRef + readonly useScroll: UnwrapRef + readonly useScrollLock: UnwrapRef + readonly useSessionStorage: UnwrapRef + readonly useShare: UnwrapRef + readonly useSlots: UnwrapRef + readonly useSorted: UnwrapRef + readonly useSpeechRecognition: UnwrapRef + readonly useSpeechSynthesis: UnwrapRef + readonly useStepper: UnwrapRef + readonly useStorage: UnwrapRef + readonly useStorageAsync: UnwrapRef + readonly useStyleTag: UnwrapRef + readonly useSum: UnwrapRef + readonly useSupported: UnwrapRef + readonly useSwipe: UnwrapRef + readonly useTemplateRefsList: UnwrapRef + readonly useTextDirection: UnwrapRef + readonly useTextSelection: UnwrapRef + readonly useTextareaAutosize: UnwrapRef + readonly useThrottle: UnwrapRef + readonly useThrottleFn: UnwrapRef + readonly useThrottledRefHistory: UnwrapRef + readonly useTimeAgo: UnwrapRef + readonly useTimeout: UnwrapRef + readonly useTimeoutFn: UnwrapRef + readonly useTimeoutPoll: UnwrapRef + readonly useTimestamp: UnwrapRef + readonly useTitle: UnwrapRef + readonly useToFixed: UnwrapRef + readonly useToNumber: UnwrapRef + readonly useToString: UnwrapRef + readonly useToggle: UnwrapRef + readonly useTransition: UnwrapRef + readonly useTrunc: UnwrapRef + readonly useUrlSearchParams: UnwrapRef + readonly useUserMedia: UnwrapRef + readonly useVModel: UnwrapRef + readonly useVModels: UnwrapRef + readonly useVibrate: UnwrapRef + readonly useVirtualList: UnwrapRef + readonly useWakeLock: UnwrapRef + readonly useWebNotification: UnwrapRef + readonly useWebSocket: UnwrapRef + readonly useWebWorker: UnwrapRef + readonly useWebWorkerFn: UnwrapRef + readonly useWindowFocus: UnwrapRef + readonly useWindowScroll: UnwrapRef + readonly useWindowSize: UnwrapRef + readonly watch: UnwrapRef + readonly watchArray: UnwrapRef + readonly watchAtMost: UnwrapRef + readonly watchDebounced: UnwrapRef + readonly watchEffect: UnwrapRef + readonly watchIgnorable: UnwrapRef + readonly watchOnce: UnwrapRef + readonly watchPausable: UnwrapRef + readonly watchPostEffect: UnwrapRef + readonly watchSyncEffect: UnwrapRef + readonly watchThrottled: UnwrapRef + readonly watchTriggerable: UnwrapRef + readonly watchWithFilter: UnwrapRef + readonly whenever: UnwrapRef + } +} diff --git a/chains/mainnet/8ball.json b/chains/mainnet/8ball.json new file mode 100644 index 00000000..a937ad93 --- /dev/null +++ b/chains/mainnet/8ball.json @@ -0,0 +1,27 @@ +{ + "chain_name": "8ball", + "coingecko": "", + "api": [ + "https://rest.8ball.info", + "https://api-8ball.nodeist.net" + + ], + "rpc": [ + "https://rpc.8ball.info", + "https://rpc-8ball.nodeist.net" + ], + "snapshot_provider": "", + "coin_type": "118", + "sdk_version": "0.46.8", + "addr_prefix": "8ball", + "logo": "/logos/8ball.png", + "assets": [ + { + "base": "uebl", + "symbol": "EBL", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/8ball.png" + } + ] +} diff --git a/chains/mainnet/agoric.json b/chains/mainnet/agoric.json new file mode 100644 index 00000000..a831e63c --- /dev/null +++ b/chains/mainnet/agoric.json @@ -0,0 +1,34 @@ +{ + "chain_name": "agoric", + "api": [ + "https://agoric-api.polkachu.com", + "https://api-agoric.nodes.guru", + "https://agoric.stakesystems.io", + "https://agoric-lcd.stakely.io", + "https://api.agoric.nodestake.top", + "https://agoric.api.kjnodes.com" + ], + "rpc": ["https://main.rpc.agoric.net:443", "https://main.rpc.agoric.net:443", "https://rpc.agoric.nodestake.top", "https://agoric.rpc.kjnodes.com:443"], + "snapshot_provider": "", + "sdk_version": "0.45.4", + "coin_type": "564", + "min_tx_fee": "8000", + "assets": [ + { + "base": "ubld", + "symbol": "BLD", + "exponent": "6", + "coingecko_id": "agoric", + "logo": "/logos/agoric-bld.svg" + }, + { + "base": "uist", + "symbol": "IST", + "exponent": "6", + "coingecko_id": "", + "logo": "" + } + ], + "addr_prefix": "agoric", + "logo": "/logos/agoric.png" +} diff --git a/chains/mainnet/akash.json b/chains/mainnet/akash.json new file mode 100644 index 00000000..2aff7efb --- /dev/null +++ b/chains/mainnet/akash.json @@ -0,0 +1,19 @@ +{ + "chain_name": "akash", + "alias": "akash-network", + "api": ["https://api-akash-ia.cosmosia.notional.ventures/", "https://akash-api.polkachu.com", "https://akash.c29r3.xyz:443/api", "https://akash.api.ping.pub"], + "rpc": ["https://rpc-akash-ia.cosmosia.notional.ventures/", "https://akash-rpc.polkachu.com/", "http://rpc.akash.forbole.com:80", "http://akashsentry01.skynetvalidators.com:26657"], + "snapshot_provider": "", + "sdk_version": "0.45.4", + "coin_type": "118", + "min_tx_fee": "8000", + "assets": [{ + "base": "uakt", + "symbol": "AKT", + "exponent": "6", + "coingecko_id": "akash-network", + "logo": "/logos/akash-network.png" + }], + "addr_prefix": "akash", + "logo": "/logos/akash-network.png" +} \ No newline at end of file diff --git a/chains/mainnet/aura.json.disabled b/chains/mainnet/aura.json.disabled new file mode 100644 index 00000000..ec992f72 --- /dev/null +++ b/chains/mainnet/aura.json.disabled @@ -0,0 +1,19 @@ +{ + "chain_name": "aura", + "coingecko": "aura-network", + "api": ["https://lcd.euphoria.aura.network"], + "rpc": ["https://snapshot-1.euphoria.aura.network:443","https://snapshot-2.euphoria.aura.network:443"], + "snapshot_provider": "705e3c2b2b554586976ed88bb27f68e4c4176a33@13.250.223.114:26656,b9243524f659f2ff56691a4b2919c3060b2bb824@13.214.5.1:26656", + "sdk_version": "0.45.6", + "coin_type": "118", + "min_tx_fee": "8000", + "addr_prefix": "eaura", + "logo": "/logos/aura.png", + "assets": [{ + "base": "ueaura", + "symbol": "AURA", + "exponent": "6", + "coingecko_id": "aura-network", + "logo": "/logos/aura.png" + }] + } diff --git a/chains/mainnet/axelar.json b/chains/mainnet/axelar.json new file mode 100644 index 00000000..7b416ee8 --- /dev/null +++ b/chains/mainnet/axelar.json @@ -0,0 +1,60 @@ +{ + "chain_name": "axelar", + "api": ["https://api-axelar-ia.cosmosia.notional.ventures", "https://lcd-axelar.imperator.co", "https://axelar-lcd.quickapi.com", "https://axelar-api.polkachu.com", "https://axelar-lcd.qubelabs.io", "https://axelar-rest.chainode.tech", "https://axelar-lcd.quantnode.tech", "https://api-1.axelar.nodes.guru:443"], + "rpc": ["https://rpc-axelar-ia.cosmosia.notional.ventures:443", "https://rpc-axelar.imperator.co:443", "https://axelar-rpc.quickapi.com:443", "https://axelar-rpc.pops.one:443", "https://axelar-rpc.chainode.tech:443", "https://axelar-rpc.polkachu.com:443"], + "snapshot_provider": "", + "sdk_version": "0.45.6", + "coin_type": "118", + "min_tx_fee": "800", + "addr_prefix": "axelar", + "logo": "/logos/axelar.svg", + "assets": [{ + "base": "uaxl", + "symbol": "AXL", + "exponent": "6", + "coingecko_id": "axelar", + "logo": "/logos/axelar.svg" + }, { + "base": "uusdc", + "symbol": "axlUSDC", + "exponent": "6", + "coingecko_id": "usd-coin", + "logo": "/logos/usdc.svg" + }, { + "base": "uusdt", + "symbol": "axlUSDT", + "exponent": "6", + "coingecko_id": "tether", + "logo": "/logos/usdt.svg" + }, { + "base": "dai-wei", + "symbol": "axlDAI", + "exponent": "18", + "coingecko_id": "dai", + "logo": "/logos/dai.svg" + }, { + "base": "weth-wei", + "symbol": "axlWETH", + "exponent": "18", + "coingecko_id": "ethereum", + "logo": "/logos/weth.svg" + }, { + "base": "wmatic-wei", + "symbol": "axlWMATIC", + "exponent": "18", + "coingecko_id": "matic-network", + "logo": "/logos/wmatic.svg" + }, { + "base": "wavax-wei", + "symbol": "axlWAVAX", + "exponent": "18", + "coingecko_id": "avalanche-2", + "logo": "/logos/wavax.svg" + }, { + "base": "dot-planck", + "symbol": "axlDOT", + "exponent": "10", + "coingecko_id": "polkadot", + "logo": "/logos/dot.svg" + }] +} diff --git a/chains/mainnet/band.json b/chains/mainnet/band.json new file mode 100644 index 00000000..e4c300a9 --- /dev/null +++ b/chains/mainnet/band.json @@ -0,0 +1,19 @@ +{ + "chain_name": "band", + "alias": "band-protocol", + "api": "https://laozi1.bandchain.org/api", + "rpc": ["http://rpc.laozi1.bandchain.org:80", "http://rpc.laozi1.bandchain.org:80"], + "snapshot_provider": "", + "addr_prefix": "band", + "coin_type": "494", + "min_tx_fee": "8000", + "assets": [{ + "base": "uband", + "symbol": "BAND", + "exponent": "6", + "coingecko_id": "band-protocol", + "logo": "/logos/band-protocol.svg" + }], + "logo": "/logos/band-protocol.svg", + "sdk_version": "0.45.8" +} \ No newline at end of file diff --git a/chains/mainnet/beezee.json b/chains/mainnet/beezee.json new file mode 100644 index 00000000..37027bb0 --- /dev/null +++ b/chains/mainnet/beezee.json @@ -0,0 +1,19 @@ +{ + "chain_name": "beezee", + "coingecko": "bzedge", + "api": ["https://rest.getbze.com"], + "rpc": ["https://rpc-1.getbze.com:443","https://rpc-2.getbze.com:443"], + "snapshot_provider": ["a9fac0534bd6853f5810fdc692564967bd01b1fe@rpc-1.getbze.com:26656"], + "sdk_version": "0.45.9", + "coin_type": "370", + "min_tx_fee": "8000", + "addr_prefix": "bze", + "logo": "/logos/beezee.png", + "assets": [{ + "base": "ubze", + "symbol": "BZE", + "exponent": "6", + "coingecko_id": "bzedge", + "logo": "/logos/beezee.png" + }] + } diff --git a/chains/mainnet/bitcanna.json b/chains/mainnet/bitcanna.json new file mode 100644 index 00000000..941fddb2 --- /dev/null +++ b/chains/mainnet/bitcanna.json @@ -0,0 +1,19 @@ +{ + "chain_name": "bitcanna", + "coingecko": "bitcanna", + "api": ["https://api-bitcanna-ia.cosmosia.notional.ventures", "https://bitcanna-api.polkachu.com", "https://lcd.bitcanna.io"], + "rpc": ["https://rpc-bitcanna-ia.cosmosia.notional.ventures:443", "https://bitcanna-rpc.polkachu.com:443", "https://rpc.bitcanna.io:443"], + "snapshot_provider": "29edc55748bc341224f711a05cb0a9f6d73b4da3@bitcanna.rpc.ping.pub:26656", + "sdk_version": "0.45.10", + "coin_type": "118", + "min_tx_fee": "420", + "assets": [{ + "base": "ubcna", + "symbol": "BCNA", + "exponent": "6", + "coingecko_id": "bitcanna", + "logo": "/logos/bitcanna.svg" + }], + "addr_prefix": "bcna", + "logo": "/logos/bitcanna.svg" +} diff --git a/chains/mainnet/bitsong.json b/chains/mainnet/bitsong.json new file mode 100644 index 00000000..10ef2d7c --- /dev/null +++ b/chains/mainnet/bitsong.json @@ -0,0 +1,18 @@ +{ + "chain_name": "bitsong", + "coingecko": "bitsong", + "api": ["https://api-bitsong-ia.cosmosia.notional.ventures", "https://lcd.explorebitsong.com"], + "rpc": ["https://rpc-bitsong-ia.cosmosia.notional.ventures:443", "https://rpc-bitsong.itastakers.com:443","https://rpc-bitsong.itastakers.com:443"], + "addr_prefix": "bitsong", + "coin_type": "639", + "min_tx_fee": "5000", + "logo": "/logos/bitsong.svg", + "sdk_version": "0.45.6", + "assets": [{ + "base": "ubtsg", + "symbol": "BTSG", + "exponent": "6", + "coingecko_id": "bitsong", + "logo": "/logos/bitsong.svg" + }] +} \ No newline at end of file diff --git a/chains/mainnet/bostrom.json b/chains/mainnet/bostrom.json new file mode 100644 index 00000000..3b3e7249 --- /dev/null +++ b/chains/mainnet/bostrom.json @@ -0,0 +1,19 @@ +{ + "chain_name": "bostrom", + "coingecko": "", + "api": "https://lcd.bostrom.cybernode.ai", + "rpc": ["https://rpc.bostrom.cybernode.ai:443", "https://rpc.bostrom.cybernode.ai:443"], + "snapshot_provider": "", + "sdk_version": "0.44.3", + "coin_type": "118", + "min_tx_fee": "5000", + "addr_prefix": "bostrom", + "logo": "/logos/bostrom.png", + "assets": [{ + "base": "boot", + "symbol": "BOOT", + "exponent": "0", + "coingecko_id": "", + "logo": "/logos/bostrom.png" + }] +} diff --git a/chains/mainnet/canto.json b/chains/mainnet/canto.json new file mode 100644 index 00000000..41e8805c --- /dev/null +++ b/chains/mainnet/canto.json @@ -0,0 +1,18 @@ +{ + "chain_name": "canto", + "api": ["https://canto-api.polkachu.com","https://api.canto.nodestake.top"], + "rpc": ["https://canto-rpc.polkachu.com:443","https://rpc.canto.nodestake.top"], + "snapshot_provider": "", + "sdk_version": "0.45.6", + "coin_type": "60", + "min_tx_fee": "800", + "addr_prefix": "canto", + "logo": "/logos/canto.png", + "assets": [ + { + "base": "acanto", + "symbol": "CANTO", + "exponent": "18" + } + ] +} diff --git a/chains/mainnet/carbon.json b/chains/mainnet/carbon.json new file mode 100644 index 00000000..be874fc4 --- /dev/null +++ b/chains/mainnet/carbon.json @@ -0,0 +1,24 @@ +{ + "chain_name": "carbon", + "coingecko": "switcheo", + "api": "https://api.carbon.network", + "rpc": ["https://tm-api.carbon.network"], + "snapshot_provider": "", + "sdk_version": "0.45.2", + "coin_type": "118", + "min_tx_fee": "100000000", + "addr_prefix": "swth", + "logo": "/logos/carbon.svg", + "sign_opts": { + "keplr": { + "preferNoSetFee": true + } + }, + "assets": [{ + "base": "swth", + "symbol": "SWTH", + "exponent": "8", + "coingecko_id": "switcheo", + "logo": "/logos/carbon.svg" + }] +} \ No newline at end of file diff --git a/chains/mainnet/celestia.json.disabled b/chains/mainnet/celestia.json.disabled new file mode 100644 index 00000000..2b3785a4 --- /dev/null +++ b/chains/mainnet/celestia.json.disabled @@ -0,0 +1,19 @@ +{ + "chain_name": "celestia", + "coingecko": "", + "api": "https://celestia-api.skynetvalidators.com", + "rpc": [], + "snapshot_provider": "", + "sdk_version": "0.44.0", + "coin_type": "118", + "min_tx_fee": "800", + "addr_prefix": "celestia", + "logo": "/logos/celestia.png", + "assets": [{ + "base": "celes", + "symbol": "CELES", + "exponent": "0", + "coingecko_id": "", + "logo": "/logos/celestia.png" + }] +} diff --git a/chains/mainnet/cerberus.json b/chains/mainnet/cerberus.json new file mode 100644 index 00000000..712b3624 --- /dev/null +++ b/chains/mainnet/cerberus.json @@ -0,0 +1,21 @@ +{ + "chain_name": "cerberus", + "coingecko": "cerberus-2", + "api": ["https://cerberus-api.polkachu.com","https://api-cerberus-ia.cosmosia.notional.ventures", "https://api.cerberus.zone:1317"], + "rpc": ["https://cerberus-rpc.polkachu.com:443", "https://rpc-cerberus-ia.cosmosia.notional.ventures:443", "https://rpc-cerberus.ecostake.com:443"], + "snapshot_provider": "21cca2db122c48a11f426799131ef08235d46671@cerberus-rpc.polkachu.com:10656", + "sdk_version": "0.45.8", + "coin_type": "118", + "min_tx_fee": "5000", + "addr_prefix": "cerberus", + "logo": "/logos/cerberus.png", + "assets": [ + { + "base": "ucrbrus", + "symbol": "CRBRUS", + "exponent": "6", + "coingecko_id": "cerberus-2", + "logo": "/logos/cerberus.png" + } + ] +} diff --git a/chains/mainnet/chain4energy.json b/chains/mainnet/chain4energy.json new file mode 100644 index 00000000..2b5e72e9 --- /dev/null +++ b/chains/mainnet/chain4energy.json @@ -0,0 +1,16 @@ +{ + "chain_name": "chain4energy", + "api": ["https://lcd.c4e.io"], + "rpc": ["https://rpc.c4e.io:443", "https://rpc.c4e.io:443"], + "sdk_version": "0.45.5", + "coin_type": "4444", + "min_tx_fee": "3000", + "addr_prefix": "c4e", + "logo": "/logos/c4e.png", + "assets": [{ + "base": "uc4e", + "symbol": "C4E", + "exponent": "6", + "logo": "/logos/c4e.png" + }] +} diff --git a/chains/mainnet/cheqd.json b/chains/mainnet/cheqd.json new file mode 100644 index 00000000..a3a28188 --- /dev/null +++ b/chains/mainnet/cheqd.json @@ -0,0 +1,18 @@ +{ + "chain_name": "cheqd", + "api": ["https://api.cheqd.net","https://api.cheqd.nodestake.top"], + "rpc": ["https://rpc.cheqd.net:443", "https://rpc.cheqd.net:443","https://rpc.cheqd.nodestake.top"], + "snapshot_provider": "", + "sdk_version": "0.45.5", + "coin_type": "118", + "min_tx_fee": "5000", + "addr_prefix": "cheqd", + "logo": "/logos/cheqd.png", + "assets": [{ + "base": "ncheq", + "symbol": "CHEQ", + "exponent": "9", + "coingecko_id": "cheqd-network", + "logo": "/logos/cheqd.png" + }] +} diff --git a/chains/mainnet/chihuahua.json b/chains/mainnet/chihuahua.json new file mode 100644 index 00000000..e389fe65 --- /dev/null +++ b/chains/mainnet/chihuahua.json @@ -0,0 +1,19 @@ +{ + "chain_name": "chihuahua", + "coingecko": "chihuahua-token", + "api": ["https://chihuahua-api.polkachu.com", "https://api.chihuahua.wtf", "https://chihuahua-api.mercury-nodes.net"], + "rpc": ["https://chihuahua-rpc.polkachu.com:443", "https://rpc.chihuahua.wtf:443"], + "snapshot_provider": "12611137be6f64f9a7fb8977614a5a6f257c1394@65.21.200.224:29656", + "sdk_version": "0.45.8", + "coin_type": "118", + "min_tx_fee": "250000", + "addr_prefix": "chihuahua", + "logo": "/logos/chihuahua.png", + "assets": [{ + "base": "uhuahua", + "symbol": "HUAHUA", + "exponent": "6", + "coingecko_id": "chihuahua-token", + "logo": "/logos/chihuahua.png" + }] +} diff --git a/chains/mainnet/cht.json.disabled b/chains/mainnet/cht.json.disabled new file mode 100644 index 00000000..659ea734 --- /dev/null +++ b/chains/mainnet/cht.json.disabled @@ -0,0 +1,24 @@ +{ + "chain_name": "chronic-token", + "api": ["https://chtd-api.skynetvalidators.com"], + "rpc": ["https://rpc-chronic.zenchainlabs.io/"], + "snapshot_provider": "", + "sdk_version": "0.41.3", + "coin_type": "118", + "min_tx_fee": "200", + "assets": [{ + "base": "ucht", + "symbol": "CHT", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/chronic-token.jpg" + },{ + "base": "ucgas", + "symbol": "CGAS", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/chronic-token.jpg" + }], + "addr_prefix": "chronic", + "logo": "/logos/chronic-token.jpg" +} diff --git a/chains/mainnet/comdex.json b/chains/mainnet/comdex.json new file mode 100644 index 00000000..6d86ada8 --- /dev/null +++ b/chains/mainnet/comdex.json @@ -0,0 +1,18 @@ +{ + "chain_name": "comdex", + "api": ["https://api-comdex-ia.cosmosia.notional.ventures", "https://comdex-api.polkachu.com", "https://rest.comdex.one/"], + "rpc": ["https://rpc-comdex-ia.cosmosia.notional.ventures:443", "https://comdex-rpc.polkachu.com:443", "https://api.comdex.audit.one:443/rpc", "https://rpc.comdex.one:443"], + "snapshot_provider": "", + "sdk_version": "0.45.8", + "coin_type": "118", + "min_tx_fee": "5000", + "addr_prefix": "comdex", + "logo": "/logos/comdex.png", + "assets": [{ + "base": "ucmdx", + "symbol": "CMDX", + "exponent": "6", + "coingecko_id": "comdex", + "logo": "/logos/comdex.png" + }] +} diff --git a/chains/mainnet/commercionetwork.json b/chains/mainnet/commercionetwork.json new file mode 100644 index 00000000..bdadbc2d --- /dev/null +++ b/chains/mainnet/commercionetwork.json @@ -0,0 +1,25 @@ +{ + "chain_name": "commercio.network", + "coingecko": "", + "api": ["https://lcd-mainnet.commercio.network"], + "rpc": ["https://rpc-mainnet.commercio.network:443"], + "snapshot_provider": "", + "sdk_version": "0.45.9", + "coin_type": "118", + "min_tx_fee": "10000", + "addr_prefix": "did:com:", + "logo": "/logos/commercionetwork.png", + "assets": [{ + "base": "ucommercio", + "symbol": "COM", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/com.png" + },{ + "base": "uccc", + "symbol": "CCC", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/ccc.png" + }] +} diff --git a/chains/mainnet/cosmos.json b/chains/mainnet/cosmos.json new file mode 100644 index 00000000..338532b7 --- /dev/null +++ b/chains/mainnet/cosmos.json @@ -0,0 +1,35 @@ +{ + "chain_name": "cosmos", + "api": [ + "https://api-cosmoshub-ia.cosmosia.notional.ventures" + ], + "rpc": [{ + "address": "http://rpc-cosmoshub.freshstaking.com:26657/", + "provider": "FreshSTAKING" + }, + { + "address": "https://cosmos-rpc.polkachu.com/", + "provider": "Polkachu" + }, + + { + "address": "https://rpc.cosmoshub.strange.love/", + "provider": "strangelove-ventures" + }, + { + "address": "https://rpc-cosmoshub.whispernode.com/", + "provider": "WhisperNode🤐" + }], + "sdk_version": "0.45.1", + "coin_type": "118", + "min_tx_fee": "800", + "addr_prefix": "cosmos", + "logo": "/logos/cosmos.svg", + "assets": [{ + "base": "uatom", + "symbol": "ATOM", + "exponent": "6", + "coingecko_id": "cosmos", + "logo": "/logos/cosmos.svg" + }] +} \ No newline at end of file diff --git a/chains/mainnet/crescent.json b/chains/mainnet/crescent.json new file mode 100644 index 00000000..8f013b77 --- /dev/null +++ b/chains/mainnet/crescent.json @@ -0,0 +1,24 @@ +{ + "chain_name": "crescent", + "api": ["https://crescent-api.polkachu.com", "https://mainnet.crescent.network:1317", "https://api.crescent.pupmos.network"], + "rpc": ["https://mainnet.crescent.network:26657", "https://crescent-rpc.polkachu.com"], + "snapshot_provider": "", + "sdk_version": "0.45.3", + "coin_type": "118", + "min_tx_fee": "5000", + "addr_prefix": "cre", + "logo": "/logos/cre.png", + "assets": [{ + "base": "ucre", + "symbol": "CRE", + "exponent": "6", + "coingecko_id": "crescent-network", + "logo": "/logos/cre.png" + },{ + "base": "ubcre", + "symbol": "bCRE", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/cre.png" + }] +} diff --git a/chains/mainnet/cronos.json b/chains/mainnet/cronos.json new file mode 100644 index 00000000..7c74868e --- /dev/null +++ b/chains/mainnet/cronos.json @@ -0,0 +1,17 @@ + +{ + "chain_name": "cronos", + "api": ["https://rest.cronos.org"], + "rpc": ["https://rpc.cronos.org:443"], + "snapshot_provider": "", + "sdk_version": "0.45.11", + "coin_type": "60", + "min_tx_fee": "5000000000000000", + "addr_prefix": "crc", + "logo": "/logos/cronos.png", + "assets": [{ + "base": "basecro", + "symbol": "CRO", + "exponent": "18" + }] +} diff --git a/chains/mainnet/crypto.json b/chains/mainnet/crypto.json new file mode 100644 index 00000000..a75f5c23 --- /dev/null +++ b/chains/mainnet/crypto.json @@ -0,0 +1,20 @@ + +{ + "chain_name": "crypto-com-chain", + "coingecko": "crypto-com-chain", + "api": ["https://rest.mainnet.crypto.org"], + "rpc": ["https://rpc.mainnet.crypto.org:443"], + "snapshot_provider": "87c3adb7d8f649c51eebe0d3335d8f9e28c362f2@seed-0.crypto.org:26656,e1d7ff02b78044795371beb1cd5fb803f9389256@seed-1.crypto.org:26656,2c55809558a4e491e9995962e10c026eb9014655@seed-2.crypto.org:26656", + "sdk_version": "0.46.7", + "coin_type": "394", + "min_tx_fee": "5000", + "addr_prefix": "cro", + "logo": "/logos/crypto-com-chain.png", + "assets": [{ + "base": "basecro", + "symbol": "CRO", + "exponent": "8", + "coingecko_id": "crypto-com-chain", + "logo": "/logos/crypto-com-chain.png" + }] +} diff --git a/chains/mainnet/cudos.json b/chains/mainnet/cudos.json new file mode 100644 index 00000000..d3a07d44 --- /dev/null +++ b/chains/mainnet/cudos.json @@ -0,0 +1,20 @@ +{ + "chain_name": "cudos", + "coingecko": "cudos", + "api": ["https://rest.cudos.org"], + "rpc": ["https://rpc.cudos.org"], + "snapshot_provider": "", + "sdk_version": "0.45.3", + "coin_type": "118", + "min_tx_fee": "5000000000000", + "addr_prefix": "cudos", + "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/cudos/images/cudos.png", + "assets": [{ + "base": "acudos", + "symbol": "CUDOS", + "exponent": "18", + "coingecko_id": "cudos", + "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/cudos/images/cudos.png" + } + ] +} diff --git a/chains/mainnet/decentr.json b/chains/mainnet/decentr.json new file mode 100644 index 00000000..7f547ab7 --- /dev/null +++ b/chains/mainnet/decentr.json @@ -0,0 +1,18 @@ +{ + "chain_name": "decentr", + "api": ["https://rest.mainnet.decentr.xyz","https://api.decentr.nodestake.top"], + "rpc": ["https://ares.mainnet.decentr.xyz:443", "https://poseidon.mainnet.decentr.xyz:443","https://rpc.decentr.nodestake.top"], + "snapshot_provider": "", + "sdk_version": "0.44.3", + "coin_type": "118", + "min_tx_fee": "3000", + "addr_prefix": "decentr", + "logo": "/logos/decentr.png", + "assets": [{ + "base": "udec", + "symbol": "DEC", + "exponent": "6", + "coingecko_id": "decentr", + "logo": "/logos/decentr.png" + }] +} diff --git a/chains/mainnet/desmos.json b/chains/mainnet/desmos.json new file mode 100644 index 00000000..294312da --- /dev/null +++ b/chains/mainnet/desmos.json @@ -0,0 +1,18 @@ +{ + "chain_name": "desmos", + "coingecko": "desmos", + "api": ["https://api.mainnet.desmos.network"], + "rpc": ["https://rpc.mainnet.desmos.network:443"], + "sdk_version": "0.45.8", + "coin_type": "852", + "min_tx_fee": "3000", + "addr_prefix": "desmos", + "logo": "/logos/desmos.png", + "assets": [{ + "base": "udsm", + "symbol": "DSM", + "exponent": "6", + "coingecko_id": "desmos", + "logo": "/logos/desmos.png" + }] +} diff --git a/chains/mainnet/dig.json b/chains/mainnet/dig.json new file mode 100644 index 00000000..be50cdd1 --- /dev/null +++ b/chains/mainnet/dig.json @@ -0,0 +1,19 @@ +{ + "chain_name": "dig", + "coingecko": "", + "api": "https://api-1-dig.notional.ventures", + "rpc": ["https://rpc-1-dig.notional.ventures:443", "https://rpc-1-dig.notional.ventures:443"], + "snapshot_provider": "", + "sdk_version": "0.46.1", + "coin_type": "118", + "min_tx_fee": "5000", + "addr_prefix": "dig", + "logo": "/logos/dig1.png", + "assets": [{ + "base": "udig", + "symbol": "DIG", + "exponent": "6", + "coingecko_id": "dig-chain", + "logo": "/logos/dig1.png" + }] +} diff --git a/chains/mainnet/echelon.json b/chains/mainnet/echelon.json new file mode 100644 index 00000000..297346fe --- /dev/null +++ b/chains/mainnet/echelon.json @@ -0,0 +1,20 @@ +{ + "chain_name": "echelon", + "coingecko": "echelon", + "api": ["https://api.ech.network", "https://lcd-echelon.whispernode.com", "https://api.echelon.nodestake.top", "https://echelon-api.polkachu.com", "https://api.eu.ech.world", "https://api.us.ech.world"], + "rpc": ["https://tendermint.ech.network", "https://rpc-echelon.whispernode.com" , "https://rpc.echelon.nodestake.top", "https://echelon-rpc.polkachu.com", "https://rpc.eu.ech.world", "https://rpc.us.ech.world"], + "snapshot_provider": "", + "sdk_version": "0.45.1", + "coin_type": "60", + "min_tx_fee": "3000000000000000", + "addr_prefix": "echelon", + "logo": "/logos/echelon.gif", + "keplr_features": ["ibc-transfer", "ibc-go", "eth-address-gen", "eth-key-sign"], + "assets": [{ + "base": "aechelon", + "symbol": "ECH", + "exponent": "18", + "coingecko_id": "echelon", + "logo": "/logos/echelon.gif" + }] +} diff --git a/chains/mainnet/emoney.json b/chains/mainnet/emoney.json new file mode 100644 index 00000000..9ed8b533 --- /dev/null +++ b/chains/mainnet/emoney.json @@ -0,0 +1,26 @@ +{ + "chain_name": "e-money", + "coingecko": "e-money", + "api": "https://emoney.validator.network/api", + "rpc": ["https://rpc-emoney.keplr.app:443", "https://emoney.validator.network:443"], + "snapshot_provider": "", + "addr_prefix": "emoney", + "coin_type": "118", + "min_tx_fee": "5000", + "logo": "/logos/e-money.jpg", + "sdk_version": "0.42.10", + "excludes": "mint governance", + "assets": [{ + "base": "ungm", + "symbol": "NGM", + "exponent": "6", + "coingecko_id": "emoney", + "logo": "/logos/e-money.jpg" + },{ + "base": "eeur", + "symbol": "EEUR", + "exponent": "6", + "coingecko_id": "e-money-eur", + "logo": "/logos/e-money.jpg" + }] +} \ No newline at end of file diff --git a/chains/mainnet/evmos.json b/chains/mainnet/evmos.json new file mode 100644 index 00000000..737ecf52 --- /dev/null +++ b/chains/mainnet/evmos.json @@ -0,0 +1,19 @@ +{ + "chain_name": "evmos", + "api": ["https://evmos-api.polkachu.com", "https://api-evmos-ia.cosmosia.notional.ventures", "https://rest.bd.evmos.org:1317", "https://evmos-api.skynetvalidators.com","https://api.evmos.nodestake.top"], + "rpc": ["https://evmos-rpc.polkachu.com:443", "https://rpc-evmos-ia.cosmosia.notional.ventures:443", "https://tendermint.bd.evmos.org:26657", "https://tendermint.bd.evmos.org:26657","https://rpc.evmos.nodestake.top"], + "snapshot_provider": "", + "sdk_version": "0.46.2", + "coin_type": "60", + "min_tx_fee": "5000000000000000", + "addr_prefix": "evmos", + "logo": "/logos/evmos.png", + "keplr_features": ["ibc-transfer", "ibc-go", "eth-address-gen", "eth-key-sign"], + "assets": [{ + "base": "aevmos", + "symbol": "evmos", + "exponent": "18", + "coingecko_id": "evmos", + "logo": "/logos/evmos.jpeg" + }] +} diff --git a/chains/mainnet/fetchai.json b/chains/mainnet/fetchai.json new file mode 100644 index 00000000..12c4c9f8 --- /dev/null +++ b/chains/mainnet/fetchai.json @@ -0,0 +1,18 @@ +{ + "chain_name": "fetchhub", + "api": ["https://rest-fetchhub.fetch.ai"], + "rpc": ["https://rpc-fetchhub.fetch.ai:443", "https://rpc-fetchhub.fetch.ai:443"], + "snapshot_provider": "", + "sdk_version": "0.45.6", + "coin_type": "118", + "min_tx_fee": "3000000000000000", + "addr_prefix": "fetch", + "logo": "/logos/fetchhub.png", + "assets": [{ + "base": "afet", + "symbol": "fet", + "exponent": "18", + "coingecko_id": "fetch-ai", + "logo": "/logos/fetchhub.png" + }] +} diff --git a/chains/mainnet/genesisl1.json b/chains/mainnet/genesisl1.json new file mode 100644 index 00000000..40119b17 --- /dev/null +++ b/chains/mainnet/genesisl1.json @@ -0,0 +1,18 @@ +{ + "chain_name": "genesisL1", + "api": "https://api.genesisl1.org", + "rpc": ["https://26657.genesisl1.org:443", "https://26657.genesisl1.org:443"], + "snapshot_provider": "", + "sdk_version": "0.45.4", + "coin_type": "118", + "min_tx_fee": "3000000000000000", + "addr_prefix": "genesis", + "logo": "/logos/genesisl1.png", + "assets": [{ + "base": "el1", + "symbol": "L1", + "exponent": "18", + "coingecko_id": "", + "logo": "/logos/genesisl1.png" + }] +} diff --git a/chains/mainnet/gravitybridge.json b/chains/mainnet/gravitybridge.json new file mode 100644 index 00000000..bad8b842 --- /dev/null +++ b/chains/mainnet/gravitybridge.json @@ -0,0 +1,19 @@ +{ + "chain_name": "gravity-bridge", + "api": ["https://gravitychain.io:1317","https://api.gravity-bridge.nodestake.top"], + "rpc": ["https://gravitychain.io:26657", "http://gravity-bridge-1-08.nodes.amhost.net:26657","https://rpc.gravity-bridge.nodestake.top"], + "snapshot_provider": "", + "sdk_version": "0.44.5", + "coin_type": "60", + "min_tx_fee": "5000", + "addr_prefix": "gravity", + "excludes": "", + "logo": "/logos/gravity-bridge.png", + "assets": [{ + "base": "ugraviton", + "symbol": "GRAVITON", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/gravity-bridge.png" + }] +} diff --git a/chains/mainnet/injective.json b/chains/mainnet/injective.json new file mode 100644 index 00000000..f5350b49 --- /dev/null +++ b/chains/mainnet/injective.json @@ -0,0 +1,25 @@ +{ + "chain_name": "injective", + "api": ["https://lcd.injective.network", "https://injective-api.polkachu.com"], + "rpc": ["https://tm.injective.network", "https://injective-rpc.polkachu.com"], + "snapshot_provider": "", + "sdk_version": "v0.45.5", + "coin_type": "60", + "min_tx_fee": "5000", + "addr_prefix": "inj", + "excludes": "", + "logo": "/logos/injective.jpg", + "keplr_features": ["ibc-transfer", "ibc-go", "eth-address-gen", "eth-key-sign"], + "keplr_price_step": { + "low": 100000000000, + "average": 200000000000, + "high": 30000000000000 + }, + "assets": [{ + "base": "inj", + "symbol": "INJ", + "exponent": "18", + "coingecko_id": "injective-protocol", + "logo": "/logos/injective.jpg" + }] +} \ No newline at end of file diff --git a/chains/mainnet/iris.json b/chains/mainnet/iris.json new file mode 100644 index 00000000..de00b193 --- /dev/null +++ b/chains/mainnet/iris.json @@ -0,0 +1,20 @@ +{ + "chain_name": "iris", + "alias": "iris-network", + "api": ["https://api.irishub-1.irisnet.org"], + "rpc": ["http://34.82.96.8:26657","http://34.77.68.145:26657"], + "snapshot_provider": "fcc1d9bc43163b20ce5163cf41a302b33f25375f@34.82.96.8:26656", + "sdk_version": "0.46.1", + "coin_type": "118", + "min_tx_fee": "40000", + "addr_prefix": "iaa", + "excludes": "mint", + "logo": "/logos/iris-network.svg", + "assets": [{ + "base": "uiris", + "symbol": "IRIS", + "exponent": "6", + "coingecko_id": "iris-network", + "logo": "/logos/iris-network.svg" + }] +} \ No newline at end of file diff --git a/chains/mainnet/ixo.json b/chains/mainnet/ixo.json new file mode 100644 index 00000000..ae41429d --- /dev/null +++ b/chains/mainnet/ixo.json @@ -0,0 +1,18 @@ +{ + "chain_name": "ixo", + "api": ["https://impacthub.ixo.world/rest", "https://proxies.sifchain.finance/api/impacthub-3/rest"], + "rpc": [], + "snapshot_provider": "", + "sdk_version": "0.45.4", + "coin_type": "118", + "min_tx_fee": "3000", + "addr_prefix": "ixo", + "logo": "/logos/ixo.svg", + "assets": [{ + "base": "uixo", + "symbol": "IXO", + "exponent": "6", + "coingecko_id": "ixo", + "logo": "/logos/ixo.svg" + }] +} \ No newline at end of file diff --git a/chains/mainnet/jackal.json b/chains/mainnet/jackal.json new file mode 100644 index 00000000..7a964ad1 --- /dev/null +++ b/chains/mainnet/jackal.json @@ -0,0 +1,28 @@ +{ + "chain_name": "jackal", + "coingecko": "jackal-protocol", + "api": [ + "https://api.jackalprotocol.com", + "https://jackal-api.polkachu.com", + "https://api.jackal.nodestake.top" + ], + "rpc": [ + "https://rpc.jackalprotocol.com", + "https://jackal-rpc.polkachu.com", + "https://rpc.jackal.nodestake.top" + ], + "snapshot_provider": "", + "coin_type": "118", + "sdk_version": "0.45.11", + "addr_prefix": "jkl", + "logo": "/logos/jackal.png", + "assets": [ + { + "base": "ujkl", + "symbol": "JKL", + "exponent": "6", + "coingecko_id": "jackal-protocol", + "logo": "/logos/jackal.png" + } + ] +} diff --git a/chains/mainnet/juno.json b/chains/mainnet/juno.json new file mode 100644 index 00000000..fa984b54 --- /dev/null +++ b/chains/mainnet/juno.json @@ -0,0 +1,19 @@ +{ + "chain_name": "juno", + "coingecko": "juno-network", + "api": ["https://api-juno-ia.cosmosia.notional.ventures", "https://juno-api.polkachu.com", "https://lcd-juno.itastakers.com"], + "rpc": ["https://rpc-juno-ia.cosmosia.notional.ventures:443", "https://juno-rpc.polkachu.com:443", "https://rpc-juno.itastakers.com:443", "https://rpc-juno.itastakers.com:443"], + "snapshot_provider": "", + "sdk_version": "0.45.8", + "coin_type": "118", + "min_tx_fee": "3000", + "addr_prefix": "juno", + "logo": "/logos/juno.png", + "assets": [{ + "base": "ujuno", + "symbol": "JUNO", + "exponent": "6", + "coingecko_id": "juno-network", + "logo": "/logos/juno.png" + }] +} \ No newline at end of file diff --git a/chains/mainnet/kava.json b/chains/mainnet/kava.json new file mode 100644 index 00000000..86226752 --- /dev/null +++ b/chains/mainnet/kava.json @@ -0,0 +1,19 @@ +{ + "chain_name": "kava", + "coingecko": "kava", + "api": "https://api.data.kava.io", + "rpc": ["https://rpc.kava.io:443", "https://rpc.kava.io:443"], + "snapshot_provider": "", + "sdk_version": "0.45.4", + "coin_type": "118", + "min_tx_fee": "5000", + "addr_prefix": "kava", + "logo": "/logos/kava.png", + "assets": [{ + "base": "ukava", + "symbol": "KAVA", + "exponent": "6", + "coingecko_id": "kava", + "logo": "/logos/kava.png" + }] +} \ No newline at end of file diff --git a/chains/mainnet/kichain.json b/chains/mainnet/kichain.json new file mode 100644 index 00000000..4fbbae26 --- /dev/null +++ b/chains/mainnet/kichain.json @@ -0,0 +1,18 @@ +{ + "chain_name": "kichain", + "api": ["https://api-mainnet.blockchain.ki", "https://ki.api.ping.pub","https://api.ki.nodestake.top"], + "rpc": ["https://rpc-mainnet.blockchain.ki:443", "https://rpc-mainnet.blockchain.ki:443","https://rpc.ki.nodestake.top"], + "snapshot_provider": "", + "sdk_version": "0.45.6", + "coin_type": "118", + "min_tx_fee": "8000", + "addr_prefix": "ki", + "logo": "/logos/kichain.png", + "assets": [{ + "base": "uxki", + "symbol": "XKI", + "exponent": "6", + "coingecko_id": "ki", + "logo": "/logos/kichain.png" + }] +} diff --git a/chains/mainnet/kujira.json b/chains/mainnet/kujira.json new file mode 100644 index 00000000..53cd9d33 --- /dev/null +++ b/chains/mainnet/kujira.json @@ -0,0 +1,19 @@ +{ + "chain_name": "kujira", + "coingecko": "", + "api": ["https://lcd.kaiyo.kujira.setten.io", "https://kujira-api.polkachu.com", "https://api-kujira.nodeist.net", "https://kujira.api.kjnodes.com"], + "rpc": ["https://rpc.kaiyo.kujira.setten.io", "https://kujira-api.polkachu.com:443", "https://rpc-stride.nodeist.net", "https://kujira.rpc.kjnodes.com:443"], + "snapshot_provider": "", + "sdk_version": "0.45.4", + "coin_type": "118", + "min_tx_fee": "1250", + "addr_prefix": "kujira", + "logo": "/logos/kujira.png", + "assets": [{ + "base": "ukuji", + "symbol": "KUJI", + "exponent": "6", + "coingecko_id": "kujira", + "logo": "/logos/kujira.png" + }] +} diff --git a/chains/mainnet/lambda.json b/chains/mainnet/lambda.json new file mode 100644 index 00000000..0b7aef43 --- /dev/null +++ b/chains/mainnet/lambda.json @@ -0,0 +1,20 @@ +{ + "chain_name": "lambda", + "api": ["https://rest.lambda.im", "https://api.lambda.nodestake.top", "https://lambda-api.jambulmerah.dev"], + "rpc": ["https://rpc.lambda.im", "https://rpc.lambda.nodestake.top", "https://lambda-rpc.jambulmerah.dev"], + "sdk_version": "0.45.6", + "coin_type": "60", + "min_tx_fee": "5000", + "addr_prefix": "lamb", + "logo": "/logos/lambda.png", + "keplr_features": ["ibc-transfer", "ibc-go", "eth-address-gen", "eth-key-sign"], + "assets": [ + { + "base": "ulamb", + "symbol": "LAMB", + "exponent": "18", + "coingecko_id": "lambda", + "logo": "/logos/lambda.png" + } + ] + } diff --git a/chains/mainnet/likecoin.json b/chains/mainnet/likecoin.json new file mode 100644 index 00000000..f8f11f7c --- /dev/null +++ b/chains/mainnet/likecoin.json @@ -0,0 +1,19 @@ +{ + "chain_name": "likecoin", + "coingecko": "likecoin", + "api": "https://mainnet-node.like.co", + "rpc": ["https://mainnet-node.like.co:443/rpc/", "https://mainnet-node.like.co:443/rpc/"], + "snapshot_provider": "", + "sdk_version": "0.45.6", + "coin_type": "118", + "min_tx_fee": "3000", + "addr_prefix": "like", + "logo": "/logos/likecoin.png", + "assets": [{ + "base": "nanolike", + "symbol": "LIKE", + "exponent": "9", + "coingecko_id": "likecoin", + "logo": "/logos/likecoin.png" + }] +} diff --git a/chains/mainnet/lum.json b/chains/mainnet/lum.json new file mode 100644 index 00000000..0bdfd3f9 --- /dev/null +++ b/chains/mainnet/lum.json @@ -0,0 +1,19 @@ +{ + "chain_name": "lum-network", + "coingecko": "lum-network", + "api": ["https://api-lum.degeno.de", "https://node0.mainnet.lum.network/rest"], + "rpc": ["https://rpc-lum.degeno.de:443", "https://node0.mainnet.lum.network:443/rpc"], + "snapshot_provider": "", + "sdk_version": "0.44.5", + "coin_type": "880", + "min_tx_fee": "5000", + "addr_prefix": "lum", + "logo": "/logos/lum-network.png", + "assets": [{ + "base": "ulum", + "symbol": "LUM", + "exponent": "6", + "coingecko_id": "lum-network", + "logo": "/logos/lum-network.png" + }] +} diff --git a/chains/mainnet/lumenx.json b/chains/mainnet/lumenx.json new file mode 100644 index 00000000..137a7e43 --- /dev/null +++ b/chains/mainnet/lumenx.json @@ -0,0 +1,19 @@ +{ + "chain_name": "lumenx", + "coingecko": "", + "api": ["https://api.lumenx.chaintools.tech:443","https://api-lumenx.cryptonet.pl:443"], + "rpc": ["https://rpc.lumenx.chaintools.tech:443","https://rpc-lumenx.cryptonet.pl:443"], + "snapshot_provider": "", + "sdk_version": "0.45.5", + "coin_type": "118", + "min_tx_fee": "5000", + "addr_prefix": "lumen", + "logo": "/logos/lumen.png", + "assets": [{ + "base": "ulumen", + "symbol": "LUMEN", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/lumen.png" + }] +} diff --git a/chains/mainnet/mars.json b/chains/mainnet/mars.json new file mode 100644 index 00000000..db711f81 --- /dev/null +++ b/chains/mainnet/mars.json @@ -0,0 +1,29 @@ +{ + "chain_name": "mars", + "coingecko": "mars-protocol-a7fcbcfb-fd61-4017-92f0-7ee9f9cc6da3", + "api": [ + "https://rest.marsprotocol.io", + "https://mars-api.polkachu.com", + "https://rest.cosmos.directory/mars" + ], + "rpc": [ + "https://rpc.marsprotocol.io", + "https://mars-rpc.polkachu.com", + "https://rpc.marsprotocol.io", + "https://rpc.cosmos.directory/mars" + ], + "snapshot_provider": "", + "coin_type": "118", + "sdk_version": "0.46.8", + "addr_prefix": "mars", + "logo": "/logos/mars.png", + "assets": [ + { + "base": "umars", + "symbol": "MARS", + "exponent": "6", + "coingecko_id": "mars-protocol-a7fcbcfb-fd61-4017-92f0-7ee9f9cc6da3", + "logo": "/logos/mars.png" + } + ] +} diff --git a/chains/mainnet/meme.json b/chains/mainnet/meme.json new file mode 100644 index 00000000..2c1447b3 --- /dev/null +++ b/chains/mainnet/meme.json @@ -0,0 +1,21 @@ +{ + "chain_name": "meme", + "coingecko": "meme-network", + "api": [ "https://api-meme-1.meme.sx", "https://meme-api.polkachu.com:443", "https://api.meme.pupmos.network:443", "https://meme-api.kleomedes.network:443", "https://meme.api.m.anode.team:443" ], + "rpc": [ "https://rpc-meme-1.meme.sx:443", "https://meme-rpc.polkachu.com:443", "https://rpc-meme.pupmos.network:443", "https://meme-rpc.kleomedes.network:443", "http://meme.statesync.nodersteam.com:26657", "https://meme.rpc.m.anode.team:443" ], + "snapshot_provider": "", + "sdk_version": "0.45.9", + "coin_type": "118", + "min_tx_fee": "8000", + "addr_prefix": "meme", + "logo": "/logos/meme.png", + "assets": [ + { + "base": "umeme", + "symbol": "MEME", + "exponent": "6", + "coingecko_id": "meme-network", + "logo": "/logos/meme.png" + } + ] +} diff --git a/chains/mainnet/microtick.json b/chains/mainnet/microtick.json new file mode 100644 index 00000000..78b8767f --- /dev/null +++ b/chains/mainnet/microtick.json @@ -0,0 +1,18 @@ +{ + "chain_name": "microtick", + "api": "https://lcd.microtick.zone", + "rpc": [], + "snapshot_provider": "", + "sdk_version": "0.42.9", + "coin_type": "118", + "min_tx_fee": "5000", + "addr_prefix": "micro", + "logo": "/logos/microtick.png", + "assets": [{ + "base": "utick", + "symbol": "TICK", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/microtick.png" + }] +} diff --git a/chains/mainnet/migaloo.json b/chains/mainnet/migaloo.json new file mode 100644 index 00000000..dd52c81d --- /dev/null +++ b/chains/mainnet/migaloo.json @@ -0,0 +1,21 @@ +{ + "chain_name": "Migaloo", + "coingecko": "", + "api": ["https://api.migaloo.silknodes.io"], + "rpc": ["https://rpc.migaloo.silknodes.io"], + "snapshot_provider": "", + "coin_type": 118, + "sdk_version": "0.45.9", + "addr_prefix": "migaloo", + "logo": "/logos/migaloo.png", + "assets": [ + { + "base": "uwhale", + "symbol": "WHALE", + "exponent": 6, + "coingecko_id": "", + "logo": "/logos/whitewhale.jpg" + } + ] + } + diff --git a/chains/mainnet/nym.json b/chains/mainnet/nym.json new file mode 100644 index 00000000..54f5f5c6 --- /dev/null +++ b/chains/mainnet/nym.json @@ -0,0 +1,24 @@ +{ + "chain_name": "nyx", + "api": ["https://api.nyx.nodes.guru"], + "rpc": ["https://rpc.nyx.nodes.guru"], + "snapshot_provider": "", + "sdk_version": "0.45.1", + "coin_type": "118", + "min_tx_fee": "8000", + "assets": [{ + "base": "unym", + "symbol": "NYM", + "exponent": "6", + "coingecko_id": "nym", + "logo": "/logos/nym.jpeg" + },{ + "base": "unyx", + "symbol": "NYX", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/nym.jpeg" + }], + "addr_prefix": "n", + "logo": "/logos/nym.jpeg" +} diff --git a/chains/mainnet/odin.json b/chains/mainnet/odin.json new file mode 100644 index 00000000..086afaf0 --- /dev/null +++ b/chains/mainnet/odin.json @@ -0,0 +1,30 @@ +{ + "chain_name": "odin", + "coingecko": "odin-protocol", + "api": "https://node.odin-freya-website.odinprotocol.io/mainnet/a/api", + "rpc": ["http://34.79.179.216:26657","http://34.140.252.7:26657","http://35.241.221.154:26657","http://35.241.238.207:26657"], + "addr_prefix": "odin", + "coin_type": "118", + "min_tx_fee": "2500", + "logo": "/logos/odin.png", + "sdk_version": "0.45.6", + "assets": [{ + "base": "loki", + "symbol": "ODIN", + "exponent": "6", + "coingecko_id": "odin-protocol", + "logo": "/logos/odin.png" + },{ + "base": "mGeo", + "symbol": "geo", + "exponent": "6", + "coingecko_id": "geodb", + "logo": "/logos/odin.png" + },{ + "base": "mO9W", + "symbol": "O9W", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/odin.png" + }] +} diff --git a/chains/mainnet/okexchain.json.disabled b/chains/mainnet/okexchain.json.disabled new file mode 100644 index 00000000..b4a7179a --- /dev/null +++ b/chains/mainnet/okexchain.json.disabled @@ -0,0 +1,19 @@ +{ + "chain_name": "okexchain", + "api": "https://exchainrpc.okex.org/okexchain/v1", + "rpc": [], + "snapshot_provider": "", + "sdk_version": "0.39.2", + "coin_type": "118", + "min_tx_fee": "800", + "addr_prefix": "ex", + "logo": "/logos/okexchain.svg", + "unload_module": ["minting", "slashing"], + "assets": [{ + "base": "okt", + "symbol": "okt", + "exponent": "0", + "coingecko_id": "okexchain", + "logo": "/logos/okexchain.svg" + }] +} \ No newline at end of file diff --git a/chains/mainnet/omniflix.json b/chains/mainnet/omniflix.json new file mode 100644 index 00000000..0b841b7f --- /dev/null +++ b/chains/mainnet/omniflix.json @@ -0,0 +1,19 @@ +{ + "chain_name": "omniflix", + "coingecko": "", + "api": ["https://api.omniflix.nodestake.top","https://omniflixhub-api.skynetvalidators.com"], + "rpc": ["https://rpc.omniflix.nodestake.top"], + "snapshot_provider": "", + "sdk_version": "0.46.1", + "coin_type": "118", + "min_tx_fee": "3000", + "addr_prefix": "omniflix", + "logo": "/logos/omniflix.png", + "assets": [{ + "base": "uflix", + "symbol": "FLIX", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/omniflix.png" + }] +} diff --git a/chains/mainnet/osmosis.json b/chains/mainnet/osmosis.json new file mode 100644 index 00000000..f46d467f --- /dev/null +++ b/chains/mainnet/osmosis.json @@ -0,0 +1,31 @@ +{ + "chain_name": "osmosis", + "coingecko": "osmosis", + "api": ["https://api-osmosis-ia.cosmosia.notional.ventures", "https://osmosis-api.polkachu.com", "https://osmo.api.ping.pub", "https://lcd-osmosis.blockapsis.com"], + "rpc": ["https://rpc-osmosis-ia.cosmosia.notional.ventures:443", "https://osmosis-rpc.polkachu.com:443", "https://osmosis.validator.network:443", "https://rpc-osmosis.blockapsis.com:443"], + "snapshot_provider": "", + "sdk_version": "0.46.1", + "coin_type": "118", + "min_tx_fee": "800", + "addr_prefix": "osmo", + "logo": "/logos/osmosis.jpg", + "assets": [{ + "base": "uosmo", + "symbol": "OSMO", + "exponent": "6", + "coingecko_id": "osmosis", + "logo": "/logos/osmosis.jpg" + },{ + "base": "uion", + "symbol": "ION", + "exponent": "6", + "coingecko_id": "ion", + "logo": "/logos/osmosis.jpg" + },{ + "base": "usomm", + "symbol": "SOMM", + "exponent": "6", + "coingecko_id": "somm", + "logo": "" + }] +} diff --git a/chains/mainnet/passage.json b/chains/mainnet/passage.json new file mode 100644 index 00000000..ac616f58 --- /dev/null +++ b/chains/mainnet/passage.json @@ -0,0 +1,18 @@ +{ + "chain_name": "passage", + "api": ["https://passage-api.polkachu.com","https://api.passage.nodestake.top"], + "rpc": ["https://passage-rpc.polkachu.com:443","https://rpc.passage.nodestake.top"], + "snapshot_provider": "", + "sdk_version": "0.45.5", + "coin_type": "118", + "min_tx_fee": "800", + "addr_prefix": "pasg", + "logo": "/logos/passage.png", + "assets": [ + { + "base": "upasg", + "symbol": "PASG", + "exponent": "6" + } + ] +} diff --git a/chains/mainnet/persistence.json b/chains/mainnet/persistence.json new file mode 100644 index 00000000..f5654725 --- /dev/null +++ b/chains/mainnet/persistence.json @@ -0,0 +1,19 @@ +{ + "chain_name": "persistence", + "coingecko": "persistence", + "api": "https://rest.core.persistence.one", + "rpc": ["https://rpc.core.persistence.one:443", "https://rpc.core.persistence.one:443"], + "snapshot_provider": "", + "sdk_version": "0.45.6", + "coin_type": "750", + "min_tx_fee": "3000", + "addr_prefix": "persistence", + "logo": "/logos/persistence.png", + "assets": [{ + "base": "uxprt", + "symbol": "XPRT", + "exponent": "6", + "coingecko_id": "persistence", + "logo": "/logos/persistence.png" + }] +} diff --git a/chains/mainnet/planq.json b/chains/mainnet/planq.json new file mode 100644 index 00000000..5720d09f --- /dev/null +++ b/chains/mainnet/planq.json @@ -0,0 +1,19 @@ +{ + "chain_name": "planq", + "api": ["https://planq-api.polkachu.com", "https://rest.planq.network", "https://api-planq.comunitynode.my.id", "https://planq-api.enodex.lol", "https://api.planq.nodestake.top"], + "rpc": ["https://planq-rpc.polkachu.com", "https://rpc.planq.network", "https://rpc-planq.comunitynode.my.id", "https://planq-rpc.enodex.lol", "https://rpc.planq.nodestake.top"], + "snapshot_provider": "", + "sdk_version": "0.46.3", + "coin_type": "60", + "min_tx_fee": "5000000000000000", + "addr_prefix": "plq", + "logo": "/logos/planq.png", + "keplr_features": ["ibc-transfer", "ibc-go", "eth-address-gen", "eth-key-sign"], + "assets": [{ + "base": "aplanq", + "symbol": "plq", + "exponent": "18", + "coingecko_id": "planq", + "logo": "/logos/planq.png" + }] +} diff --git a/chains/mainnet/point.json b/chains/mainnet/point.json new file mode 100644 index 00000000..76205b42 --- /dev/null +++ b/chains/mainnet/point.json @@ -0,0 +1,18 @@ +{ + "chain_name": "Point", + "api": ["https://rpc-mainnet-1.point.space:1317","https://api.point.nodestake.top"], + "rpc": ["https://rpc-mainnet-1.point.space:26657","https://rpc.point.nodestake.top"], + "sdk_version": "0.45.7", + "coin_type": 60, + "min_tx_fee": "5000000000000000", + "addr_prefix": "point", + "logo": "/logos/point-logo.png", + "assets": [{ + "base": "apoint", + "symbol": "POINT", + "exponent": "18", + "coingecko_id": "point-network", + "logo": "/logos/point-logo.png" + }], + "keplr_features": ["ibc-transfer", "ibc-go", "eth-address-gen", "eth-key-sign"] +} diff --git a/chains/mainnet/provenance.json b/chains/mainnet/provenance.json new file mode 100644 index 00000000..50d6fd2a --- /dev/null +++ b/chains/mainnet/provenance.json @@ -0,0 +1,19 @@ +{ + "chain_name": "provenance", + "coingecko": "", + "api": "https://api.provenance.io", + "rpc": ["https://rpc.provenance.io:443", "https://rpc.provenance.io:443"], + "snapshot_provider": "", + "sdk_version": "0.46.1", + "coin_type": "505", + "min_tx_fee": "800000000", + "addr_prefix": "pb", + "logo": "/logos/provenance.svg", + "assets": [{ + "base": "nhash", + "symbol": "HASH", + "exponent": "9", + "coingecko_id": "provenance-blockchain", + "logo": "/logos/provenance.svg" + }] +} diff --git a/chains/mainnet/quicksilver.json b/chains/mainnet/quicksilver.json new file mode 100644 index 00000000..59572b06 --- /dev/null +++ b/chains/mainnet/quicksilver.json @@ -0,0 +1,20 @@ +{ + "chain_name": "quicksilver", + "coingecko": "", + "api": ["https://quicksilver-api.polkachu.com", "https://api-quicksilver.nodeist.net"], + "rpc": ["https://quicksilver-rpc.polkachu.com", "https://rpc-quicksilver.nodeist.net"], + "sdk_version": "0.46.7", + "coin_type": "118", + "min_tx_fee": "8000", + "addr_prefix": "quick", + "logo": "/logos/quicksilver.png", + "assets": [ + { + "base": "uqck", + "symbol": "QCK", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/quicksilver.png" + } + ] +} diff --git a/chains/mainnet/rebus.json b/chains/mainnet/rebus.json new file mode 100644 index 00000000..7f55e439 --- /dev/null +++ b/chains/mainnet/rebus.json @@ -0,0 +1,20 @@ +{ + "chain_name": "rebus", + "api": ["https://api.mainnet.rebus.money:1317","https://api.rebus.nodestake.top"], + "rpc": ["https://api.mainnet.rebus.money:26657","https://rpc.rebus.nodestake.top"], + "snapshot_provider": "", + "sdk_version": "0.45.6", + "coin_type": "118", + "min_tx_fee": "5000", + "addr_prefix": "rebus", + "logo": "/logos/rebus.png", + "assets": [ + { + "base": "arebus", + "symbol": "REBUS", + "exponent": "18", + "coingecko_id": "rebus", + "logo": "/logos/rebus.png" + } + ] +} diff --git a/chains/mainnet/regen.json b/chains/mainnet/regen.json new file mode 100644 index 00000000..1e4548b8 --- /dev/null +++ b/chains/mainnet/regen.json @@ -0,0 +1,19 @@ +{ + "chain_name": "regen", + "coingecko": "regen", + "api": "https://regen.api.ping.pub", + "rpc": ["http://public-rpc.regen.vitwit.com:26657", "https://regen.stakesystems.io:2053"], + "snapshot_provider": "", + "sdk_version": "0.46.2", + "coin_type": "118", + "min_tx_fee": "3000", + "addr_prefix": "regen", + "logo": "/logos/regen.svg", + "assets": [{ + "base": "uregen", + "symbol": "REGEN", + "exponent": "6", + "coingecko_id": "regen", + "logo": "/logos/regen.svg" + }] +} \ No newline at end of file diff --git a/chains/mainnet/rizon.json b/chains/mainnet/rizon.json new file mode 100644 index 00000000..f88a0c82 --- /dev/null +++ b/chains/mainnet/rizon.json @@ -0,0 +1,17 @@ +{ + "chain_name": "rizon", + "api": ["https://api.rizon.chaintools.tech", "https://restapi.rizon.world"], + "rpc": ["http://seed-1.mainnet.rizon.world:26657"], + "sdk_version": "v0.45.6", + "coin_type": "118", + "min_tx_fee": "8000", + "assets": [{ + "base": "uatolo", + "symbol": "ATOLO", + "exponent": "6", + "coingecko_id": "rizon", + "logo": "/logos/rizon.svg" + }], + "addr_prefix": "rizon", + "logo": "/logos/rizon.svg" +} \ No newline at end of file diff --git a/chains/mainnet/secret.json b/chains/mainnet/secret.json new file mode 100644 index 00000000..fce16d84 --- /dev/null +++ b/chains/mainnet/secret.json @@ -0,0 +1,19 @@ +{ + "chain_name": "secret", + "coingecko": "secret", + "api": ["https://lcd.spartanapi.dev", "https://secretnetwork-lcd.stakely.io"], + "rpc": ["https://rpc.spartanapi.dev", "https://secretnetwork-rpc.stakely.io"], + "snapshot_provider": "", + "sdk_version": "0.45.4", + "coin_type": "529", + "min_tx_fee": "5000", + "addr_prefix": "secret", + "logo": "/logos/secret.png", + "assets": [{ + "base": "uscrt", + "symbol": "SCRT", + "exponent": "6", + "coingecko_id": "secret", + "logo": "/logos/secret.png" + }] +} \ No newline at end of file diff --git a/chains/mainnet/sentinel.json b/chains/mainnet/sentinel.json new file mode 100644 index 00000000..17aed681 --- /dev/null +++ b/chains/mainnet/sentinel.json @@ -0,0 +1,18 @@ +{ + "chain_name": "sentinel", + "api": ["https://api-sentinel-ia.cosmosia.notional.ventures", "https://lcd.sentinel.co"], + "rpc": ["https://api-sentinel-ia.cosmosia.notional.ventures:443", "https://rpc-sentinel.keplr.app:443", "https://rpc-sentinel.keplr.app:443"], + "snapshot_provider": "", + "sdk_version": "0.45.8", + "coin_type": "118", + "min_tx_fee": "8000", + "addr_prefix": "sent", + "logo": "/logos/sentinel.png", + "assets": [{ + "base": "udvpn", + "symbol": "DVPN", + "exponent": "6", + "coingecko_id": "sentinel", + "logo": "/logos/sentinel.png" + }] +} diff --git a/chains/mainnet/shentu.json b/chains/mainnet/shentu.json new file mode 100644 index 00000000..f12c35a2 --- /dev/null +++ b/chains/mainnet/shentu.json @@ -0,0 +1,20 @@ + +{ + "chain_name": "shentu", + "coingecko": "certik", + "api": ["https://certik-api.polkachu.com", "https://chainfull.noopsbycertik.com"], + "rpc": ["https://certik-rpc.polkachu.com:443"], + "snapshot_provider": "", + "sdk_version": "0.45.9", + "coin_type": "118", + "min_tx_fee": "8000", + "addr_prefix": "certik", + "logo": "/logos/shentu.jpg", + "assets": [{ + "base": "uctk", + "symbol": "CTK", + "exponent": "6", + "coingecko_id": "certik", + "logo": "/logos/shentu.jpg" + }] +} diff --git a/chains/mainnet/sifchain.json b/chains/mainnet/sifchain.json new file mode 100644 index 00000000..cfd440ff --- /dev/null +++ b/chains/mainnet/sifchain.json @@ -0,0 +1,18 @@ +{ + "chain_name": "sifchain", + "api": ["https://api-sifchain-ia.cosmosia.notional.ventures", "https://sifchain-api.polkachu.com", "https://api.sifchain.finance"], + "rpc": ["https://rpc-sifchain-ia.cosmosia.notional.ventures/", "https://sifchain-rpc.polkachu.com:443", "https://rpc.sifchain.finance:443", "https://rpc-archive.sifchain.finance:443"], + "snapshot_provider": "", + "sdk_version": "0.45.0", + "coin_type": "118", + "min_tx_fee": "8000", + "addr_prefix": "sif", + "logo": "/logos/sifchain.jpeg", + "assets": [{ + "base": "rowan", + "symbol": "ROWAN", + "exponent": "18", + "coingecko_id": "sifchain", + "logo": "/logos/sifchain.jpeg" + }] +} \ No newline at end of file diff --git a/chains/mainnet/sommelier.json.disabled b/chains/mainnet/sommelier.json.disabled new file mode 100644 index 00000000..0ff46321 --- /dev/null +++ b/chains/mainnet/sommelier.json.disabled @@ -0,0 +1,22 @@ +{ + "chain_name": "sommelier", + "api": ["https://lcd-sommelier.keplr.app"], + "sdk_version": "0.44.5", + "coin_type": "118", + "min_tx_fee": "8000", + "addr_prefix": "somm", + "logo": "https://dl.airtable.com/.attachments/0f37f3aa77836b2db0ed217560264ff1/6f51315b/St07WEsb_400x400.png", + "assets": [{ + "base": "usomm", + "symbol": "somm", + "exponent": "6", + "coingecko_id": "", + "logo": "https://dl.airtable.com/.attachments/0f37f3aa77836b2db0ed217560264ff1/6f51315b/St07WEsb_400x400.png" + },{ + "base": "msomm", + "symbol": "somm", + "exponent": "3", + "coingecko_id": "", + "logo": "https://dl.airtable.com/.attachments/0f37f3aa77836b2db0ed217560264ff1/6f51315b/St07WEsb_400x400.png" + }] +} \ No newline at end of file diff --git a/chains/mainnet/stafihub.json b/chains/mainnet/stafihub.json new file mode 100644 index 00000000..b685b5c6 --- /dev/null +++ b/chains/mainnet/stafihub.json @@ -0,0 +1,37 @@ +{ + "chain_name": "stafihub", + "coingecko": "stafi", + "api": ["https://public-rest-rpc1.stafihub.io","https://api.stafihub.nodestake.top"], + "rpc": ["https://public-rpc1.stafihub.io:443","https://rpc.stafihub.nodestake.top"], + "snapshot_provider": "", + "sdk_version": "0.45.7", + "coin_type": "118", + "min_tx_fee": "20000", + "addr_prefix": "stafi", + "logo": "/logos/stafihub.png", + "assets": [{ + "base": "ufis", + "symbol": "FIS", + "exponent": "6", + "coingecko_id": "stafi", + "logo": "/logos/stafihub.png" + },{ + "base": "uratom", + "symbol": "rATOM", + "exponent": "6", + "coingecko_id": "stafi-ratom", + "logo": "/logos/stafihub.png" + },{ + "base": "uriris", + "symbol": "rIRIS", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/stafihub.png" + },{ + "base": "urhuahua", + "symbol": "rHUAHUA", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/stafihub.png" + }] +} diff --git a/chains/mainnet/stargaze.json b/chains/mainnet/stargaze.json new file mode 100644 index 00000000..879822bc --- /dev/null +++ b/chains/mainnet/stargaze.json @@ -0,0 +1,18 @@ +{ + "chain_name": "stargaze", + "api": ["https://stargaze-api.polkachu.com/","https://api-stargaze-ia.cosmosia.notional.ventures/", "https://rest.stargaze-apis.com", "https://rest.stargaze.publicawesome.dev"], + "rpc": ["https://stargaze-rpc.polkachu.com/", "https://rpc-stargaze-ia.cosmosia.notional.ventures/","https://rpc.stargaze-apis.com:443", "https://rpc.stargaze.ezstaking.io:443"], + "snapshot_provider": "", + "sdk_version": "0.45.6", + "coin_type": "118", + "min_tx_fee": "800", + "addr_prefix": "stars", + "logo": "/logos/stargaze.png", + "assets": [{ + "base": "ustars", + "symbol": "STARS", + "exponent": "6", + "coingecko_id": "stargaze", + "logo": "/logos/stargaze.png" + }] +} \ No newline at end of file diff --git a/chains/mainnet/starname.json b/chains/mainnet/starname.json new file mode 100644 index 00000000..0119de32 --- /dev/null +++ b/chains/mainnet/starname.json @@ -0,0 +1,18 @@ +{ + "chain_name": "starname", + "api": "https://api.iov-mainnet-ibc.iov.one", + "rpc": ["https://rpc-iov.keplr.app:443", "https://rpc-iov.keplr.app:443"], + "snapshot_provider": "", + "sdk_version": "0.44.5", + "coin_type": "234", + "min_tx_fee": "8000", + "addr_prefix": "star", + "logo": "/logos/starname.jpg", + "assets": [{ + "base": "uiov", + "symbol": "IOV", + "exponent": "6", + "coingecko_id": "starname", + "logo": "/logos/starname.jpg" + }] +} \ No newline at end of file diff --git a/chains/mainnet/stride.json b/chains/mainnet/stride.json new file mode 100644 index 00000000..4f7005e0 --- /dev/null +++ b/chains/mainnet/stride.json @@ -0,0 +1,18 @@ +{ + "chain_name": "stride", + "api": ["https://stride-api.polkachu.com", "https://api.stride.nodestake.top", "https://api-stride.nodeist.net", "https://stride.api.kjnodes.com"], + "rpc": ["https://stride-rpc.polkachu.com:443", "https://rpc.stride.nodestake.top", "https://rpc-stride.nodeist.net", "https://stride.rpc.kjnodes.com:443"], + "snapshot_provider": "", + "sdk_version": "0.45.5", + "coin_type": "118", + "min_tx_fee": "800", + "addr_prefix": "stride", + "logo": "/logos/stride.png", + "assets": [{ + "base": "ustrd", + "symbol": "STRD", + "exponent": "6", + "coingecko_id": "stride", + "logo": "/logos/stride.png" + }] +} diff --git a/chains/mainnet/teritori.json b/chains/mainnet/teritori.json new file mode 100644 index 00000000..ebb12292 --- /dev/null +++ b/chains/mainnet/teritori.json @@ -0,0 +1,20 @@ +{ + "chain_name": "teritori", + "api": ["https://rest.mainnet.teritori.com","https://api.teritori.nodestake.top"], + "rpc": ["https://rpc.mainnet.teritori.com","https://rpc.teritori.nodestake.top"], + "snapshot_provider": "", + "sdk_version": "0.45.4", + "coin_type": "118", + "min_tx_fee": "5000", + "addr_prefix": "tori", + "logo": "/logos/teritori.svg", + "assets": [ + { + "base": "utori", + "symbol": "TORI", + "exponent": "6", + "coingecko_id": "teritori", + "logo": "/logos/teritori.svg" + } + ] +} diff --git a/chains/mainnet/terra.json b/chains/mainnet/terra.json new file mode 100644 index 00000000..d9882914 --- /dev/null +++ b/chains/mainnet/terra.json @@ -0,0 +1,139 @@ +{ + "chain_name": "terra-luna", + "coingecko": "terra-luna", + "api": "https://fcd.terra.dev", + "rpc": ["https://terra-rpc.easy2stake.com:443", "http://public-node.terra.dev:26657"], + "snapshot_provider": "", + "sdk_version": "0.44.2", + "coin_type": "330", + "min_tx_fee": "5000", + "addr_prefix": "terra", + "logo": "/logos/terra-luna.jpg", + "assets": [{ + "base": "uluna", + "symbol": "LUNC", + "exponent": "6", + "coingecko_id": "terra-luna", + "logo": "/logos/terra-luna.jpg" + },{ + "base": "uusd", + "symbol": "USTc", + "exponent": "6", + "coingecko_id": "terrausd", + "logo": "/logos/terra-luna-ust.png" + },{ + "base": "ukrw", + "symbol": "KRT", + "exponent": "6", + "coingecko_id": "terrakrw", + "logo": "/logos/terra-luna-krt.png" + },{ + "base": "cw20:terra183cvzy6knvva6mpvzcq86uyfxw0nd4925m0d0m", + "symbol": "WHALE", + "exponent": "6", + "coingecko_id": "white-whale", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "uaud", + "symbol": "AUD", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "ucad", + "symbol": "CAD", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "uchf", + "symbol": "CHF", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "ucny", + "symbol": "CNY", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "udkk", + "symbol": "DKK", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "ueur", + "symbol": "EUR", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "ugbp", + "symbol": "GBP", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "uhkd", + "symbol": "HKD", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "uidr", + "symbol": "IDR", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "uinr", + "symbol": "INR", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "ujpy", + "symbol": "JPY", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "umnt", + "symbol": "MNT", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "uphp", + "symbol": "PHP", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "usdr", + "symbol": "SDR", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "usek", + "symbol": "SEK", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "usgd", + "symbol": "SGD", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "uthb", + "symbol": "THB", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + }] +} \ No newline at end of file diff --git a/chains/mainnet/terra2.json b/chains/mainnet/terra2.json new file mode 100644 index 00000000..d33e8a24 --- /dev/null +++ b/chains/mainnet/terra2.json @@ -0,0 +1,138 @@ +{ + "chain_name": "terra2", + "api": ["https://phoenix-lcd.terra.dev", "https://terra-api.polkachu.com/"], + "rpc": [], + "snapshot_provider": "", + "sdk_version": "0.44.2", + "coin_type": "330", + "min_tx_fee": "5000", + "addr_prefix": "terra", + "logo": "/logos/terra-luna.jpg", + "assets": [{ + "base": "uluna", + "symbol": "LUNA", + "exponent": "6", + "coingecko_id": "terra-luna-2", + "logo": "/logos/terra-luna.jpg" + },{ + "base": "uusd", + "symbol": "UST", + "exponent": "6", + "coingecko_id": "terrausd", + "logo": "/logos/terra-luna-ust.png" + },{ + "base": "ukrw", + "symbol": "KRT", + "exponent": "6", + "coingecko_id": "terrakrw", + "logo": "/logos/terra-luna-krt.png" + },{ + "base": "cw20:terra183cvzy6knvva6mpvzcq86uyfxw0nd4925m0d0m", + "symbol": "WHALE", + "exponent": "6", + "coingecko_id": "white-whale", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "uaud", + "symbol": "AUD", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "ucad", + "symbol": "CAD", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "uchf", + "symbol": "CHF", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "ucny", + "symbol": "CNY", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "udkk", + "symbol": "DKK", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "ueur", + "symbol": "EUR", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "ugbp", + "symbol": "GBP", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "uhkd", + "symbol": "HKD", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "uidr", + "symbol": "IDR", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "uinr", + "symbol": "INR", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "ujpy", + "symbol": "JPY", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "umnt", + "symbol": "MNT", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "uphp", + "symbol": "PHP", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "usdr", + "symbol": "SDR", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "usek", + "symbol": "SEK", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "usgd", + "symbol": "SGD", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + },{ + "base": "uthb", + "symbol": "THB", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/terra-luna-tokenlogo.png" + }] +} \ No newline at end of file diff --git a/chains/mainnet/umee.json b/chains/mainnet/umee.json new file mode 100644 index 00000000..38fbfa24 --- /dev/null +++ b/chains/mainnet/umee.json @@ -0,0 +1,18 @@ +{ + "chain_name": "umee", + "api": ["https://api.barnacle.mainnet.network.umee.cc:443"], + "rpc": ["https://rpc.barnacle.mainnet.network.umee.cc:443"], + "snapshot_provider": "", + "sdk_version": "0.46.2", + "coin_type": "118", + "min_tx_fee": "8000", + "addr_prefix": "umee", + "logo": "/logos/umee.png", + "assets": [{ + "base": "uumee", + "symbol": "UMEE", + "exponent": "6", + "coingecko_id": "umee", + "logo": "/logos/umee.png" + }] + } diff --git a/chains/mainnet/unification.json b/chains/mainnet/unification.json new file mode 100644 index 00000000..854f1be9 --- /dev/null +++ b/chains/mainnet/unification.json @@ -0,0 +1,26 @@ +{ + "chain_name": "Unification", + "coingecko": "unification", + "api": ["https://rest.unification.chainmasters.ninja", "https://rest.unification.io"], + "rpc": ["https://rpc.unification.chainmasters.ninja", "https://rpc1.unification.io"], + "snapshot_provider": "fcccb1745ee75a5984bd10f8d0b51564011c0310@sync1.unification.io:26657,35986ac67257e8f8805ff0c2f408ac2a48cbba77@sync2.unification.io:26657", + "sdk_version": "0.42.11", + "walletUrlForStaking": "https://explorer.unification.chainmasters.ninja/wallet", + "coin_type": "5555", + "min_tx_fee": "25000000000000000", + "addr_prefix": "und", + "logo": "/logos/unification.png", + "assets": [{ + "base": "nund", + "symbol": "FUND", + "exponent": "9", + "coingecko_id": "unification", + "logo": "/logos/unification.png" + }], + "gasPriceStep": { + "low": 100, + "average": 200, + "high": 300 + }, + "votingPowerPerCoin": 1000 +} diff --git a/chains/mainnet/vidulum.json b/chains/mainnet/vidulum.json new file mode 100644 index 00000000..ddd2fd76 --- /dev/null +++ b/chains/mainnet/vidulum.json @@ -0,0 +1,19 @@ +{ + "chain_name": "vidulum", + "coingecko": "vidulum", + "api": ["https://mainnet-lcd.vidulum.app", "https://api-vidulum-ia.cosmosia.notional.ventures"], + "rpc": ["https://mainnet-rpc.vidulum.app:443", "https://rpc-vidulum-ia.cosmosia.notional.ventures:443"], + "snapshot_provider": "", + "sdk_version": "0.45.9", + "coin_type": "370", + "min_tx_fee": "8000", + "addr_prefix": "vdl", + "logo": "/logos/VDL.png", + "assets": [{ + "base": "uvdl", + "symbol": "VDL", + "exponent": "6", + "coingecko_id": "vidulum", + "logo": "/logos/VDL.png" + }] + } \ No newline at end of file diff --git a/chains/mainnet/whitewhale.json b/chains/mainnet/whitewhale.json new file mode 100644 index 00000000..af5beab5 --- /dev/null +++ b/chains/mainnet/whitewhale.json @@ -0,0 +1,20 @@ +{ + "chain_name": "whitewhale", + "api": ["https://whitewhale-api.polkachu.com:443"], + "rpc": ["https://whitewhale-rpc.polkachu.com:443"], + "snapshot_provider": "", + "sdk_version": "0.46.9", + "coin_type": "118", + "min_tx_fee": "8000", + "addr_prefix": "migaloo", + "logo": "/logos/whitewhale.png", + "assets": [ + { + "base": "uwhale", + "symbol": "WHALE", + "exponent": "6", + "coingecko_id": "white-whale", + "logo": "/logos/whale.png" + } + ] +} diff --git a/chains/testnet/iris.json b/chains/testnet/iris.json new file mode 100644 index 00000000..be28a1ca --- /dev/null +++ b/chains/testnet/iris.json @@ -0,0 +1,20 @@ +{ + "chain_name": "iris", + "alias": "iris-network", + "api": ["https://api.gon.irisnet.org"], + "rpc": ["http://34.82.96.8:26657","http://34.77.68.145:26657"], + "snapshot_provider": "fcc1d9bc43163b20ce5163cf41a302b33f25375f@34.82.96.8:26656", + "sdk_version": "0.46.1", + "coin_type": "118", + "min_tx_fee": "40000", + "addr_prefix": "iaa", + "excludes": "mint", + "logo": "/logos/iris-network.svg", + "assets": [{ + "base": "uiris", + "symbol": "IRIS", + "exponent": "6", + "coingecko_id": "iris-network", + "logo": "/logos/iris-network.svg" + }] +} \ No newline at end of file diff --git a/chains/testnet/juno.json b/chains/testnet/juno.json new file mode 100644 index 00000000..7996dd15 --- /dev/null +++ b/chains/testnet/juno.json @@ -0,0 +1,17 @@ +{ + "chain_name": "juno", + "api": ["https://api.uni.junonetwork.io"], + "rpc": [""], + "sdk_version": "0.46.1", + "coin_type": "118", + "min_tx_fee": "3000", + "addr_prefix": "juno", + "logo": "/logos/juno.png", + "assets": [{ + "base": "ujunox", + "symbol": "JUNOX", + "exponent": "6", + "coingecko_id": "juno-network", + "logo": "/logos/juno.png" + }] +} \ No newline at end of file diff --git a/chains/testnet/omniflix.json b/chains/testnet/omniflix.json new file mode 100644 index 00000000..1b86d8cd --- /dev/null +++ b/chains/testnet/omniflix.json @@ -0,0 +1,18 @@ +{ + "chain_name": "omniflix", + "api": ["https://api.testnet.omniflix.network"], + "rpc": [""], + "snapshot_provider": "", + "sdk_version": "0.46.1", + "coin_type": "118", + "min_tx_fee": "3000", + "addr_prefix": "omniflix", + "logo": "/logos/omniflix.png", + "assets": [{ + "base": "uflix", + "symbol": "FLIX", + "exponent": "6", + "coingecko_id": "", + "logo": "/logos/omniflix.png" + }] +} diff --git a/chains/testnet/stargaze.json b/chains/testnet/stargaze.json new file mode 100644 index 00000000..d28122c8 --- /dev/null +++ b/chains/testnet/stargaze.json @@ -0,0 +1,18 @@ +{ + "chain_name": "stargaze", + "api": ["https://rest.elgafar-1.stargaze-apis.com"], + "rpc": [""], + "snapshot_provider": "", + "sdk_version": "0.45.6", + "coin_type": "118", + "min_tx_fee": "800", + "addr_prefix": "stars", + "logo": "/logos/stargaze.png", + "assets": [{ + "base": "ustars", + "symbol": "STARS", + "exponent": "6", + "coingecko_id": "stargaze", + "logo": "/logos/stargaze.png" + }] +} \ No newline at end of file diff --git a/components.d.ts b/components.d.ts new file mode 100644 index 00000000..667372cb --- /dev/null +++ b/components.d.ts @@ -0,0 +1,51 @@ +// generated by unplugin-vue-components +// We suggest you to commit this file into source control +// Read more: https://github.com/vuejs/core/pull/3399 +import '@vue/runtime-core' + +export {} + +declare module '@vue/runtime-core' { + export interface GlobalComponents { + AddAuthenticatorAppDialog: typeof import('./src/plugins/vuetify/@core/components/AddAuthenticatorAppDialog.vue')['default'] + AddEditAddressDialog: typeof import('./src/plugins/vuetify/@core/components/AddEditAddressDialog.vue')['default'] + AppBarSearch: typeof import('./src/plugins/vuetify/@core/components/AppBarSearch.vue')['default'] + AppCardActions: typeof import('./src/plugins/vuetify/@core/components/AppCardActions.vue')['default'] + AppCardCode: typeof import('./src/plugins/vuetify/@core/components/AppCardCode.vue')['default'] + AppDateTimePicker: typeof import('./src/plugins/vuetify/@core/components/AppDateTimePicker.vue')['default'] + AppDrawerHeaderSection: typeof import('./src/plugins/vuetify/@core/components/AppDrawerHeaderSection.vue')['default'] + AppOtpInput: typeof import('./src/plugins/vuetify/@core/components/AppOtpInput.vue')['default'] + AppPricing: typeof import('./src/plugins/vuetify/@core/components/AppPricing.vue')['default'] + AppSearchHeader: typeof import('./src/plugins/vuetify/@core/components/AppSearchHeader.vue')['default'] + BuyNow: typeof import('./src/plugins/vuetify/@core/components/BuyNow.vue')['default'] + CardAddEditDialog: typeof import('./src/plugins/vuetify/@core/components/CardAddEditDialog.vue')['default'] + CardStatisticsHorizontal: typeof import('./src/plugins/vuetify/@core/components/CardStatisticsHorizontal.vue')['default'] + CardStatisticsVertical: typeof import('./src/plugins/vuetify/@core/components/CardStatisticsVertical.vue')['default'] + CardStatisticsWithImages: typeof import('./src/plugins/vuetify/@core/components/CardStatisticsWithImages.vue')['default'] + ConfirmDialog: typeof import('./src/plugins/vuetify/@core/components/ConfirmDialog.vue')['default'] + CustomCheckboxes: typeof import('./src/plugins/vuetify/@core/components/CustomCheckboxes.vue')['default'] + CustomCheckboxesWithIcon: typeof import('./src/plugins/vuetify/@core/components/CustomCheckboxesWithIcon.vue')['default'] + CustomCheckboxesWithImage: typeof import('./src/plugins/vuetify/@core/components/CustomCheckboxesWithImage.vue')['default'] + CustomizerSection: typeof import('./src/plugins/vuetify/@core/components/CustomizerSection.vue')['default'] + CustomRadios: typeof import('./src/plugins/vuetify/@core/components/CustomRadios.vue')['default'] + CustomRadiosWithIcon: typeof import('./src/plugins/vuetify/@core/components/CustomRadiosWithIcon.vue')['default'] + CustomRadiosWithImage: typeof import('./src/plugins/vuetify/@core/components/CustomRadiosWithImage.vue')['default'] + DialogCloseBtn: typeof import('./src/plugins/vuetify/@core/components/DialogCloseBtn.vue')['default'] + EnableOneTimePasswordDialog: typeof import('./src/plugins/vuetify/@core/components/EnableOneTimePasswordDialog.vue')['default'] + ErrorHeader: typeof import('./src/plugins/vuetify/@core/components/ErrorHeader.vue')['default'] + I18n: typeof import('./src/plugins/vuetify/@core/components/I18n.vue')['default'] + MoreBtn: typeof import('./src/plugins/vuetify/@core/components/MoreBtn.vue')['default'] + Notifications: typeof import('./src/plugins/vuetify/@core/components/Notifications.vue')['default'] + PricingPlanDialog: typeof import('./src/plugins/vuetify/@core/components/PricingPlanDialog.vue')['default'] + ReferAndEarnDialog: typeof import('./src/plugins/vuetify/@core/components/ReferAndEarnDialog.vue')['default'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] + ShareProjectDialog: typeof import('./src/plugins/vuetify/@core/components/ShareProjectDialog.vue')['default'] + Shortcuts: typeof import('./src/plugins/vuetify/@core/components/Shortcuts.vue')['default'] + TheCustomizer: typeof import('./src/plugins/vuetify/@core/components/TheCustomizer.vue')['default'] + ThemeSwitcher: typeof import('./src/plugins/vuetify/@core/components/ThemeSwitcher.vue')['default'] + TwoFactorAuthDialog: typeof import('./src/plugins/vuetify/@core/components/TwoFactorAuthDialog.vue')['default'] + UserInfoEditDialog: typeof import('./src/plugins/vuetify/@core/components/UserInfoEditDialog.vue')['default'] + UserUpgradePlanDialog: typeof import('./src/plugins/vuetify/@core/components/UserUpgradePlanDialog.vue')['default'] + } +} diff --git a/env.d.ts b/env.d.ts new file mode 100644 index 00000000..11f02fe2 --- /dev/null +++ b/env.d.ts @@ -0,0 +1 @@ +/// diff --git a/index.html b/index.html new file mode 100644 index 00000000..5baf65ce --- /dev/null +++ b/index.html @@ -0,0 +1,26 @@ + + + + + + + Ping Dashboard + + + + +
+
+ +
+
+
+
+
+
+
+ + + diff --git a/lerna.json b/lerna.json deleted file mode 100644 index aebebbab..00000000 --- a/lerna.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "$schema": "node_modules/lerna/schemas/lerna-schema.json", - "useWorkspaces": true, - "version": "0.0.0" -} diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 89a19638..00000000 --- a/package-lock.json +++ /dev/null @@ -1,10471 +0,0 @@ -{ - "name": "dashboard", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "dashboard", - "workspaces": [ - "packages/*" - ], - "devDependencies": { - "@vitejs/plugin-vue": "^4.0.0", - "lerna": "^6.4.1" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.20.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz", - "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", - "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", - "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", - "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", - "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", - "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", - "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", - "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", - "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", - "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", - "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", - "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", - "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", - "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", - "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", - "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", - "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", - "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", - "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", - "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", - "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", - "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", - "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", - "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.4.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@hutson/parse-repository-url": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", - "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@isaacs/string-locale-compare": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz", - "integrity": "sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==", - "dev": true - }, - "node_modules/@lerna/add": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/add/-/add-6.4.1.tgz", - "integrity": "sha512-YSRnMcsdYnQtQQK0NSyrS9YGXvB3jzvx183o+JTH892MKzSlBqwpBHekCknSibyxga1HeZ0SNKQXgsHAwWkrRw==", - "dev": true, - "dependencies": { - "@lerna/bootstrap": "6.4.1", - "@lerna/command": "6.4.1", - "@lerna/filter-options": "6.4.1", - "@lerna/npm-conf": "6.4.1", - "@lerna/validation-error": "6.4.1", - "dedent": "^0.7.0", - "npm-package-arg": "8.1.1", - "p-map": "^4.0.0", - "pacote": "^13.6.1", - "semver": "^7.3.4" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/bootstrap": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-6.4.1.tgz", - "integrity": "sha512-64cm0mnxzxhUUjH3T19ZSjPdn28vczRhhTXhNAvOhhU0sQgHrroam1xQC1395qbkV3iosSertlu8e7xbXW033w==", - "dev": true, - "dependencies": { - "@lerna/command": "6.4.1", - "@lerna/filter-options": "6.4.1", - "@lerna/has-npm-version": "6.4.1", - "@lerna/npm-install": "6.4.1", - "@lerna/package-graph": "6.4.1", - "@lerna/pulse-till-done": "6.4.1", - "@lerna/rimraf-dir": "6.4.1", - "@lerna/run-lifecycle": "6.4.1", - "@lerna/run-topologically": "6.4.1", - "@lerna/symlink-binary": "6.4.1", - "@lerna/symlink-dependencies": "6.4.1", - "@lerna/validation-error": "6.4.1", - "@npmcli/arborist": "5.3.0", - "dedent": "^0.7.0", - "get-port": "^5.1.1", - "multimatch": "^5.0.0", - "npm-package-arg": "8.1.1", - "npmlog": "^6.0.2", - "p-map": "^4.0.0", - "p-map-series": "^2.1.0", - "p-waterfall": "^2.1.1", - "semver": "^7.3.4" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/changed": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-6.4.1.tgz", - "integrity": "sha512-Z/z0sTm3l/iZW0eTSsnQpcY5d6eOpNO0g4wMOK+hIboWG0QOTc8b28XCnfCUO+33UisKl8PffultgoaHMKkGgw==", - "dev": true, - "dependencies": { - "@lerna/collect-updates": "6.4.1", - "@lerna/command": "6.4.1", - "@lerna/listable": "6.4.1", - "@lerna/output": "6.4.1" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/check-working-tree": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-6.4.1.tgz", - "integrity": "sha512-EnlkA1wxaRLqhJdn9HX7h+JYxqiTK9aWEFOPqAE8lqjxHn3RpM9qBp1bAdL7CeUk3kN1lvxKwDEm0mfcIyMbPA==", - "dev": true, - "dependencies": { - "@lerna/collect-uncommitted": "6.4.1", - "@lerna/describe-ref": "6.4.1", - "@lerna/validation-error": "6.4.1" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/child-process": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-6.4.1.tgz", - "integrity": "sha512-dvEKK0yKmxOv8pccf3I5D/k+OGiLxQp5KYjsrDtkes2pjpCFfQAMbmpol/Tqx6w/2o2rSaRrLsnX8TENo66FsA==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "execa": "^5.0.0", - "strong-log-transformer": "^2.1.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/clean": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-6.4.1.tgz", - "integrity": "sha512-FuVyW3mpos5ESCWSkQ1/ViXyEtsZ9k45U66cdM/HnteHQk/XskSQw0sz9R+whrZRUDu6YgYLSoj1j0YAHVK/3A==", - "dev": true, - "dependencies": { - "@lerna/command": "6.4.1", - "@lerna/filter-options": "6.4.1", - "@lerna/prompt": "6.4.1", - "@lerna/pulse-till-done": "6.4.1", - "@lerna/rimraf-dir": "6.4.1", - "p-map": "^4.0.0", - "p-map-series": "^2.1.0", - "p-waterfall": "^2.1.1" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/cli": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-6.4.1.tgz", - "integrity": "sha512-2pNa48i2wzFEd9LMPKWI3lkW/3widDqiB7oZUM1Xvm4eAOuDWc9I3RWmAUIVlPQNf3n4McxJCvsZZ9BpQN50Fg==", - "dev": true, - "dependencies": { - "@lerna/global-options": "6.4.1", - "dedent": "^0.7.0", - "npmlog": "^6.0.2", - "yargs": "^16.2.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/collect-uncommitted": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-6.4.1.tgz", - "integrity": "sha512-5IVQGhlLrt7Ujc5ooYA1Xlicdba/wMcDSnbQwr8ufeqnzV2z4729pLCVk55gmi6ZienH/YeBPHxhB5u34ofE0Q==", - "dev": true, - "dependencies": { - "@lerna/child-process": "6.4.1", - "chalk": "^4.1.0", - "npmlog": "^6.0.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/collect-updates": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-6.4.1.tgz", - "integrity": "sha512-pzw2/FC+nIqYkknUHK9SMmvP3MsLEjxI597p3WV86cEDN3eb1dyGIGuHiKShtjvT08SKSwpTX+3bCYvLVxtC5Q==", - "dev": true, - "dependencies": { - "@lerna/child-process": "6.4.1", - "@lerna/describe-ref": "6.4.1", - "minimatch": "^3.0.4", - "npmlog": "^6.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/command": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/command/-/command-6.4.1.tgz", - "integrity": "sha512-3Lifj8UTNYbRad8JMP7IFEEdlIyclWyyvq/zvNnTS9kCOEymfmsB3lGXr07/AFoi6qDrvN64j7YSbPZ6C6qonw==", - "dev": true, - "dependencies": { - "@lerna/child-process": "6.4.1", - "@lerna/package-graph": "6.4.1", - "@lerna/project": "6.4.1", - "@lerna/validation-error": "6.4.1", - "@lerna/write-log-file": "6.4.1", - "clone-deep": "^4.0.1", - "dedent": "^0.7.0", - "execa": "^5.0.0", - "is-ci": "^2.0.0", - "npmlog": "^6.0.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/conventional-commits": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-6.4.1.tgz", - "integrity": "sha512-NIvCOjStjQy5O8VojB7/fVReNNDEJOmzRG2sTpgZ/vNS4AzojBQZ/tobzhm7rVkZZ43R9srZeuhfH9WgFsVUSA==", - "dev": true, - "dependencies": { - "@lerna/validation-error": "6.4.1", - "conventional-changelog-angular": "^5.0.12", - "conventional-changelog-core": "^4.2.4", - "conventional-recommended-bump": "^6.1.0", - "fs-extra": "^9.1.0", - "get-stream": "^6.0.0", - "npm-package-arg": "8.1.1", - "npmlog": "^6.0.2", - "pify": "^5.0.0", - "semver": "^7.3.4" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/create": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/create/-/create-6.4.1.tgz", - "integrity": "sha512-qfQS8PjeGDDlxEvKsI/tYixIFzV2938qLvJohEKWFn64uvdLnXCamQ0wvRJST8p1ZpHWX4AXrB+xEJM3EFABrA==", - "dev": true, - "dependencies": { - "@lerna/child-process": "6.4.1", - "@lerna/command": "6.4.1", - "@lerna/npm-conf": "6.4.1", - "@lerna/validation-error": "6.4.1", - "dedent": "^0.7.0", - "fs-extra": "^9.1.0", - "init-package-json": "^3.0.2", - "npm-package-arg": "8.1.1", - "p-reduce": "^2.1.0", - "pacote": "^13.6.1", - "pify": "^5.0.0", - "semver": "^7.3.4", - "slash": "^3.0.0", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^4.0.0", - "yargs-parser": "20.2.4" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/create-symlink": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-6.4.1.tgz", - "integrity": "sha512-rNivHFYV1GAULxnaTqeGb2AdEN2OZzAiZcx5CFgj45DWXQEGwPEfpFmCSJdXhFZbyd3K0uiDlAXjAmV56ov3FQ==", - "dev": true, - "dependencies": { - "cmd-shim": "^5.0.0", - "fs-extra": "^9.1.0", - "npmlog": "^6.0.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/describe-ref": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-6.4.1.tgz", - "integrity": "sha512-MXGXU8r27wl355kb1lQtAiu6gkxJ5tAisVJvFxFM1M+X8Sq56icNoaROqYrvW6y97A9+3S8Q48pD3SzkFv31Xw==", - "dev": true, - "dependencies": { - "@lerna/child-process": "6.4.1", - "npmlog": "^6.0.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/diff": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-6.4.1.tgz", - "integrity": "sha512-TnzJsRPN2fOjUrmo5Boi43fJmRtBJDsVgwZM51VnLoKcDtO1kcScXJ16Od2Xx5bXbp5dES5vGDLL/USVVWfeAg==", - "dev": true, - "dependencies": { - "@lerna/child-process": "6.4.1", - "@lerna/command": "6.4.1", - "@lerna/validation-error": "6.4.1", - "npmlog": "^6.0.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/exec": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-6.4.1.tgz", - "integrity": "sha512-KAWfuZpoyd3FMejHUORd0GORMr45/d9OGAwHitfQPVs4brsxgQFjbbBEEGIdwsg08XhkDb4nl6IYVASVTq9+gA==", - "dev": true, - "dependencies": { - "@lerna/child-process": "6.4.1", - "@lerna/command": "6.4.1", - "@lerna/filter-options": "6.4.1", - "@lerna/profiler": "6.4.1", - "@lerna/run-topologically": "6.4.1", - "@lerna/validation-error": "6.4.1", - "p-map": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/filter-options": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-6.4.1.tgz", - "integrity": "sha512-efJh3lP2T+9oyNIP2QNd9EErf0Sm3l3Tz8CILMsNJpjSU6kO43TYWQ+L/ezu2zM99KVYz8GROLqDcHRwdr8qUA==", - "dev": true, - "dependencies": { - "@lerna/collect-updates": "6.4.1", - "@lerna/filter-packages": "6.4.1", - "dedent": "^0.7.0", - "npmlog": "^6.0.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/filter-packages": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-6.4.1.tgz", - "integrity": "sha512-LCMGDGy4b+Mrb6xkcVzp4novbf5MoZEE6ZQF1gqG0wBWqJzNcKeFiOmf352rcDnfjPGZP6ct5+xXWosX/q6qwg==", - "dev": true, - "dependencies": { - "@lerna/validation-error": "6.4.1", - "multimatch": "^5.0.0", - "npmlog": "^6.0.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/get-npm-exec-opts": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-6.4.1.tgz", - "integrity": "sha512-IvN/jyoklrWcjssOf121tZhOc16MaFPOu5ii8a+Oy0jfTriIGv929Ya8MWodj75qec9s+JHoShB8yEcMqZce4g==", - "dev": true, - "dependencies": { - "npmlog": "^6.0.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/get-packed": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-6.4.1.tgz", - "integrity": "sha512-uaDtYwK1OEUVIXn84m45uPlXShtiUcw6V9TgB3rvHa3rrRVbR7D4r+JXcwVxLGrAS7LwxVbYWEEO/Z/bX7J/Lg==", - "dev": true, - "dependencies": { - "fs-extra": "^9.1.0", - "ssri": "^9.0.1", - "tar": "^6.1.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/github-client": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-6.4.1.tgz", - "integrity": "sha512-ridDMuzmjMNlcDmrGrV9mxqwUKzt9iYqCPwVYJlRYrnE3jxyg+RdooquqskVFj11djcY6xCV2Q2V1lUYwF+PmA==", - "dev": true, - "dependencies": { - "@lerna/child-process": "6.4.1", - "@octokit/plugin-enterprise-rest": "^6.0.1", - "@octokit/rest": "^19.0.3", - "git-url-parse": "^13.1.0", - "npmlog": "^6.0.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/gitlab-client": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-6.4.1.tgz", - "integrity": "sha512-AdLG4d+jbUvv0jQyygQUTNaTCNSMDxioJso6aAjQ/vkwyy3fBJ6FYzX74J4adSfOxC2MQZITFyuG+c9ggp7pyQ==", - "dev": true, - "dependencies": { - "node-fetch": "^2.6.1", - "npmlog": "^6.0.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/global-options": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-6.4.1.tgz", - "integrity": "sha512-UTXkt+bleBB8xPzxBPjaCN/v63yQdfssVjhgdbkQ//4kayaRA65LyEtJTi9rUrsLlIy9/rbeb+SAZUHg129fJg==", - "dev": true, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/has-npm-version": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-6.4.1.tgz", - "integrity": "sha512-vW191w5iCkwNWWWcy4542ZOpjKYjcP/pU3o3+w6NM1J3yBjWZcNa8lfzQQgde2QkGyNi+i70o6wIca1o0sdKwg==", - "dev": true, - "dependencies": { - "@lerna/child-process": "6.4.1", - "semver": "^7.3.4" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/import": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/import/-/import-6.4.1.tgz", - "integrity": "sha512-oDg8g1PNrCM1JESLsG3rQBtPC+/K9e4ohs0xDKt5E6p4l7dc0Ib4oo0oCCT/hGzZUlNwHxrc2q9JMRzSAn6P/Q==", - "dev": true, - "dependencies": { - "@lerna/child-process": "6.4.1", - "@lerna/command": "6.4.1", - "@lerna/prompt": "6.4.1", - "@lerna/pulse-till-done": "6.4.1", - "@lerna/validation-error": "6.4.1", - "dedent": "^0.7.0", - "fs-extra": "^9.1.0", - "p-map-series": "^2.1.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/info": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/info/-/info-6.4.1.tgz", - "integrity": "sha512-Ks4R7IndIr4vQXz+702gumPVhH6JVkshje0WKA3+ew2qzYZf68lU1sBe1OZsQJU3eeY2c60ax+bItSa7aaIHGw==", - "dev": true, - "dependencies": { - "@lerna/command": "6.4.1", - "@lerna/output": "6.4.1", - "envinfo": "^7.7.4" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/init": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/init/-/init-6.4.1.tgz", - "integrity": "sha512-CXd/s/xgj0ZTAoOVyolOTLW2BG7uQOhWW4P/ktlwwJr9s3c4H/z+Gj36UXw3q5X1xdR29NZt7Vc6fvROBZMjUQ==", - "dev": true, - "dependencies": { - "@lerna/child-process": "6.4.1", - "@lerna/command": "6.4.1", - "@lerna/project": "6.4.1", - "fs-extra": "^9.1.0", - "p-map": "^4.0.0", - "write-json-file": "^4.3.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/link": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/link/-/link-6.4.1.tgz", - "integrity": "sha512-O8Rt7MAZT/WT2AwrB/+HY76ktnXA9cDFO9rhyKWZGTHdplbzuJgfsGzu8Xv0Ind+w+a8xLfqtWGPlwiETnDyrw==", - "dev": true, - "dependencies": { - "@lerna/command": "6.4.1", - "@lerna/package-graph": "6.4.1", - "@lerna/symlink-dependencies": "6.4.1", - "@lerna/validation-error": "6.4.1", - "p-map": "^4.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/list": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/list/-/list-6.4.1.tgz", - "integrity": "sha512-7a6AKgXgC4X7nK6twVPNrKCiDhrCiAhL/FE4u9HYhHqw9yFwyq8Qe/r1RVOkAOASNZzZ8GuBvob042bpunupCw==", - "dev": true, - "dependencies": { - "@lerna/command": "6.4.1", - "@lerna/filter-options": "6.4.1", - "@lerna/listable": "6.4.1", - "@lerna/output": "6.4.1" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/listable": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-6.4.1.tgz", - "integrity": "sha512-L8ANeidM10aoF8aL3L/771Bb9r/TRkbEPzAiC8Iy2IBTYftS87E3rT/4k5KBEGYzMieSKJaskSFBV0OQGYV1Cw==", - "dev": true, - "dependencies": { - "@lerna/query-graph": "6.4.1", - "chalk": "^4.1.0", - "columnify": "^1.6.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/log-packed": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-6.4.1.tgz", - "integrity": "sha512-Pwv7LnIgWqZH4vkM1rWTVF+pmWJu7d0ZhVwyhCaBJUsYbo+SyB2ZETGygo3Z/A+vZ/S7ImhEEKfIxU9bg5lScQ==", - "dev": true, - "dependencies": { - "byte-size": "^7.0.0", - "columnify": "^1.6.0", - "has-unicode": "^2.0.1", - "npmlog": "^6.0.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/npm-conf": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-6.4.1.tgz", - "integrity": "sha512-Q+83uySGXYk3n1pYhvxtzyGwBGijYgYecgpiwRG1YNyaeGy+Mkrj19cyTWubT+rU/kM5c6If28+y9kdudvc7zQ==", - "dev": true, - "dependencies": { - "config-chain": "^1.1.12", - "pify": "^5.0.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/npm-dist-tag": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-6.4.1.tgz", - "integrity": "sha512-If1Hn4q9fn0JWuBm455iIZDWE6Fsn4Nv8Tpqb+dYf0CtoT5Hn+iT64xSiU5XJw9Vc23IR7dIujkEXm2MVbnvZw==", - "dev": true, - "dependencies": { - "@lerna/otplease": "6.4.1", - "npm-package-arg": "8.1.1", - "npm-registry-fetch": "^13.3.0", - "npmlog": "^6.0.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/npm-install": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-6.4.1.tgz", - "integrity": "sha512-7gI1txMA9qTaT3iiuk/8/vL78wIhtbbOLhMf8m5yQ2G+3t47RUA8MNgUMsq4Zszw9C83drayqesyTf0u8BzVRg==", - "dev": true, - "dependencies": { - "@lerna/child-process": "6.4.1", - "@lerna/get-npm-exec-opts": "6.4.1", - "fs-extra": "^9.1.0", - "npm-package-arg": "8.1.1", - "npmlog": "^6.0.2", - "signal-exit": "^3.0.3", - "write-pkg": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/npm-publish": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-6.4.1.tgz", - "integrity": "sha512-lbNEg+pThPAD8lIgNArm63agtIuCBCF3umxvgTQeLzyqUX6EtGaKJFyz/6c2ANcAuf8UfU7WQxFFbOiolibXTQ==", - "dev": true, - "dependencies": { - "@lerna/otplease": "6.4.1", - "@lerna/run-lifecycle": "6.4.1", - "fs-extra": "^9.1.0", - "libnpmpublish": "^6.0.4", - "npm-package-arg": "8.1.1", - "npmlog": "^6.0.2", - "pify": "^5.0.0", - "read-package-json": "^5.0.1" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/npm-run-script": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-6.4.1.tgz", - "integrity": "sha512-HyvwuyhrGqDa1UbI+pPbI6v+wT6I34R0PW3WCADn6l59+AyqLOCUQQr+dMW7jdYNwjO6c/Ttbvj4W58EWsaGtQ==", - "dev": true, - "dependencies": { - "@lerna/child-process": "6.4.1", - "@lerna/get-npm-exec-opts": "6.4.1", - "npmlog": "^6.0.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/otplease": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/otplease/-/otplease-6.4.1.tgz", - "integrity": "sha512-ePUciFfFdythHNMp8FP5K15R/CoGzSLVniJdD50qm76c4ATXZHnGCW2PGwoeAZCy4QTzhlhdBq78uN0wAs75GA==", - "dev": true, - "dependencies": { - "@lerna/prompt": "6.4.1" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/output": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/output/-/output-6.4.1.tgz", - "integrity": "sha512-A1yRLF0bO+lhbIkrryRd6hGSD0wnyS1rTPOWJhScO/Zyv8vIPWhd2fZCLR1gI2d/Kt05qmK3T/zETTwloK7Fww==", - "dev": true, - "dependencies": { - "npmlog": "^6.0.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/pack-directory": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-6.4.1.tgz", - "integrity": "sha512-kBtDL9bPP72/Nl7Gqa2CA3Odb8CYY1EF2jt801f+B37TqRLf57UXQom7yF3PbWPCPmhoU+8Fc4RMpUwSbFC46Q==", - "dev": true, - "dependencies": { - "@lerna/get-packed": "6.4.1", - "@lerna/package": "6.4.1", - "@lerna/run-lifecycle": "6.4.1", - "@lerna/temp-write": "6.4.1", - "npm-packlist": "^5.1.1", - "npmlog": "^6.0.2", - "tar": "^6.1.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/package": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/package/-/package-6.4.1.tgz", - "integrity": "sha512-TrOah58RnwS9R8d3+WgFFTu5lqgZs7M+e1dvcRga7oSJeKscqpEK57G0xspvF3ycjfXQwRMmEtwPmpkeEVLMzA==", - "dev": true, - "dependencies": { - "load-json-file": "^6.2.0", - "npm-package-arg": "8.1.1", - "write-pkg": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/package-graph": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-6.4.1.tgz", - "integrity": "sha512-fQvc59stRYOqxT3Mn7g/yI9/Kw5XetJoKcW5l8XeqKqcTNDURqKnN0qaNBY6lTTLOe4cR7gfXF2l1u3HOz0qEg==", - "dev": true, - "dependencies": { - "@lerna/prerelease-id-from-version": "6.4.1", - "@lerna/validation-error": "6.4.1", - "npm-package-arg": "8.1.1", - "npmlog": "^6.0.2", - "semver": "^7.3.4" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/prerelease-id-from-version": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-6.4.1.tgz", - "integrity": "sha512-uGicdMFrmfHXeC0FTosnUKRgUjrBJdZwrmw7ZWMb5DAJGOuTzrvJIcz5f0/eL3XqypC/7g+9DoTgKjX3hlxPZA==", - "dev": true, - "dependencies": { - "semver": "^7.3.4" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/profiler": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/profiler/-/profiler-6.4.1.tgz", - "integrity": "sha512-dq2uQxcu0aq6eSoN+JwnvHoAnjtZAVngMvywz5bTAfzz/sSvIad1v8RCpJUMBQHxaPtbfiNvOIQgDZOmCBIM4g==", - "dev": true, - "dependencies": { - "fs-extra": "^9.1.0", - "npmlog": "^6.0.2", - "upath": "^2.0.1" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/project": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/project/-/project-6.4.1.tgz", - "integrity": "sha512-BPFYr4A0mNZ2jZymlcwwh7PfIC+I6r52xgGtJ4KIrIOB6mVKo9u30dgYJbUQxmSuMRTOnX7PJZttQQzSda4gEg==", - "dev": true, - "dependencies": { - "@lerna/package": "6.4.1", - "@lerna/validation-error": "6.4.1", - "cosmiconfig": "^7.0.0", - "dedent": "^0.7.0", - "dot-prop": "^6.0.1", - "glob-parent": "^5.1.1", - "globby": "^11.0.2", - "js-yaml": "^4.1.0", - "load-json-file": "^6.2.0", - "npmlog": "^6.0.2", - "p-map": "^4.0.0", - "resolve-from": "^5.0.0", - "write-json-file": "^4.3.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/project/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@lerna/project/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@lerna/prompt": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-6.4.1.tgz", - "integrity": "sha512-vMxCIgF9Vpe80PnargBGAdS/Ib58iYEcfkcXwo7mYBCxEVcaUJFKZ72FEW8rw+H5LkxBlzrBJyfKRoOe0ks9gQ==", - "dev": true, - "dependencies": { - "inquirer": "^8.2.4", - "npmlog": "^6.0.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/publish": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-6.4.1.tgz", - "integrity": "sha512-/D/AECpw2VNMa1Nh4g29ddYKRIqygEV1ftV8PYXVlHpqWN7VaKrcbRU6pn0ldgpFlMyPtESfv1zS32F5CQ944w==", - "dev": true, - "dependencies": { - "@lerna/check-working-tree": "6.4.1", - "@lerna/child-process": "6.4.1", - "@lerna/collect-updates": "6.4.1", - "@lerna/command": "6.4.1", - "@lerna/describe-ref": "6.4.1", - "@lerna/log-packed": "6.4.1", - "@lerna/npm-conf": "6.4.1", - "@lerna/npm-dist-tag": "6.4.1", - "@lerna/npm-publish": "6.4.1", - "@lerna/otplease": "6.4.1", - "@lerna/output": "6.4.1", - "@lerna/pack-directory": "6.4.1", - "@lerna/prerelease-id-from-version": "6.4.1", - "@lerna/prompt": "6.4.1", - "@lerna/pulse-till-done": "6.4.1", - "@lerna/run-lifecycle": "6.4.1", - "@lerna/run-topologically": "6.4.1", - "@lerna/validation-error": "6.4.1", - "@lerna/version": "6.4.1", - "fs-extra": "^9.1.0", - "libnpmaccess": "^6.0.3", - "npm-package-arg": "8.1.1", - "npm-registry-fetch": "^13.3.0", - "npmlog": "^6.0.2", - "p-map": "^4.0.0", - "p-pipe": "^3.1.0", - "pacote": "^13.6.1", - "semver": "^7.3.4" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/pulse-till-done": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-6.4.1.tgz", - "integrity": "sha512-efAkOC1UuiyqYBfrmhDBL6ufYtnpSqAG+lT4d/yk3CzJEJKkoCwh2Hb692kqHHQ5F74Uusc8tcRB7GBcfNZRWA==", - "dev": true, - "dependencies": { - "npmlog": "^6.0.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/query-graph": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-6.4.1.tgz", - "integrity": "sha512-gBGZLgu2x6L4d4ZYDn4+d5rxT9RNBC+biOxi0QrbaIq83I+JpHVmFSmExXK3rcTritrQ3JT9NCqb+Yu9tL9adQ==", - "dev": true, - "dependencies": { - "@lerna/package-graph": "6.4.1" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/resolve-symlink": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-6.4.1.tgz", - "integrity": "sha512-gnqltcwhWVLUxCuwXWe/ch9WWTxXRI7F0ZvCtIgdfOpbosm3f1g27VO1LjXeJN2i6ks03qqMowqy4xB4uMR9IA==", - "dev": true, - "dependencies": { - "fs-extra": "^9.1.0", - "npmlog": "^6.0.2", - "read-cmd-shim": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/rimraf-dir": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-6.4.1.tgz", - "integrity": "sha512-5sDOmZmVj0iXIiEgdhCm0Prjg5q2SQQKtMd7ImimPtWKkV0IyJWxrepJFbeQoFj5xBQF7QB5jlVNEfQfKhD6pQ==", - "dev": true, - "dependencies": { - "@lerna/child-process": "6.4.1", - "npmlog": "^6.0.2", - "path-exists": "^4.0.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/run": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/run/-/run-6.4.1.tgz", - "integrity": "sha512-HRw7kS6KNqTxqntFiFXPEeBEct08NjnL6xKbbOV6pXXf+lXUQbJlF8S7t6UYqeWgTZ4iU9caIxtZIY+EpW93mQ==", - "dev": true, - "dependencies": { - "@lerna/command": "6.4.1", - "@lerna/filter-options": "6.4.1", - "@lerna/npm-run-script": "6.4.1", - "@lerna/output": "6.4.1", - "@lerna/profiler": "6.4.1", - "@lerna/run-topologically": "6.4.1", - "@lerna/timer": "6.4.1", - "@lerna/validation-error": "6.4.1", - "fs-extra": "^9.1.0", - "nx": ">=15.4.2 < 16", - "p-map": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/run-lifecycle": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-6.4.1.tgz", - "integrity": "sha512-42VopI8NC8uVCZ3YPwbTycGVBSgukJltW5Saein0m7TIqFjwSfrcP0n7QJOr+WAu9uQkk+2kBstF5WmvKiqgEA==", - "dev": true, - "dependencies": { - "@lerna/npm-conf": "6.4.1", - "@npmcli/run-script": "^4.1.7", - "npmlog": "^6.0.2", - "p-queue": "^6.6.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/run-topologically": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-6.4.1.tgz", - "integrity": "sha512-gXlnAsYrjs6KIUGDnHM8M8nt30Amxq3r0lSCNAt+vEu2sMMEOh9lffGGaJobJZ4bdwoXnKay3uER/TU8E9owMw==", - "dev": true, - "dependencies": { - "@lerna/query-graph": "6.4.1", - "p-queue": "^6.6.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/symlink-binary": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-6.4.1.tgz", - "integrity": "sha512-poZX90VmXRjL/JTvxaUQPeMDxFUIQvhBkHnH+dwW0RjsHB/2Tu4QUAsE0OlFnlWQGsAtXF4FTtW8Xs57E/19Kw==", - "dev": true, - "dependencies": { - "@lerna/create-symlink": "6.4.1", - "@lerna/package": "6.4.1", - "fs-extra": "^9.1.0", - "p-map": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/symlink-dependencies": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-6.4.1.tgz", - "integrity": "sha512-43W2uLlpn3TTYuHVeO/2A6uiTZg6TOk/OSKi21ujD7IfVIYcRYCwCV+8LPP12R3rzyab0JWkWnhp80Z8A2Uykw==", - "dev": true, - "dependencies": { - "@lerna/create-symlink": "6.4.1", - "@lerna/resolve-symlink": "6.4.1", - "@lerna/symlink-binary": "6.4.1", - "fs-extra": "^9.1.0", - "p-map": "^4.0.0", - "p-map-series": "^2.1.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/temp-write": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/temp-write/-/temp-write-6.4.1.tgz", - "integrity": "sha512-7uiGFVoTyos5xXbVQg4bG18qVEn9dFmboXCcHbMj5mc/+/QmU9QeNz/Cq36O5TY6gBbLnyj3lfL5PhzERWKMFg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.15", - "is-stream": "^2.0.0", - "make-dir": "^3.0.0", - "temp-dir": "^1.0.0", - "uuid": "^8.3.2" - } - }, - "node_modules/@lerna/timer": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/timer/-/timer-6.4.1.tgz", - "integrity": "sha512-ogmjFTWwRvevZr76a2sAbhmu3Ut2x73nDIn0bcwZwZ3Qc3pHD8eITdjs/wIKkHse3J7l3TO5BFJPnrvDS7HLnw==", - "dev": true, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/validation-error": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-6.4.1.tgz", - "integrity": "sha512-fxfJvl3VgFd7eBfVMRX6Yal9omDLs2mcGKkNYeCEyt4Uwlz1B5tPAXyk/sNMfkKV2Aat/mlK5tnY13vUrMKkyA==", - "dev": true, - "dependencies": { - "npmlog": "^6.0.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/version": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/version/-/version-6.4.1.tgz", - "integrity": "sha512-1/krPq0PtEqDXtaaZsVuKev9pXJCkNC1vOo2qCcn6PBkODw/QTAvGcUi0I+BM2c//pdxge9/gfmbDo1lC8RtAQ==", - "dev": true, - "dependencies": { - "@lerna/check-working-tree": "6.4.1", - "@lerna/child-process": "6.4.1", - "@lerna/collect-updates": "6.4.1", - "@lerna/command": "6.4.1", - "@lerna/conventional-commits": "6.4.1", - "@lerna/github-client": "6.4.1", - "@lerna/gitlab-client": "6.4.1", - "@lerna/output": "6.4.1", - "@lerna/prerelease-id-from-version": "6.4.1", - "@lerna/prompt": "6.4.1", - "@lerna/run-lifecycle": "6.4.1", - "@lerna/run-topologically": "6.4.1", - "@lerna/temp-write": "6.4.1", - "@lerna/validation-error": "6.4.1", - "@nrwl/devkit": ">=15.4.2 < 16", - "chalk": "^4.1.0", - "dedent": "^0.7.0", - "load-json-file": "^6.2.0", - "minimatch": "^3.0.4", - "npmlog": "^6.0.2", - "p-map": "^4.0.0", - "p-pipe": "^3.1.0", - "p-reduce": "^2.1.0", - "p-waterfall": "^2.1.1", - "semver": "^7.3.4", - "slash": "^3.0.0", - "write-json-file": "^4.3.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/write-log-file": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-6.4.1.tgz", - "integrity": "sha512-LE4fueQSDrQo76F4/gFXL0wnGhqdG7WHVH8D8TrKouF2Afl4NHltObCm4WsSMPjcfciVnZQFfx1ruxU4r/enHQ==", - "dev": true, - "dependencies": { - "npmlog": "^6.0.2", - "write-file-atomic": "^4.0.1" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/arborist": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-5.3.0.tgz", - "integrity": "sha512-+rZ9zgL1lnbl8Xbb1NQdMjveOMwj4lIYfcDtyJHHi5x4X8jtR6m8SXooJMZy5vmFVZ8w7A2Bnd/oX9eTuU8w5A==", - "dev": true, - "dependencies": { - "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/installed-package-contents": "^1.0.7", - "@npmcli/map-workspaces": "^2.0.3", - "@npmcli/metavuln-calculator": "^3.0.1", - "@npmcli/move-file": "^2.0.0", - "@npmcli/name-from-folder": "^1.0.1", - "@npmcli/node-gyp": "^2.0.0", - "@npmcli/package-json": "^2.0.0", - "@npmcli/run-script": "^4.1.3", - "bin-links": "^3.0.0", - "cacache": "^16.0.6", - "common-ancestor-path": "^1.0.1", - "json-parse-even-better-errors": "^2.3.1", - "json-stringify-nice": "^1.1.4", - "mkdirp": "^1.0.4", - "mkdirp-infer-owner": "^2.0.0", - "nopt": "^5.0.0", - "npm-install-checks": "^5.0.0", - "npm-package-arg": "^9.0.0", - "npm-pick-manifest": "^7.0.0", - "npm-registry-fetch": "^13.0.0", - "npmlog": "^6.0.2", - "pacote": "^13.6.1", - "parse-conflict-json": "^2.0.1", - "proc-log": "^2.0.0", - "promise-all-reject-late": "^1.0.0", - "promise-call-limit": "^1.0.1", - "read-package-json-fast": "^2.0.2", - "readdir-scoped-modules": "^1.1.0", - "rimraf": "^3.0.2", - "semver": "^7.3.7", - "ssri": "^9.0.0", - "treeverse": "^2.0.0", - "walk-up-path": "^1.0.0" - }, - "bin": { - "arborist": "bin/index.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/arborist/node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", - "dev": true, - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/arborist/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@npmcli/arborist/node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@npmcli/arborist/node_modules/npm-package-arg": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", - "integrity": "sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==", - "dev": true, - "dependencies": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", - "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "dev": true, - "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/git": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-3.0.2.tgz", - "integrity": "sha512-CAcd08y3DWBJqJDpfuVL0uijlq5oaXaOJEKHKc4wqrjd00gkvTZB+nFuLn+doOOKddaQS9JfqtNoFCO2LCvA3w==", - "dev": true, - "dependencies": { - "@npmcli/promise-spawn": "^3.0.0", - "lru-cache": "^7.4.4", - "mkdirp": "^1.0.4", - "npm-pick-manifest": "^7.0.0", - "proc-log": "^2.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^2.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@npmcli/installed-package-contents": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", - "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", - "dev": true, - "dependencies": { - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" - }, - "bin": { - "installed-package-contents": "index.js" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@npmcli/map-workspaces": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-2.0.4.tgz", - "integrity": "sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==", - "dev": true, - "dependencies": { - "@npmcli/name-from-folder": "^1.0.1", - "glob": "^8.0.1", - "minimatch": "^5.0.1", - "read-package-json-fast": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/map-workspaces/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@npmcli/map-workspaces/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/metavuln-calculator": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-3.1.1.tgz", - "integrity": "sha512-n69ygIaqAedecLeVH3KnO39M6ZHiJ2dEv5A7DGvcqCB8q17BGUgW8QaanIkbWUo2aYGZqJaOORTLAlIvKjNDKA==", - "dev": true, - "dependencies": { - "cacache": "^16.0.0", - "json-parse-even-better-errors": "^2.3.1", - "pacote": "^13.0.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "dev": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/name-from-folder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz", - "integrity": "sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==", - "dev": true - }, - "node_modules/@npmcli/node-gyp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-2.0.0.tgz", - "integrity": "sha512-doNI35wIe3bBaEgrlPfdJPaCpUR89pJWep4Hq3aRdh6gKazIVWfs0jHttvSSoq47ZXgC7h73kDsUl8AoIQUB+A==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/package-json": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-2.0.0.tgz", - "integrity": "sha512-42jnZ6yl16GzjWSH7vtrmWyJDGVa/LXPdpN2rcUWolFjc9ON2N3uz0qdBbQACfmhuJZ2lbKYtmK5qx68ZPLHMA==", - "dev": true, - "dependencies": { - "json-parse-even-better-errors": "^2.3.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/promise-spawn": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-3.0.0.tgz", - "integrity": "sha512-s9SgS+p3a9Eohe68cSI3fi+hpcZUmXq5P7w0kMlAsWVtR7XbK3ptkZqKT2cK1zLDObJ3sR+8P59sJE0w/KTL1g==", - "dev": true, - "dependencies": { - "infer-owner": "^1.0.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/run-script": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-4.2.1.tgz", - "integrity": "sha512-7dqywvVudPSrRCW5nTHpHgeWnbBtz8cFkOuKrecm6ih+oO9ciydhWt6OF7HlqupRRmB8Q/gECVdB9LMfToJbRg==", - "dev": true, - "dependencies": { - "@npmcli/node-gyp": "^2.0.0", - "@npmcli/promise-spawn": "^3.0.0", - "node-gyp": "^9.0.0", - "read-package-json-fast": "^2.0.3", - "which": "^2.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@nrwl/cli": { - "version": "15.6.3", - "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-15.6.3.tgz", - "integrity": "sha512-K4E0spofThZXMnhA6R8hkUTdfqmwSnUE2+DlD5Y3jqsvKTAgwF5U41IFkEouFZCf+dWjy0RA20bWoX48EVFtmQ==", - "dev": true, - "dependencies": { - "nx": "15.6.3" - } - }, - "node_modules/@nrwl/devkit": { - "version": "15.6.3", - "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-15.6.3.tgz", - "integrity": "sha512-/JDvdzNxUM+C1PCZPCrvmFx+OfywqZdOq1GS9QR8C0VctTLG4D/SGSFD88O1SAdcbH/f1mMiBGfEYZYd23fghQ==", - "dev": true, - "dependencies": { - "@phenomnomnominal/tsquery": "4.1.1", - "ejs": "^3.1.7", - "ignore": "^5.0.4", - "semver": "7.3.4", - "tslib": "^2.3.0" - }, - "peerDependencies": { - "nx": ">= 14 <= 16" - } - }, - "node_modules/@nrwl/devkit/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@nrwl/devkit/node_modules/semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@nrwl/devkit/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@nrwl/tao": { - "version": "15.6.3", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-15.6.3.tgz", - "integrity": "sha512-bDZbPIbU5Mf2BvX0q8GjPxrm1WkYyfW+gp7mLuuJth2sEpZiCr47mSwuGko/y4CKXvIX46VQcAS0pKQMKugXsg==", - "dev": true, - "dependencies": { - "nx": "15.6.3" - }, - "bin": { - "tao": "index.js" - } - }, - "node_modules/@octokit/auth-token": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.3.tgz", - "integrity": "sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA==", - "dev": true, - "dependencies": { - "@octokit/types": "^9.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/core": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.0.tgz", - "integrity": "sha512-AgvDRUg3COpR82P7PBdGZF/NNqGmtMq2NiPqeSsDIeCfYFOZ9gddqWNQHnFdEUf+YwOj4aZYmJnlPp7OXmDIDg==", - "dev": true, - "dependencies": { - "@octokit/auth-token": "^3.0.0", - "@octokit/graphql": "^5.0.0", - "@octokit/request": "^6.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^9.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/endpoint": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.5.tgz", - "integrity": "sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA==", - "dev": true, - "dependencies": { - "@octokit/types": "^9.0.0", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/graphql": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.5.tgz", - "integrity": "sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ==", - "dev": true, - "dependencies": { - "@octokit/request": "^6.0.0", - "@octokit/types": "^9.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/openapi-types": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-16.0.0.tgz", - "integrity": "sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA==", - "dev": true - }, - "node_modules/@octokit/plugin-enterprise-rest": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz", - "integrity": "sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==", - "dev": true - }, - "node_modules/@octokit/plugin-paginate-rest": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.0.0.tgz", - "integrity": "sha512-Sq5VU1PfT6/JyuXPyt04KZNVsFOSBaYOAq2QRZUwzVlI10KFvcbUo8lR258AAQL1Et60b0WuVik+zOWKLuDZxw==", - "dev": true, - "dependencies": { - "@octokit/types": "^9.0.0" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "@octokit/core": ">=4" - } - }, - "node_modules/@octokit/plugin-request-log": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", - "dev": true, - "peerDependencies": { - "@octokit/core": ">=3" - } - }, - "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.0.1.tgz", - "integrity": "sha512-pnCaLwZBudK5xCdrR823xHGNgqOzRnJ/mpC/76YPpNP7DybdsJtP7mdOwh+wYZxK5jqeQuhu59ogMI4NRlBUvA==", - "dev": true, - "dependencies": { - "@octokit/types": "^9.0.0", - "deprecation": "^2.3.1" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "@octokit/core": ">=3" - } - }, - "node_modules/@octokit/request": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.3.tgz", - "integrity": "sha512-TNAodj5yNzrrZ/VxP+H5HiYaZep0H3GU0O7PaF+fhDrt8FPrnkei9Aal/txsN/1P7V3CPiThG0tIvpPDYUsyAA==", - "dev": true, - "dependencies": { - "@octokit/endpoint": "^7.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^9.0.0", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/request-error": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", - "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", - "dev": true, - "dependencies": { - "@octokit/types": "^9.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/rest": { - "version": "19.0.7", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.7.tgz", - "integrity": "sha512-HRtSfjrWmWVNp2uAkEpQnuGMJsu/+dBr47dRc5QVgsCbnIc1+GFEaoKBWkYG+zjrsHpSqcAElMio+n10c0b5JA==", - "dev": true, - "dependencies": { - "@octokit/core": "^4.1.0", - "@octokit/plugin-paginate-rest": "^6.0.0", - "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^7.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/types": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.0.0.tgz", - "integrity": "sha512-LUewfj94xCMH2rbD5YJ+6AQ4AVjFYTgpp6rboWM5T7N3IsIF65SBEOVcYMGAEzO/kKNiNaW4LoWtoThOhH06gw==", - "dev": true, - "dependencies": { - "@octokit/openapi-types": "^16.0.0" - } - }, - "node_modules/@parcel/watcher": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.4.tgz", - "integrity": "sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "node-addon-api": "^3.2.1", - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@phenomnomnominal/tsquery": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-4.1.1.tgz", - "integrity": "sha512-jjMmK1tnZbm1Jq5a7fBliM4gQwjxMU7TFoRNwIyzwlO+eHPRCFv/Nv+H/Gi1jc3WR7QURG8D5d0Tn12YGrUqBQ==", - "dev": true, - "dependencies": { - "esquery": "^1.0.1" - }, - "peerDependencies": { - "typescript": "^3 || ^4" - } - }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz", - "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==", - "dev": true - }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true - }, - "node_modules/@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.11.19", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.19.tgz", - "integrity": "sha512-YUgMWAQBWLObABqrvx8qKO1enAvBUdjZOAWQ5grBAkp5LQv45jBvYKZ3oFS9iKRCQyFjqw6iuEa1vmFqtxYLZw==", - "dev": true - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "node_modules/@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", - "dev": true - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.50.0.tgz", - "integrity": "sha512-vwksQWSFZiUhgq3Kv7o1Jcj0DUNylwnIlGvKvLLYsq8pAWha6/WCnXUeaSoNNha/K7QSf2+jvmkxggC1u3pIwQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.50.0", - "@typescript-eslint/type-utils": "5.50.0", - "@typescript-eslint/utils": "5.50.0", - "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.50.0.tgz", - "integrity": "sha512-KCcSyNaogUDftK2G9RXfQyOCt51uB5yqC6pkUYqhYh8Kgt+DwR5M0EwEAxGPy/+DH6hnmKeGsNhiZRQxjH71uQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.50.0", - "@typescript-eslint/types": "5.50.0", - "@typescript-eslint/typescript-estree": "5.50.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.50.0.tgz", - "integrity": "sha512-rt03kaX+iZrhssaT974BCmoUikYtZI24Vp/kwTSy841XhiYShlqoshRFDvN1FKKvU2S3gK+kcBW1EA7kNUrogg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.50.0", - "@typescript-eslint/visitor-keys": "5.50.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.50.0.tgz", - "integrity": "sha512-dcnXfZ6OGrNCO7E5UY/i0ktHb7Yx1fV6fnQGGrlnfDhilcs6n19eIRcvLBqx6OQkrPaFlDPk3OJ0WlzQfrV0bQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "5.50.0", - "@typescript-eslint/utils": "5.50.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.50.0.tgz", - "integrity": "sha512-atruOuJpir4OtyNdKahiHZobPKFvZnBnfDiyEaBf6d9vy9visE7gDjlmhl+y29uxZ2ZDgvXijcungGFjGGex7w==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.50.0.tgz", - "integrity": "sha512-Gq4zapso+OtIZlv8YNAStFtT6d05zyVCK7Fx3h5inlLBx2hWuc/0465C2mg/EQDDU2LKe52+/jN4f0g9bd+kow==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.50.0", - "@typescript-eslint/visitor-keys": "5.50.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.50.0.tgz", - "integrity": "sha512-v/AnUFImmh8G4PH0NDkf6wA8hujNNcrwtecqW4vtQ1UOSNBaZl49zP1SHoZ/06e+UiwzHpgb5zP5+hwlYYWYAw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.50.0", - "@typescript-eslint/types": "5.50.0", - "@typescript-eslint/typescript-estree": "5.50.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.50.0.tgz", - "integrity": "sha512-cdMeD9HGu6EXIeGOh2yVW6oGf9wq8asBgZx7nsR/D36gTfQ0odE5kcRYe5M81vjEFAcPeugXrHg78Imu55F6gg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.50.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@vitejs/plugin-vue": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.0.0.tgz", - "integrity": "sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==", - "dev": true, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.0.0", - "vue": "^3.2.25" - } - }, - "node_modules/@volar/language-core": { - "version": "1.0.24", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.0.24.tgz", - "integrity": "sha512-vTN+alJiWwK0Pax6POqrmevbtFW2dXhjwWiW/MW4f48eDYPLdyURWcr8TixO7EN/nHsUBj2udT7igFKPtjyAKg==", - "dev": true, - "dependencies": { - "@volar/source-map": "1.0.24", - "muggle-string": "^0.1.0" - } - }, - "node_modules/@volar/source-map": { - "version": "1.0.24", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.0.24.tgz", - "integrity": "sha512-Qsv/tkplx18pgBr8lKAbM1vcDqgkGKQzbChg6NW+v0CZc3G7FLmK+WrqEPzKlN7Cwdc6XVL559Nod8WKAfKr4A==", - "dev": true, - "dependencies": { - "muggle-string": "^0.1.0" - } - }, - "node_modules/@volar/typescript": { - "version": "1.0.24", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.0.24.tgz", - "integrity": "sha512-f8hCSk+PfKR1/RQHxZ79V1NpDImHoivqoizK+mstphm25tn/YJ/JnKNjZHB+o21fuW0yKlI26NV3jkVb2Cc/7A==", - "dev": true, - "dependencies": { - "@volar/language-core": "1.0.24" - } - }, - "node_modules/@volar/vue-language-core": { - "version": "1.0.24", - "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.0.24.tgz", - "integrity": "sha512-2NTJzSgrwKu6uYwPqLiTMuAzi7fAY3yFy5PJ255bGJc82If0Xr+cW8pC80vpjG0D/aVLmlwAdO4+Ya2BI8GdDg==", - "dev": true, - "dependencies": { - "@volar/language-core": "1.0.24", - "@volar/source-map": "1.0.24", - "@vue/compiler-dom": "^3.2.45", - "@vue/compiler-sfc": "^3.2.45", - "@vue/reactivity": "^3.2.45", - "@vue/shared": "^3.2.45", - "minimatch": "^5.1.1", - "vue-template-compiler": "^2.7.14" - } - }, - "node_modules/@volar/vue-language-core/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@volar/vue-language-core/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@volar/vue-typescript": { - "version": "1.0.24", - "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.0.24.tgz", - "integrity": "sha512-9a25oHDvGaNC0okRS47uqJI6FxY4hUQZUsxeOUFHcqVxZEv8s17LPuP/pMMXyz7jPygrZubB/qXqHY5jEu/akA==", - "dev": true, - "dependencies": { - "@volar/typescript": "1.0.24", - "@volar/vue-language-core": "1.0.24" - } - }, - "node_modules/@vue/compiler-core": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.47.tgz", - "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==", - "dependencies": { - "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.47", - "estree-walker": "^2.0.2", - "source-map": "^0.6.1" - } - }, - "node_modules/@vue/compiler-dom": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz", - "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==", - "dependencies": { - "@vue/compiler-core": "3.2.47", - "@vue/shared": "3.2.47" - } - }, - "node_modules/@vue/compiler-sfc": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz", - "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==", - "dependencies": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.47", - "@vue/compiler-dom": "3.2.47", - "@vue/compiler-ssr": "3.2.47", - "@vue/reactivity-transform": "3.2.47", - "@vue/shared": "3.2.47", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7", - "postcss": "^8.1.10", - "source-map": "^0.6.1" - } - }, - "node_modules/@vue/compiler-ssr": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz", - "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==", - "dependencies": { - "@vue/compiler-dom": "3.2.47", - "@vue/shared": "3.2.47" - } - }, - "node_modules/@vue/devtools-api": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz", - "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" - }, - "node_modules/@vue/eslint-config-prettier": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-7.0.0.tgz", - "integrity": "sha512-/CTc6ML3Wta1tCe1gUeO0EYnVXfo3nJXsIhZ8WJr3sov+cGASr6yuiibJTL6lmIBm7GobopToOuB3B6AWyV0Iw==", - "dev": true, - "dependencies": { - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-prettier": "^4.0.0" - }, - "peerDependencies": { - "eslint": ">= 7.28.0", - "prettier": ">= 2.0.0" - } - }, - "node_modules/@vue/eslint-config-typescript": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-11.0.2.tgz", - "integrity": "sha512-EiKud1NqlWmSapBFkeSrE994qpKx7/27uCGnhdqzllYDpQZroyX/O6bwjEpeuyKamvLbsGdO6PMR2faIf+zFnw==", - "dev": true, - "dependencies": { - "@typescript-eslint/eslint-plugin": "^5.0.0", - "@typescript-eslint/parser": "^5.0.0", - "vue-eslint-parser": "^9.0.0" - }, - "engines": { - "node": "^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0", - "eslint-plugin-vue": "^9.0.0", - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@vue/reactivity": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.47.tgz", - "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", - "dependencies": { - "@vue/shared": "3.2.47" - } - }, - "node_modules/@vue/reactivity-transform": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz", - "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==", - "dependencies": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.47", - "@vue/shared": "3.2.47", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7" - } - }, - "node_modules/@vue/runtime-core": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.47.tgz", - "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", - "dependencies": { - "@vue/reactivity": "3.2.47", - "@vue/shared": "3.2.47" - } - }, - "node_modules/@vue/runtime-dom": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", - "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", - "dependencies": { - "@vue/runtime-core": "3.2.47", - "@vue/shared": "3.2.47", - "csstype": "^2.6.8" - } - }, - "node_modules/@vue/server-renderer": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.47.tgz", - "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", - "dependencies": { - "@vue/compiler-ssr": "3.2.47", - "@vue/shared": "3.2.47" - }, - "peerDependencies": { - "vue": "3.2.47" - } - }, - "node_modules/@vue/shared": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.47.tgz", - "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==" - }, - "node_modules/@vue/tsconfig": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.1.3.tgz", - "integrity": "sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg==", - "dev": true, - "peerDependencies": { - "@types/node": "*" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true - }, - "node_modules/@yarnpkg/parsers": { - "version": "3.0.0-rc.38", - "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.38.tgz", - "integrity": "sha512-YqkUSOZSBjbhzvU/ZbK6yoE70L/KVXAQTyUMaKAFoHEpy7csAljivTBu0C3SZKbDxMRjFWAvnLS8US7W3hFLow==", - "dev": true, - "dependencies": { - "js-yaml": "^3.10.0", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=14.15.0" - } - }, - "node_modules/@yarnpkg/parsers/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@yarnpkg/parsers/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@zkochan/js-yaml": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz", - "integrity": "sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/add-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", - "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", - "dev": true - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true - }, - "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axios": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.2.tgz", - "integrity": "sha512-1M3O703bYqYuPhbHeya5bnhpYVsDDRyQSabNja04mZtboLNSuZ4YrltestrLXfHgmzua4TpUqRiVKbiQuo2epw==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/before-after-hook": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", - "dev": true - }, - "node_modules/bin-links": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-3.0.3.tgz", - "integrity": "sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==", - "dev": true, - "dependencies": { - "cmd-shim": "^5.0.0", - "mkdirp-infer-owner": "^2.0.0", - "npm-normalize-package-bin": "^2.0.0", - "read-cmd-shim": "^3.0.0", - "rimraf": "^3.0.0", - "write-file-atomic": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/bin-links/node_modules/npm-normalize-package-bin": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", - "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", - "dev": true, - "dependencies": { - "semver": "^7.0.0" - } - }, - "node_modules/byte-size": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-7.0.1.tgz", - "integrity": "sha512-crQdqyCwhokxwV1UyDzLZanhkugAgft7vt0qbbdt60C6Zf3CAiGmtUCylbtYwrU6loOUw3euGrNtW1J651ot1A==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone-deep/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cmd-shim": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-5.0.0.tgz", - "integrity": "sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==", - "dev": true, - "dependencies": { - "mkdirp-infer-owner": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/columnify": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz", - "integrity": "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==", - "dev": true, - "dependencies": { - "strip-ansi": "^6.0.1", - "wcwidth": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/common-ancestor-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", - "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==", - "dev": true - }, - "node_modules/compare-func": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", - "dev": true, - "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" - } - }, - "node_modules/compare-func/node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "dev": true, - "engines": [ - "node >= 6.0" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "dev": true, - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true - }, - "node_modules/conventional-changelog-angular": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", - "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", - "dev": true, - "dependencies": { - "compare-func": "^2.0.0", - "q": "^1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-core": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", - "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", - "dev": true, - "dependencies": { - "add-stream": "^1.0.0", - "conventional-changelog-writer": "^5.0.0", - "conventional-commits-parser": "^3.2.0", - "dateformat": "^3.0.0", - "get-pkg-repo": "^4.0.0", - "git-raw-commits": "^2.0.8", - "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^4.1.1", - "lodash": "^4.17.15", - "normalize-package-data": "^3.0.0", - "q": "^1.5.1", - "read-pkg": "^3.0.0", - "read-pkg-up": "^3.0.0", - "through2": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-preset-loader": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", - "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-writer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", - "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", - "dev": true, - "dependencies": { - "conventional-commits-filter": "^2.0.7", - "dateformat": "^3.0.0", - "handlebars": "^4.7.7", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "semver": "^6.0.0", - "split": "^1.0.0", - "through2": "^4.0.0" - }, - "bin": { - "conventional-changelog-writer": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-writer/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/conventional-commits-filter": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", - "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", - "dev": true, - "dependencies": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-commits-parser": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", - "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", - "dev": true, - "dependencies": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.0.4", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "conventional-commits-parser": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-recommended-bump": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz", - "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==", - "dev": true, - "dependencies": { - "concat-stream": "^2.0.0", - "conventional-changelog-preset-loader": "^2.3.4", - "conventional-commits-filter": "^2.0.7", - "conventional-commits-parser": "^3.2.0", - "git-raw-commits": "^2.0.8", - "git-semver-tags": "^4.1.1", - "meow": "^8.0.0", - "q": "^1.5.1" - }, - "bin": { - "conventional-recommended-bump": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/csstype": { - "version": "2.6.21", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", - "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" - }, - "node_modules/dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", - "dev": true - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/debuglog": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", - "dev": true, - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "dev": true - }, - "node_modules/detect-indent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", - "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/dezalgo": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", - "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", - "dev": true, - "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "dev": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "node_modules/ejs": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", - "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", - "dev": true, - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true, - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.21.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz", - "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.4", - "is-array-buffer": "^3.0.1", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/esbuild": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", - "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.16.17", - "@esbuild/android-arm64": "0.16.17", - "@esbuild/android-x64": "0.16.17", - "@esbuild/darwin-arm64": "0.16.17", - "@esbuild/darwin-x64": "0.16.17", - "@esbuild/freebsd-arm64": "0.16.17", - "@esbuild/freebsd-x64": "0.16.17", - "@esbuild/linux-arm": "0.16.17", - "@esbuild/linux-arm64": "0.16.17", - "@esbuild/linux-ia32": "0.16.17", - "@esbuild/linux-loong64": "0.16.17", - "@esbuild/linux-mips64el": "0.16.17", - "@esbuild/linux-ppc64": "0.16.17", - "@esbuild/linux-riscv64": "0.16.17", - "@esbuild/linux-s390x": "0.16.17", - "@esbuild/linux-x64": "0.16.17", - "@esbuild/netbsd-x64": "0.16.17", - "@esbuild/openbsd-x64": "0.16.17", - "@esbuild/sunos-x64": "0.16.17", - "@esbuild/win32-arm64": "0.16.17", - "@esbuild/win32-ia32": "0.16.17", - "@esbuild/win32-x64": "0.16.17" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz", - "integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==", - "dev": true, - "dependencies": { - "@eslint/eslintrc": "^1.4.1", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-prettier": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz", - "integrity": "sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-prettier": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", - "dev": true, - "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-vue": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.9.0.tgz", - "integrity": "sha512-YbubS7eK0J7DCf0U2LxvVP7LMfs6rC6UltihIgval3azO3gyDwEGVgsCMe1TmDiEkl6GdMKfRpaME6QxIYtzDQ==", - "dev": true, - "dependencies": { - "eslint-utils": "^3.0.0", - "natural-compare": "^1.4.0", - "nth-check": "^2.0.1", - "postcss-selector-parser": "^6.0.9", - "semver": "^7.3.5", - "vue-eslint-parser": "^9.0.1", - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", - "dev": true, - "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dev": true, - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/framework": { - "resolved": "packages/framework", - "link": true - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-pkg-repo": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", - "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", - "dev": true, - "dependencies": { - "@hutson/parse-repository-url": "^3.0.0", - "hosted-git-info": "^4.0.0", - "through2": "^2.0.0", - "yargs": "^16.2.0" - }, - "bin": { - "get-pkg-repo": "src/cli.js" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-pkg-repo/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/get-pkg-repo/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/get-pkg-repo/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/get-pkg-repo/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/get-port": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/git-raw-commits": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", - "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", - "dev": true, - "dependencies": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "git-raw-commits": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/git-remote-origin-url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", - "dev": true, - "dependencies": { - "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/git-remote-origin-url/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/git-semver-tags": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", - "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", - "dev": true, - "dependencies": { - "meow": "^8.0.0", - "semver": "^6.0.0" - }, - "bin": { - "git-semver-tags": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/git-semver-tags/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/git-up": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz", - "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==", - "dev": true, - "dependencies": { - "is-ssh": "^1.4.0", - "parse-url": "^8.1.0" - } - }, - "node_modules/git-url-parse": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-13.1.0.tgz", - "integrity": "sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==", - "dev": true, - "dependencies": { - "git-up": "^7.0.0" - } - }, - "node_modules/gitconfiglocal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", - "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", - "dev": true, - "dependencies": { - "ini": "^1.3.2" - } - }, - "node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dev": true, - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/ignore-walk": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-5.0.1.tgz", - "integrity": "sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==", - "dev": true, - "dependencies": { - "minimatch": "^5.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/ignore-walk/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/ignore-walk/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/init-package-json": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-3.0.2.tgz", - "integrity": "sha512-YhlQPEjNFqlGdzrBfDNRLhvoSgX7iQRgSxgsNknRQ9ITXFT7UMfVMWhBTOh2Y+25lRnGrv5Xz8yZwQ3ACR6T3A==", - "dev": true, - "dependencies": { - "npm-package-arg": "^9.0.1", - "promzard": "^0.3.0", - "read": "^1.0.7", - "read-package-json": "^5.0.0", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/init-package-json/node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", - "dev": true, - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/init-package-json/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/init-package-json/node_modules/npm-package-arg": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", - "integrity": "sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==", - "dev": true, - "dependencies": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", - "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/inquirer": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", - "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/internal-slot": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", - "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "dev": true - }, - "node_modules/is-array-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", - "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-ssh": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz", - "integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==", - "dev": true, - "dependencies": { - "protocols": "^2.0.1" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", - "dev": true, - "dependencies": { - "text-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jake": { - "version": "10.8.5", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", - "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", - "dev": true, - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/js-sdsl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", - "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json-stringify-nice": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz", - "integrity": "sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/just-diff": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-5.2.0.tgz", - "integrity": "sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==", - "dev": true - }, - "node_modules/just-diff-apply": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.5.0.tgz", - "integrity": "sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==", - "dev": true - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lerna": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/lerna/-/lerna-6.4.1.tgz", - "integrity": "sha512-0t8TSG4CDAn5+vORjvTFn/ZEGyc4LOEsyBUpzcdIxODHPKM4TVOGvbW9dBs1g40PhOrQfwhHS+3fSx/42j42dQ==", - "dev": true, - "dependencies": { - "@lerna/add": "6.4.1", - "@lerna/bootstrap": "6.4.1", - "@lerna/changed": "6.4.1", - "@lerna/clean": "6.4.1", - "@lerna/cli": "6.4.1", - "@lerna/command": "6.4.1", - "@lerna/create": "6.4.1", - "@lerna/diff": "6.4.1", - "@lerna/exec": "6.4.1", - "@lerna/filter-options": "6.4.1", - "@lerna/import": "6.4.1", - "@lerna/info": "6.4.1", - "@lerna/init": "6.4.1", - "@lerna/link": "6.4.1", - "@lerna/list": "6.4.1", - "@lerna/publish": "6.4.1", - "@lerna/run": "6.4.1", - "@lerna/validation-error": "6.4.1", - "@lerna/version": "6.4.1", - "@nrwl/devkit": ">=15.4.2 < 16", - "import-local": "^3.0.2", - "inquirer": "^8.2.4", - "npmlog": "^6.0.2", - "nx": ">=15.4.2 < 16", - "typescript": "^3 || ^4" - }, - "bin": { - "lerna": "cli.js" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/libnpmaccess": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-6.0.4.tgz", - "integrity": "sha512-qZ3wcfIyUoW0+qSFkMBovcTrSGJ3ZeyvpR7d5N9pEYv/kXs8sHP2wiqEIXBKLFrZlmM0kR0RJD7mtfLngtlLag==", - "dev": true, - "dependencies": { - "aproba": "^2.0.0", - "minipass": "^3.1.1", - "npm-package-arg": "^9.0.1", - "npm-registry-fetch": "^13.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/libnpmaccess/node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", - "dev": true, - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/libnpmaccess/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/libnpmaccess/node_modules/npm-package-arg": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", - "integrity": "sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==", - "dev": true, - "dependencies": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", - "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/libnpmpublish": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-6.0.5.tgz", - "integrity": "sha512-LUR08JKSviZiqrYTDfywvtnsnxr+tOvBU0BF8H+9frt7HMvc6Qn6F8Ubm72g5hDTHbq8qupKfDvDAln2TVPvFg==", - "dev": true, - "dependencies": { - "normalize-package-data": "^4.0.0", - "npm-package-arg": "^9.0.1", - "npm-registry-fetch": "^13.0.0", - "semver": "^7.3.7", - "ssri": "^9.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/libnpmpublish/node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", - "dev": true, - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/libnpmpublish/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/libnpmpublish/node_modules/normalize-package-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz", - "integrity": "sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==", - "dev": true, - "dependencies": { - "hosted-git-info": "^5.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/libnpmpublish/node_modules/npm-package-arg": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", - "integrity": "sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==", - "dev": true, - "dependencies": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", - "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/lines-and-columns": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", - "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/load-json-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz", - "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.15", - "parse-json": "^5.0.0", - "strip-bom": "^4.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/load-json-file/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "dependencies": { - "sourcemap-codec": "^1.4.8" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/meow/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "dev": true, - "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-json-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", - "dev": true, - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mkdirp-infer-owner": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz", - "integrity": "sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==", - "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "infer-owner": "^1.0.4", - "mkdirp": "^1.0.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/modules": { - "resolved": "packages/modules", - "link": true - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/muggle-string": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.1.0.tgz", - "integrity": "sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg==", - "dev": true - }, - "node_modules/multimatch": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", - "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", - "dev": true, - "dependencies": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/multimatch/node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "dev": true - }, - "node_modules/node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/node-gyp": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", - "integrity": "sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==", - "dev": true, - "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": "^12.13 || ^14.13 || >=16" - } - }, - "node_modules/node-gyp-build": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", - "dev": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/node-gyp/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/nopt": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", - "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", - "dev": true, - "dependencies": { - "abbrev": "^1.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-bundled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", - "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", - "dev": true, - "dependencies": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-install-checks": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-5.0.0.tgz", - "integrity": "sha512-65lUsMI8ztHCxFz5ckCEC44DRvEGdZX5usQFriauxHEwt7upv1FKaQEmAtU0YnOAdwuNWCmk64xYiQABNrEyLA==", - "dev": true, - "dependencies": { - "semver": "^7.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true - }, - "node_modules/npm-package-arg": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.1.tgz", - "integrity": "sha512-CsP95FhWQDwNqiYS+Q0mZ7FAEDytDZAkNxQqea6IaAFJTAY9Lhhqyl0irU/6PMc7BGfUmnsbHcqxJD7XuVM/rg==", - "dev": true, - "dependencies": { - "hosted-git-info": "^3.0.6", - "semver": "^7.0.0", - "validate-npm-package-name": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-package-arg/node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", - "dev": true - }, - "node_modules/npm-package-arg/node_modules/hosted-git-info": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", - "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-package-arg/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-package-arg/node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", - "dev": true, - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/npm-package-arg/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/npm-packlist": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.3.tgz", - "integrity": "sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==", - "dev": true, - "dependencies": { - "glob": "^8.0.1", - "ignore-walk": "^5.0.1", - "npm-bundled": "^2.0.0", - "npm-normalize-package-bin": "^2.0.0" - }, - "bin": { - "npm-packlist": "bin/index.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-packlist/node_modules/npm-bundled": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-2.0.1.tgz", - "integrity": "sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==", - "dev": true, - "dependencies": { - "npm-normalize-package-bin": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-packlist/node_modules/npm-normalize-package-bin": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", - "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-pick-manifest": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-7.0.2.tgz", - "integrity": "sha512-gk37SyRmlIjvTfcYl6RzDbSmS9Y4TOBXfsPnoYqTHARNgWbyDiCSMLUpmALDj4jjcTZpURiEfsSHJj9k7EV4Rw==", - "dev": true, - "dependencies": { - "npm-install-checks": "^5.0.0", - "npm-normalize-package-bin": "^2.0.0", - "npm-package-arg": "^9.0.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-pick-manifest/node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", - "dev": true, - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-pick-manifest/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/npm-pick-manifest/node_modules/npm-normalize-package-bin": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", - "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-pick-manifest/node_modules/npm-package-arg": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", - "integrity": "sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==", - "dev": true, - "dependencies": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", - "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-registry-fetch": { - "version": "13.3.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz", - "integrity": "sha512-eukJPi++DKRTjSBRcDZSDDsGqRK3ehbxfFUcgaRd0Yp6kRwOwh2WVn0r+8rMB4nnuzvAk6rQVzl6K5CkYOmnvw==", - "dev": true, - "dependencies": { - "make-fetch-happen": "^10.0.6", - "minipass": "^3.1.6", - "minipass-fetch": "^2.0.3", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^9.0.1", - "proc-log": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", - "dev": true, - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/npm-registry-fetch/node_modules/npm-package-arg": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", - "integrity": "sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==", - "dev": true, - "dependencies": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", - "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "bin": { - "npm-run-all": "bin/npm-run-all/index.js", - "run-p": "bin/run-p/index.js", - "run-s": "bin/run-s/index.js" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/npm-run-all/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/npm-run-all/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/npm-run-all/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/npm-run-all/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/npm-run-all/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/npm-run-all/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-all/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-all/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/nx": { - "version": "15.6.3", - "resolved": "https://registry.npmjs.org/nx/-/nx-15.6.3.tgz", - "integrity": "sha512-3t0A0GPLNen1yPAyE+VGZ3nkAzZYb5nfXtAcx8SHBlKq4u42yBY3khBmP1y4Og3jhIwFIj7J7Npeh8ZKrthmYQ==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@nrwl/cli": "15.6.3", - "@nrwl/tao": "15.6.3", - "@parcel/watcher": "2.0.4", - "@yarnpkg/lockfile": "^1.1.0", - "@yarnpkg/parsers": "^3.0.0-rc.18", - "@zkochan/js-yaml": "0.0.6", - "axios": "^1.0.0", - "chalk": "^4.1.0", - "cli-cursor": "3.1.0", - "cli-spinners": "2.6.1", - "cliui": "^7.0.2", - "dotenv": "~10.0.0", - "enquirer": "~2.3.6", - "fast-glob": "3.2.7", - "figures": "3.2.0", - "flat": "^5.0.2", - "fs-extra": "^11.1.0", - "glob": "7.1.4", - "ignore": "^5.0.4", - "js-yaml": "4.1.0", - "jsonc-parser": "3.2.0", - "lines-and-columns": "~2.0.3", - "minimatch": "3.0.5", - "npm-run-path": "^4.0.1", - "open": "^8.4.0", - "semver": "7.3.4", - "string-width": "^4.2.3", - "strong-log-transformer": "^2.1.0", - "tar-stream": "~2.2.0", - "tmp": "~0.2.1", - "tsconfig-paths": "^4.1.2", - "tslib": "^2.3.0", - "v8-compile-cache": "2.3.0", - "yargs": "^17.6.2", - "yargs-parser": "21.1.1" - }, - "bin": { - "nx": "bin/nx.js" - }, - "peerDependencies": { - "@swc-node/register": "^1.4.2", - "@swc/core": "^1.2.173" - }, - "peerDependenciesMeta": { - "@swc-node/register": { - "optional": true - }, - "@swc/core": { - "optional": true - } - } - }, - "node_modules/nx/node_modules/fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nx/node_modules/fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/nx/node_modules/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/nx/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/nx/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/nx/node_modules/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/nx/node_modules/semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/nx/node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/nx/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/nx/node_modules/yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/nx/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/nx/node_modules/yargs/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "dev": true, - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map-series": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-2.1.0.tgz", - "integrity": "sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-pipe": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz", - "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-queue": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", - "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.4", - "p-timeout": "^3.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-reduce": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", - "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dev": true, - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-waterfall": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-waterfall/-/p-waterfall-2.1.1.tgz", - "integrity": "sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==", - "dev": true, - "dependencies": { - "p-reduce": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pacote": { - "version": "13.6.2", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-13.6.2.tgz", - "integrity": "sha512-Gu8fU3GsvOPkak2CkbojR7vjs3k3P9cA6uazKTHdsdV0gpCEQq2opelnEv30KRQWgVzP5Vd/5umjcedma3MKtg==", - "dev": true, - "dependencies": { - "@npmcli/git": "^3.0.0", - "@npmcli/installed-package-contents": "^1.0.7", - "@npmcli/promise-spawn": "^3.0.0", - "@npmcli/run-script": "^4.1.0", - "cacache": "^16.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "infer-owner": "^1.0.4", - "minipass": "^3.1.6", - "mkdirp": "^1.0.4", - "npm-package-arg": "^9.0.0", - "npm-packlist": "^5.1.0", - "npm-pick-manifest": "^7.0.0", - "npm-registry-fetch": "^13.0.1", - "proc-log": "^2.0.0", - "promise-retry": "^2.0.1", - "read-package-json": "^5.0.0", - "read-package-json-fast": "^2.0.3", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11" - }, - "bin": { - "pacote": "lib/bin.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/pacote/node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", - "dev": true, - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/pacote/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/pacote/node_modules/npm-package-arg": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", - "integrity": "sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==", - "dev": true, - "dependencies": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", - "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-conflict-json": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-2.0.2.tgz", - "integrity": "sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==", - "dev": true, - "dependencies": { - "json-parse-even-better-errors": "^2.3.1", - "just-diff": "^5.0.1", - "just-diff-apply": "^5.2.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-json/node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/parse-path": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.0.0.tgz", - "integrity": "sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==", - "dev": true, - "dependencies": { - "protocols": "^2.0.0" - } - }, - "node_modules/parse-url": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz", - "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==", - "dev": true, - "dependencies": { - "parse-path": "^7.0.0" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", - "dev": true, - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/pify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pinia": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.30.tgz", - "integrity": "sha512-q6DUmxWwe/mQgg+55QQjykpKC+aGeGdaJV3niminl19V08dE+LRTvSEuqi6/NLSGCKHI49KGL6tMNEOssFiMyA==", - "dependencies": { - "@vue/devtools-api": "^6.4.5", - "vue-demi": "*" - }, - "funding": { - "url": "https://github.com/sponsors/posva" - }, - "peerDependencies": { - "@vue/composition-api": "^1.4.0", - "typescript": ">=4.4.4", - "vue": "^2.6.14 || ^3.2.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.3.tgz", - "integrity": "sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/proc-log": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz", - "integrity": "sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/promise-all-reject-late": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz", - "integrity": "sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/promise-call-limit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-1.0.1.tgz", - "integrity": "sha512-3+hgaa19jzCGLuSCbieeRsu5C2joKfYn8pY6JAuXFRVfF4IO+L7UPpFWNTeWT9pM7uhskvbPPd/oEOktCn317Q==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dev": true, - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/promzard": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", - "integrity": "sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw==", - "dev": true, - "dependencies": { - "read": "1" - } - }, - "node_modules/proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "dev": true - }, - "node_modules/protocols": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz", - "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==", - "dev": true - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", - "dev": true, - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", - "dev": true, - "dependencies": { - "mute-stream": "~0.0.4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/read-cmd-shim": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-3.0.1.tgz", - "integrity": "sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/read-package-json": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.2.tgz", - "integrity": "sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q==", - "dev": true, - "dependencies": { - "glob": "^8.0.1", - "json-parse-even-better-errors": "^2.3.1", - "normalize-package-data": "^4.0.0", - "npm-normalize-package-bin": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/read-package-json-fast": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", - "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", - "dev": true, - "dependencies": { - "json-parse-even-better-errors": "^2.3.0", - "npm-normalize-package-bin": "^1.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/read-package-json/node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", - "dev": true, - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/read-package-json/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/read-package-json/node_modules/normalize-package-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz", - "integrity": "sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==", - "dev": true, - "dependencies": { - "hosted-git-info": "^5.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/read-package-json/node_modules/npm-normalize-package-bin": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", - "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", - "dev": true, - "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", - "dev": true, - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/read-pkg/node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/read-pkg/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/read-pkg/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdir-scoped-modules": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", - "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "dev": true, - "dependencies": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" - } - }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.13.0.tgz", - "integrity": "sha512-HJwQtrXAc0AmyDohTJ/2c+Bx/sWPScJLlAUJ1kuD7rAkCro8Cr2SnVB2gVYBiSLxpgD2kZ24jbyXtG++GumrYQ==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz", - "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", - "dev": true, - "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dev": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/sort-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz", - "integrity": "sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==", - "dev": true, - "dependencies": { - "is-plain-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/sort-keys/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead" - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", - "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", - "dev": true - }, - "node_modules/split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.padend": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", - "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strong-log-transformer": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", - "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", - "dev": true, - "dependencies": { - "duplexer": "^0.1.1", - "minimist": "^1.2.0", - "through": "^2.3.4" - }, - "bin": { - "sl-log-transformer": "bin/sl-log-transformer.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", - "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar/node_modules/minipass": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.1.tgz", - "integrity": "sha512-V9esFpNbK0arbN3fm2sxDKqMYgIp7XtVdE4Esj+PE4Qaaxdg1wIw48ITQIOn1sc8xXSmUviVL3cyjMqPlrVkiA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/temp-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", - "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/treeverse": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/treeverse/-/treeverse-2.0.0.tgz", - "integrity": "sha512-N5gJCkLu1aXccpOTtqV6ddSEi6ZmGkh3hjmbu1IjcavJK4qyOVQmi0myQKM7z5jVGmD68SJoliaVrMmVObhj6A==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/tsconfig-paths": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.1.2.tgz", - "integrity": "sha512-uhxiMgnXQp1IR622dUXI+9Ehnws7i/y6xvpZB9IbUVOPy0muvdvgXeZOn88UcGPiT98Vp3rJPTa8bFoalZ3Qhw==", - "dev": true, - "dependencies": { - "json5": "^2.2.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", - "devOptional": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "dev": true, - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "dev": true, - "dependencies": { - "unique-slug": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", - "dev": true - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/upath": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", - "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", - "dev": true, - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/validate-npm-package-name": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", - "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", - "dev": true, - "dependencies": { - "builtins": "^5.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/vite": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.1.1.tgz", - "integrity": "sha512-LM9WWea8vsxhr782r9ntg+bhSFS06FJgCvvB0+8hf8UWtvaiDagKYWXndjfX6kGl74keHJUcpzrQliDXZlF5yg==", - "dev": true, - "dependencies": { - "esbuild": "^0.16.14", - "postcss": "^8.4.21", - "resolve": "^1.22.1", - "rollup": "^3.10.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "@types/node": ">= 14", - "less": "*", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vue": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.47.tgz", - "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", - "dependencies": { - "@vue/compiler-dom": "3.2.47", - "@vue/compiler-sfc": "3.2.47", - "@vue/runtime-dom": "3.2.47", - "@vue/server-renderer": "3.2.47", - "@vue/shared": "3.2.47" - } - }, - "node_modules/vue-demi": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", - "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", - "hasInstallScript": true, - "bin": { - "vue-demi-fix": "bin/vue-demi-fix.js", - "vue-demi-switch": "bin/vue-demi-switch.js" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "@vue/composition-api": "^1.0.0-rc.1", - "vue": "^3.0.0-0 || ^2.6.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } - } - }, - "node_modules/vue-eslint-parser": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.1.0.tgz", - "integrity": "sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==", - "dev": true, - "dependencies": { - "debug": "^4.3.4", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", - "esquery": "^1.4.0", - "lodash": "^4.17.21", - "semver": "^7.3.6" - }, - "engines": { - "node": "^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=6.0.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/vue-router": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.6.tgz", - "integrity": "sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==", - "dependencies": { - "@vue/devtools-api": "^6.4.5" - }, - "funding": { - "url": "https://github.com/sponsors/posva" - }, - "peerDependencies": { - "vue": "^3.2.0" - } - }, - "node_modules/vue-template-compiler": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", - "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", - "dev": true, - "dependencies": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, - "node_modules/vue-tsc": { - "version": "1.0.24", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.0.24.tgz", - "integrity": "sha512-mmU1s5SAqE1nByQAiQnao9oU4vX+mSdsgI8H57SfKH6UVzq/jP9+Dbi2GaV+0b4Cn361d2ln8m6xeU60ApiEXg==", - "dev": true, - "dependencies": { - "@volar/vue-language-core": "1.0.24", - "@volar/vue-typescript": "1.0.24" - }, - "bin": { - "vue-tsc": "bin/vue-tsc.js" - }, - "peerDependencies": { - "typescript": "*" - } - }, - "node_modules/walk-up-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-1.0.0.tgz", - "integrity": "sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==", - "dev": true - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/write-json-file": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-4.3.0.tgz", - "integrity": "sha512-PxiShnxf0IlnQuMYOPPhPkhExoCQuTUNPOa/2JWCYTmBquU9njyyDuwRKN26IZBlp4yn1nt+Agh2HOOBl+55HQ==", - "dev": true, - "dependencies": { - "detect-indent": "^6.0.0", - "graceful-fs": "^4.1.15", - "is-plain-obj": "^2.0.0", - "make-dir": "^3.0.0", - "sort-keys": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">=8.3" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/write-json-file/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/write-json-file/node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/write-pkg": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-4.0.0.tgz", - "integrity": "sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==", - "dev": true, - "dependencies": { - "sort-keys": "^2.0.0", - "type-fest": "^0.4.1", - "write-json-file": "^3.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/write-pkg/node_modules/detect-indent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/write-pkg/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/write-pkg/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/write-pkg/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/write-pkg/node_modules/sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", - "dev": true, - "dependencies": { - "is-plain-obj": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/write-pkg/node_modules/type-fest": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", - "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/write-pkg/node_modules/write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "node_modules/write-pkg/node_modules/write-json-file": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz", - "integrity": "sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==", - "dev": true, - "dependencies": { - "detect-indent": "^5.0.0", - "graceful-fs": "^4.1.15", - "make-dir": "^2.1.0", - "pify": "^4.0.1", - "sort-keys": "^2.0.0", - "write-file-atomic": "^2.4.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/xml-name-validator": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages/framework": { - "version": "0.0.0", - "dependencies": { - "pinia": "^2.0.28", - "vue": "^3.2.45", - "vue-router": "^4.1.6" - }, - "devDependencies": { - "@rushstack/eslint-patch": "^1.1.4", - "@types/node": "^18.11.12", - "@vitejs/plugin-vue": "^4.0.0", - "@vue/eslint-config-prettier": "^7.0.0", - "@vue/eslint-config-typescript": "^11.0.0", - "@vue/tsconfig": "^0.1.3", - "eslint": "^8.22.0", - "eslint-plugin-vue": "^9.3.0", - "npm-run-all": "^4.1.5", - "prettier": "^2.7.1", - "typescript": "~4.7.4", - "vite": "^4.0.0", - "vue-tsc": "^1.0.12" - } - }, - "packages/modules": { - "version": "0.0.0", - "dependencies": { - "pinia": "^2.0.28", - "vue": "^3.2.45", - "vue-router": "^4.1.6" - }, - "devDependencies": { - "@rushstack/eslint-patch": "^1.1.4", - "@types/node": "^18.11.12", - "@vitejs/plugin-vue": "^4.0.0", - "@vue/eslint-config-prettier": "^7.0.0", - "@vue/eslint-config-typescript": "^11.0.0", - "@vue/tsconfig": "^0.1.3", - "eslint": "^8.22.0", - "eslint-plugin-vue": "^9.3.0", - "npm-run-all": "^4.1.5", - "prettier": "^2.7.1", - "typescript": "~4.7.4", - "vite": "^4.0.0", - "vue-tsc": "^1.0.12" - } - } - } -} diff --git a/package.json b/package.json index a6dc5ab6..eb7b4d42 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,69 @@ { - "name": "dashboard", + "name": "framework", + "version": "0.0.0", "private": true, - "workspaces": [ - "packages/*" - ], + "target": "", + "scripts": { + "serve": "vite", + "build": "run-p type-check build-only", + "preview": "vite preview", + "build-only": "vite build", + "type-check": "vue-tsc --noEmit", + "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore" + }, + "dependencies": { + "@casl/ability": "^6.3.3", + "@casl/vue": "^2.2.1", + "@cosmjs/crypto": "^0.29.5", + "@cosmjs/encoding": "^0.29.5", + "@floating-ui/dom": "^1.2.0", + "@iconify/vue": "^4.1.0", + "@intlify/unplugin-vue-i18n": "^0.8.2", + "@osmonauts/lcd": "^0.8.0", + "@ping-pub/chain-registry-client": "^0.0.25", + "@vitejs/plugin-vue-jsx": "^3.0.0", + "@vueuse/core": "^9.12.0", + "@vueuse/math": "^9.12.0", + "apexcharts": "^3.37.1", + "axios": "^1.3.2", + "cross-fetch": "^3.1.5", + "dayjs": "^1.11.7", + "long": "^5.2.1", + "md-editor-v3": "^2.8.1", + "numeral": "^2.0.6", + "osmojs": "^14.0.0-rc.0", + "pinia": "^2.0.28", + "vite-plugin-vue-layouts": "^0.7.0", + "vite-plugin-vuetify": "^1.0.2", + "vue": "^3.2.45", + "vue-i18n": "^9.2.2", + "vue-router": "^4.1.6", + "vue3-apexcharts": "^1.4.1", + "vue3-perfect-scrollbar": "^1.6.1", + "vuetify": "3.0.6", + "webfontloader": "^1.6.28" + }, "devDependencies": { + "@osmonauts/telescope": "^0.88.2", + "@rushstack/eslint-patch": "^1.1.4", + "@types/marked": "^4.0.8", + "@types/node": "^18.11.12", + "@types/numeral": "^2.0.2", "@vitejs/plugin-vue": "^4.0.0", - "lerna": "^6.4.1" + "@vue/eslint-config-prettier": "^7.0.0", + "@vue/eslint-config-typescript": "^11.0.0", + "@vue/tsconfig": "^0.1.3", + "eslint": "^8.22.0", + "eslint-plugin-vue": "^9.3.0", + "npm-run-all": "^4.1.5", + "prettier": "^2.7.1", + "sass": "^1.58.0", + "typescript": "~4.9.5", + "unplugin-auto-import": "^0.13.0", + "unplugin-vue-components": "^0.23.0", + "unplugin-vue-define-options": "1.1.4", + "vite": "^4.0.0", + "vite-plugin-pages": "^0.28.0", + "vue-tsc": "^1.0.12" } } diff --git a/packages/codegen/.telescope.json b/packages/codegen/.telescope.json deleted file mode 100644 index 100bd5e4..00000000 --- a/packages/codegen/.telescope.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "protoDirs": [ - "./proto" - ], - "outPath": "./src", - "options": { - "aminoEncoding": { - "enabled": false - }, - "lcdClients": { - "enabled": true - }, - "rpcClients": { - "enabled": true - } - } -} \ No newline at end of file diff --git a/packages/codegen/dist/amino/amino.d.ts b/packages/codegen/dist/amino/amino.d.ts deleted file mode 100644 index cb0ff5c3..00000000 --- a/packages/codegen/dist/amino/amino.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/codegen/dist/amino/bundle.d.ts b/packages/codegen/dist/amino/bundle.d.ts deleted file mode 100644 index 67f7ba53..00000000 --- a/packages/codegen/dist/amino/bundle.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const amino: {}; diff --git a/packages/codegen/dist/confio/proofs.d.ts b/packages/codegen/dist/confio/proofs.d.ts deleted file mode 100644 index 492007ac..00000000 --- a/packages/codegen/dist/confio/proofs.d.ts +++ /dev/null @@ -1,439 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../helpers"; -export declare enum HashOp { - /** NO_HASH - 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 - ripemd160(sha256(x)) */ - BITCOIN = 5, - UNRECOGNIZED = -1 -} -export declare const HashOpSDKType: typeof HashOp; -export declare function hashOpFromJSON(object: any): HashOp; -export declare function hashOpToJSON(object: HashOp): string; -/** - * 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) - */ -export declare enum LengthOp { - /** NO_PREFIX - NO_PREFIX don't include any length info */ - NO_PREFIX = 0, - /** VAR_PROTO - VAR_PROTO uses protobuf (and go-amino) varint encoding of the length */ - VAR_PROTO = 1, - /** VAR_RLP - VAR_RLP uses rlp int encoding of the length */ - VAR_RLP = 2, - /** FIXED32_BIG - FIXED32_BIG uses big-endian encoding of the length as a 32 bit integer */ - FIXED32_BIG = 3, - /** FIXED32_LITTLE - FIXED32_LITTLE uses little-endian encoding of the length as a 32 bit integer */ - FIXED32_LITTLE = 4, - /** FIXED64_BIG - FIXED64_BIG uses big-endian encoding of the length as a 64 bit integer */ - FIXED64_BIG = 5, - /** FIXED64_LITTLE - FIXED64_LITTLE uses little-endian encoding of the length as a 64 bit integer */ - FIXED64_LITTLE = 6, - /** REQUIRE_32_BYTES - 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 - REQUIRE_64_BYTES is like NONE, but will fail if the input is not exactly 64 bytes (sha512 output) */ - REQUIRE_64_BYTES = 8, - UNRECOGNIZED = -1 -} -export declare const LengthOpSDKType: typeof LengthOp; -export declare function lengthOpFromJSON(object: any): LengthOp; -export declare function lengthOpToJSON(object: LengthOp): string; -/** - * 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. - */ -export interface ExistenceProof { - key: Uint8Array; - value: Uint8Array; - leaf?: LeafOp; - path: InnerOp[]; -} -/** - * 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. - */ -export interface ExistenceProofSDKType { - key: Uint8Array; - value: Uint8Array; - leaf?: LeafOpSDKType; - path: InnerOpSDKType[]; -} -/** - * 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. - */ -export interface NonExistenceProof { - /** TODO: remove this as unnecessary??? we prove a range */ - key: Uint8Array; - left?: ExistenceProof; - right?: 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. - */ -export interface NonExistenceProofSDKType { - key: Uint8Array; - left?: ExistenceProofSDKType; - right?: ExistenceProofSDKType; -} -/** CommitmentProof is either an ExistenceProof or a NonExistenceProof, or a Batch of such messages */ -export interface CommitmentProof { - exist?: ExistenceProof; - nonexist?: NonExistenceProof; - batch?: BatchProof; - compressed?: CompressedBatchProof; -} -/** CommitmentProof is either an ExistenceProof or a NonExistenceProof, or a Batch of such messages */ -export interface CommitmentProofSDKType { - exist?: ExistenceProofSDKType; - nonexist?: NonExistenceProofSDKType; - batch?: BatchProofSDKType; - compressed?: CompressedBatchProofSDKType; -} -/** - * 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) - */ -export interface LeafOp { - hash: HashOp; - prehashKey: HashOp; - prehashValue: HashOp; - length: LengthOp; - /** - * prefix is a fixed bytes that may optionally be included at the beginning to differentiate - * a leaf node from an inner node. - */ - prefix: Uint8Array; -} -/** - * 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) - */ -export interface LeafOpSDKType { - hash: HashOp; - prehash_key: HashOp; - prehash_value: HashOp; - length: LengthOp; - prefix: Uint8Array; -} -/** - * 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 - */ -export interface InnerOp { - hash: HashOp; - prefix: Uint8Array; - suffix: Uint8Array; -} -/** - * 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 - */ -export interface InnerOpSDKType { - hash: HashOp; - prefix: Uint8Array; - suffix: Uint8Array; -} -/** - * 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. - */ -export interface 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) - */ - leafSpec?: LeafOp; - innerSpec?: InnerSpec; - /** max_depth (if > 0) is the maximum number of InnerOps allowed (mainly for fixed-depth tries) */ - maxDepth: number; - /** min_depth (if > 0) is the minimum number of InnerOps allowed (mainly for fixed-depth tries) */ - minDepth: number; -} -/** - * 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. - */ -export interface ProofSpecSDKType { - leaf_spec?: LeafOpSDKType; - inner_spec?: InnerSpecSDKType; - max_depth: number; - min_depth: number; -} -/** - * 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) - */ -export interface 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) - */ - childOrder: number[]; - childSize: number; - minPrefixLength: number; - maxPrefixLength: number; - /** empty child is the prehash image that is used when one child is nil (eg. 20 bytes of 0) */ - emptyChild: Uint8Array; - /** hash is the algorithm that must be used for each InnerOp */ - hash: HashOp; -} -/** - * 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) - */ -export interface InnerSpecSDKType { - child_order: number[]; - child_size: number; - min_prefix_length: number; - max_prefix_length: number; - empty_child: Uint8Array; - hash: HashOp; -} -/** BatchProof is a group of multiple proof types than can be compressed */ -export interface BatchProof { - entries: BatchEntry[]; -} -/** BatchProof is a group of multiple proof types than can be compressed */ -export interface BatchProofSDKType { - entries: BatchEntrySDKType[]; -} -/** Use BatchEntry not CommitmentProof, to avoid recursion */ -export interface BatchEntry { - exist?: ExistenceProof; - nonexist?: NonExistenceProof; -} -/** Use BatchEntry not CommitmentProof, to avoid recursion */ -export interface BatchEntrySDKType { - exist?: ExistenceProofSDKType; - nonexist?: NonExistenceProofSDKType; -} -export interface CompressedBatchProof { - entries: CompressedBatchEntry[]; - lookupInners: InnerOp[]; -} -export interface CompressedBatchProofSDKType { - entries: CompressedBatchEntrySDKType[]; - lookup_inners: InnerOpSDKType[]; -} -/** Use BatchEntry not CommitmentProof, to avoid recursion */ -export interface CompressedBatchEntry { - exist?: CompressedExistenceProof; - nonexist?: CompressedNonExistenceProof; -} -/** Use BatchEntry not CommitmentProof, to avoid recursion */ -export interface CompressedBatchEntrySDKType { - exist?: CompressedExistenceProofSDKType; - nonexist?: CompressedNonExistenceProofSDKType; -} -export interface CompressedExistenceProof { - key: Uint8Array; - value: Uint8Array; - leaf?: LeafOp; - /** these are indexes into the lookup_inners table in CompressedBatchProof */ - path: number[]; -} -export interface CompressedExistenceProofSDKType { - key: Uint8Array; - value: Uint8Array; - leaf?: LeafOpSDKType; - path: number[]; -} -export interface CompressedNonExistenceProof { - /** TODO: remove this as unnecessary??? we prove a range */ - key: Uint8Array; - left?: CompressedExistenceProof; - right?: CompressedExistenceProof; -} -export interface CompressedNonExistenceProofSDKType { - key: Uint8Array; - left?: CompressedExistenceProofSDKType; - right?: CompressedExistenceProofSDKType; -} -export declare const ExistenceProof: { - encode(message: ExistenceProof, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ExistenceProof; - fromPartial(object: DeepPartial): ExistenceProof; -}; -export declare const NonExistenceProof: { - encode(message: NonExistenceProof, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): NonExistenceProof; - fromPartial(object: DeepPartial): NonExistenceProof; -}; -export declare const CommitmentProof: { - encode(message: CommitmentProof, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): CommitmentProof; - fromPartial(object: DeepPartial): CommitmentProof; -}; -export declare const LeafOp: { - encode(message: LeafOp, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): LeafOp; - fromPartial(object: DeepPartial): LeafOp; -}; -export declare const InnerOp: { - encode(message: InnerOp, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): InnerOp; - fromPartial(object: DeepPartial): InnerOp; -}; -export declare const ProofSpec: { - encode(message: ProofSpec, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ProofSpec; - fromPartial(object: DeepPartial): ProofSpec; -}; -export declare const InnerSpec: { - encode(message: InnerSpec, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): InnerSpec; - fromPartial(object: DeepPartial): InnerSpec; -}; -export declare const BatchProof: { - encode(message: BatchProof, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): BatchProof; - fromPartial(object: DeepPartial): BatchProof; -}; -export declare const BatchEntry: { - encode(message: BatchEntry, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): BatchEntry; - fromPartial(object: DeepPartial): BatchEntry; -}; -export declare const CompressedBatchProof: { - encode(message: CompressedBatchProof, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): CompressedBatchProof; - fromPartial(object: DeepPartial): CompressedBatchProof; -}; -export declare const CompressedBatchEntry: { - encode(message: CompressedBatchEntry, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): CompressedBatchEntry; - fromPartial(object: DeepPartial): CompressedBatchEntry; -}; -export declare const CompressedExistenceProof: { - encode(message: CompressedExistenceProof, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): CompressedExistenceProof; - fromPartial(object: DeepPartial): CompressedExistenceProof; -}; -export declare const CompressedNonExistenceProof: { - encode(message: CompressedNonExistenceProof, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): CompressedNonExistenceProof; - fromPartial(object: DeepPartial): CompressedNonExistenceProof; -}; diff --git a/packages/codegen/dist/cosmos/app/v1alpha1/config.d.ts b/packages/codegen/dist/cosmos/app/v1alpha1/config.d.ts deleted file mode 100644 index c5277666..00000000 --- a/packages/codegen/dist/cosmos/app/v1alpha1/config.d.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * 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. - */ -export interface Config { - /** modules are the module configurations for the app. */ - modules: ModuleConfig[]; -} -/** - * 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. - */ -export interface ConfigSDKType { - modules: ModuleConfigSDKType[]; -} -/** ModuleConfig is a module configuration for an app. */ -export interface 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. - */ - name: string; - /** - * config is the config object for the module. Module config messages should - * define a ModuleDescriptor using the cosmos.app.v1alpha1.is_module extension. - */ - config?: Any; -} -/** ModuleConfig is a module configuration for an app. */ -export interface ModuleConfigSDKType { - name: string; - config?: AnySDKType; -} -export declare const Config: { - encode(message: Config, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Config; - fromPartial(object: DeepPartial): Config; -}; -export declare const ModuleConfig: { - encode(message: ModuleConfig, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ModuleConfig; - fromPartial(object: DeepPartial): ModuleConfig; -}; diff --git a/packages/codegen/dist/cosmos/app/v1alpha1/module.d.ts b/packages/codegen/dist/cosmos/app/v1alpha1/module.d.ts deleted file mode 100644 index 0aea08c5..00000000 --- a/packages/codegen/dist/cosmos/app/v1alpha1/module.d.ts +++ /dev/null @@ -1,117 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** ModuleDescriptor describes an app module. */ -export interface ModuleDescriptor { - /** - * go_import names the package that should be imported by an app to load the - * module in the runtime module registry. Either go_import must be defined here - * or the go_package option must be defined at the file level to indicate - * to users where to location the module implementation. go_import takes - * precedence over go_package when both are defined. - */ - goImport: string; - /** - * 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. - */ - usePackage: PackageReference[]; - /** - * 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. - */ - canMigrateFrom: MigrateFromInfo[]; -} -/** ModuleDescriptor describes an app module. */ -export interface ModuleDescriptorSDKType { - go_import: string; - use_package: PackageReferenceSDKType[]; - can_migrate_from: MigrateFromInfoSDKType[]; -} -/** PackageReference is a reference to a protobuf package used by a module. */ -export interface PackageReference { - /** name is the fully-qualified name of the package. */ - name: string; - /** - * 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 fields containing the - * test "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 - */ - revision: number; -} -/** PackageReference is a reference to a protobuf package used by a module. */ -export interface PackageReferenceSDKType { - name: string; - revision: number; -} -/** - * MigrateFromInfo is information on a module version that a newer module - * can migrate from. - */ -export interface MigrateFromInfo { - /** - * module is the fully-qualified protobuf name of the module config object - * for the previous module version, ex: "cosmos.group.module.v1.Module". - */ - module: string; -} -/** - * MigrateFromInfo is information on a module version that a newer module - * can migrate from. - */ -export interface MigrateFromInfoSDKType { - module: string; -} -export declare const ModuleDescriptor: { - encode(message: ModuleDescriptor, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ModuleDescriptor; - fromPartial(object: DeepPartial): ModuleDescriptor; -}; -export declare const PackageReference: { - encode(message: PackageReference, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PackageReference; - fromPartial(object: DeepPartial): PackageReference; -}; -export declare const MigrateFromInfo: { - encode(message: MigrateFromInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MigrateFromInfo; - fromPartial(object: DeepPartial): MigrateFromInfo; -}; diff --git a/packages/codegen/dist/cosmos/app/v1alpha1/query.d.ts b/packages/codegen/dist/cosmos/app/v1alpha1/query.d.ts deleted file mode 100644 index 43d29bc1..00000000 --- a/packages/codegen/dist/cosmos/app/v1alpha1/query.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Config, ConfigSDKType } from "./config"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** QueryConfigRequest is the Query/Config request type. */ -export interface QueryConfigRequest { -} -/** QueryConfigRequest is the Query/Config request type. */ -export interface QueryConfigRequestSDKType { -} -/** QueryConfigRequest is the Query/Config response type. */ -export interface QueryConfigResponse { - /** config is the current app config. */ - config?: Config; -} -/** QueryConfigRequest is the Query/Config response type. */ -export interface QueryConfigResponseSDKType { - config?: ConfigSDKType; -} -export declare const QueryConfigRequest: { - encode(_: QueryConfigRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConfigRequest; - fromPartial(_: DeepPartial): QueryConfigRequest; -}; -export declare const QueryConfigResponse: { - encode(message: QueryConfigResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConfigResponse; - fromPartial(object: DeepPartial): QueryConfigResponse; -}; diff --git a/packages/codegen/dist/cosmos/app/v1alpha1/query.rpc.Query.d.ts b/packages/codegen/dist/cosmos/app/v1alpha1/query.rpc.Query.d.ts deleted file mode 100644 index 5022d334..00000000 --- a/packages/codegen/dist/cosmos/app/v1alpha1/query.rpc.Query.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { QueryClient } from "@cosmjs/stargate"; -import { QueryConfigRequest, QueryConfigResponse } from "./query"; -/** Query is the app module query service. */ -export interface Query { - /** Config returns the current app config. */ - config(request?: QueryConfigRequest): Promise; -} -export declare class QueryClientImpl implements Query { - private readonly rpc; - constructor(rpc: Rpc); - config(request?: QueryConfigRequest): Promise; -} -export declare const createRpcQueryExtension: (base: QueryClient) => { - config(request?: QueryConfigRequest): Promise; -}; diff --git a/packages/codegen/dist/cosmos/auth/v1beta1/auth.d.ts b/packages/codegen/dist/cosmos/auth/v1beta1/auth.d.ts deleted file mode 100644 index b9357161..00000000 --- a/packages/codegen/dist/cosmos/auth/v1beta1/auth.d.ts +++ /dev/null @@ -1,69 +0,0 @@ -/// -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * 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). - */ -export interface BaseAccount { - address: string; - pubKey?: Any; - accountNumber: Long; - sequence: Long; -} -/** - * 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). - */ -export interface BaseAccountSDKType { - address: string; - pub_key?: AnySDKType; - account_number: Long; - sequence: Long; -} -/** ModuleAccount defines an account for modules that holds coins on a pool. */ -export interface ModuleAccount { - baseAccount?: BaseAccount; - name: string; - permissions: string[]; -} -/** ModuleAccount defines an account for modules that holds coins on a pool. */ -export interface ModuleAccountSDKType { - base_account?: BaseAccountSDKType; - name: string; - permissions: string[]; -} -/** Params defines the parameters for the auth module. */ -export interface Params { - maxMemoCharacters: Long; - txSigLimit: Long; - txSizeCostPerByte: Long; - sigVerifyCostEd25519: Long; - sigVerifyCostSecp256k1: Long; -} -/** Params defines the parameters for the auth module. */ -export interface ParamsSDKType { - max_memo_characters: Long; - tx_sig_limit: Long; - tx_size_cost_per_byte: Long; - sig_verify_cost_ed25519: Long; - sig_verify_cost_secp256k1: Long; -} -export declare const BaseAccount: { - encode(message: BaseAccount, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): BaseAccount; - fromPartial(object: DeepPartial): BaseAccount; -}; -export declare const ModuleAccount: { - encode(message: ModuleAccount, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ModuleAccount; - fromPartial(object: DeepPartial): ModuleAccount; -}; -export declare const Params: { - encode(message: Params, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Params; - fromPartial(object: DeepPartial): Params; -}; diff --git a/packages/codegen/dist/cosmos/auth/v1beta1/genesis.d.ts b/packages/codegen/dist/cosmos/auth/v1beta1/genesis.d.ts deleted file mode 100644 index 570ed542..00000000 --- a/packages/codegen/dist/cosmos/auth/v1beta1/genesis.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Params, ParamsSDKType } from "./auth"; -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** GenesisState defines the auth module's genesis state. */ -export interface GenesisState { - /** params defines all the paramaters of the module. */ - params?: Params; - /** accounts are the accounts present at genesis. */ - accounts: Any[]; -} -/** GenesisState defines the auth module's genesis state. */ -export interface GenesisStateSDKType { - params?: ParamsSDKType; - accounts: AnySDKType[]; -} -export declare const GenesisState: { - encode(message: GenesisState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState; - fromPartial(object: DeepPartial): GenesisState; -}; diff --git a/packages/codegen/dist/cosmos/auth/v1beta1/query.d.ts b/packages/codegen/dist/cosmos/auth/v1beta1/query.d.ts deleted file mode 100644 index bfa4ddb4..00000000 --- a/packages/codegen/dist/cosmos/auth/v1beta1/query.d.ts +++ /dev/null @@ -1,205 +0,0 @@ -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import { Params, ParamsSDKType } from "./auth"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * QueryAccountsRequest is the request type for the Query/Accounts RPC method. - * - * Since: cosmos-sdk 0.43 - */ -export interface QueryAccountsRequest { - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** - * QueryAccountsRequest is the request type for the Query/Accounts RPC method. - * - * Since: cosmos-sdk 0.43 - */ -export interface QueryAccountsRequestSDKType { - pagination?: PageRequestSDKType; -} -/** - * QueryAccountsResponse is the response type for the Query/Accounts RPC method. - * - * Since: cosmos-sdk 0.43 - */ -export interface QueryAccountsResponse { - /** accounts are the existing accounts */ - accounts: Any[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** - * QueryAccountsResponse is the response type for the Query/Accounts RPC method. - * - * Since: cosmos-sdk 0.43 - */ -export interface QueryAccountsResponseSDKType { - accounts: AnySDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryAccountRequest is the request type for the Query/Account RPC method. */ -export interface QueryAccountRequest { - /** address defines the address to query for. */ - address: string; -} -/** QueryAccountRequest is the request type for the Query/Account RPC method. */ -export interface QueryAccountRequestSDKType { - address: string; -} -/** QueryModuleAccountsRequest is the request type for the Query/ModuleAccounts RPC method. */ -export interface QueryModuleAccountsRequest { -} -/** QueryModuleAccountsRequest is the request type for the Query/ModuleAccounts RPC method. */ -export interface QueryModuleAccountsRequestSDKType { -} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ -export interface QueryParamsResponse { - /** params defines the parameters of the module. */ - params?: Params; -} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ -export interface QueryParamsResponseSDKType { - params?: ParamsSDKType; -} -/** QueryAccountResponse is the response type for the Query/Account RPC method. */ -export interface QueryAccountResponse { - /** account defines the account of the corresponding address. */ - account?: Any; -} -/** QueryAccountResponse is the response type for the Query/Account RPC method. */ -export interface QueryAccountResponseSDKType { - account?: AnySDKType; -} -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ -export interface QueryParamsRequest { -} -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ -export interface QueryParamsRequestSDKType { -} -/** QueryModuleAccountsResponse is the response type for the Query/ModuleAccounts RPC method. */ -export interface QueryModuleAccountsResponse { - accounts: Any[]; -} -/** QueryModuleAccountsResponse is the response type for the Query/ModuleAccounts RPC method. */ -export interface QueryModuleAccountsResponseSDKType { - accounts: AnySDKType[]; -} -/** Bech32PrefixRequest is the request type for Bech32Prefix rpc method */ -export interface Bech32PrefixRequest { -} -/** Bech32PrefixRequest is the request type for Bech32Prefix rpc method */ -export interface Bech32PrefixRequestSDKType { -} -/** Bech32PrefixResponse is the response type for Bech32Prefix rpc method */ -export interface Bech32PrefixResponse { - bech32Prefix: string; -} -/** Bech32PrefixResponse is the response type for Bech32Prefix rpc method */ -export interface Bech32PrefixResponseSDKType { - bech32_prefix: string; -} -/** AddressBytesToStringRequest is the request type for AddressString rpc method */ -export interface AddressBytesToStringRequest { - addressBytes: Uint8Array; -} -/** AddressBytesToStringRequest is the request type for AddressString rpc method */ -export interface AddressBytesToStringRequestSDKType { - address_bytes: Uint8Array; -} -/** AddressBytesToStringResponse is the response type for AddressString rpc method */ -export interface AddressBytesToStringResponse { - addressString: string; -} -/** AddressBytesToStringResponse is the response type for AddressString rpc method */ -export interface AddressBytesToStringResponseSDKType { - address_string: string; -} -/** AddressStringToBytesRequest is the request type for AccountBytes rpc method */ -export interface AddressStringToBytesRequest { - addressString: string; -} -/** AddressStringToBytesRequest is the request type for AccountBytes rpc method */ -export interface AddressStringToBytesRequestSDKType { - address_string: string; -} -/** AddressStringToBytesResponse is the response type for AddressBytes rpc method */ -export interface AddressStringToBytesResponse { - addressBytes: Uint8Array; -} -/** AddressStringToBytesResponse is the response type for AddressBytes rpc method */ -export interface AddressStringToBytesResponseSDKType { - address_bytes: Uint8Array; -} -export declare const QueryAccountsRequest: { - encode(message: QueryAccountsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAccountsRequest; - fromPartial(object: DeepPartial): QueryAccountsRequest; -}; -export declare const QueryAccountsResponse: { - encode(message: QueryAccountsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAccountsResponse; - fromPartial(object: DeepPartial): QueryAccountsResponse; -}; -export declare const QueryAccountRequest: { - encode(message: QueryAccountRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAccountRequest; - fromPartial(object: DeepPartial): QueryAccountRequest; -}; -export declare const QueryModuleAccountsRequest: { - encode(_: QueryModuleAccountsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryModuleAccountsRequest; - fromPartial(_: DeepPartial): QueryModuleAccountsRequest; -}; -export declare const QueryParamsResponse: { - encode(message: QueryParamsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse; - fromPartial(object: DeepPartial): QueryParamsResponse; -}; -export declare const QueryAccountResponse: { - encode(message: QueryAccountResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAccountResponse; - fromPartial(object: DeepPartial): QueryAccountResponse; -}; -export declare const QueryParamsRequest: { - encode(_: QueryParamsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest; - fromPartial(_: DeepPartial): QueryParamsRequest; -}; -export declare const QueryModuleAccountsResponse: { - encode(message: QueryModuleAccountsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryModuleAccountsResponse; - fromPartial(object: DeepPartial): QueryModuleAccountsResponse; -}; -export declare const Bech32PrefixRequest: { - encode(_: Bech32PrefixRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Bech32PrefixRequest; - fromPartial(_: DeepPartial): Bech32PrefixRequest; -}; -export declare const Bech32PrefixResponse: { - encode(message: Bech32PrefixResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Bech32PrefixResponse; - fromPartial(object: DeepPartial): Bech32PrefixResponse; -}; -export declare const AddressBytesToStringRequest: { - encode(message: AddressBytesToStringRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): AddressBytesToStringRequest; - fromPartial(object: DeepPartial): AddressBytesToStringRequest; -}; -export declare const AddressBytesToStringResponse: { - encode(message: AddressBytesToStringResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): AddressBytesToStringResponse; - fromPartial(object: DeepPartial): AddressBytesToStringResponse; -}; -export declare const AddressStringToBytesRequest: { - encode(message: AddressStringToBytesRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): AddressStringToBytesRequest; - fromPartial(object: DeepPartial): AddressStringToBytesRequest; -}; -export declare const AddressStringToBytesResponse: { - encode(message: AddressStringToBytesResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): AddressStringToBytesResponse; - fromPartial(object: DeepPartial): AddressStringToBytesResponse; -}; diff --git a/packages/codegen/dist/cosmos/auth/v1beta1/query.lcd.d.ts b/packages/codegen/dist/cosmos/auth/v1beta1/query.lcd.d.ts deleted file mode 100644 index 810e56e8..00000000 --- a/packages/codegen/dist/cosmos/auth/v1beta1/query.lcd.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { QueryAccountsRequest, QueryAccountsResponseSDKType, QueryAccountRequest, QueryAccountResponseSDKType, QueryParamsRequest, QueryParamsResponseSDKType, QueryModuleAccountsRequest, QueryModuleAccountsResponseSDKType, Bech32PrefixRequest, Bech32PrefixResponseSDKType, AddressBytesToStringRequest, AddressBytesToStringResponseSDKType, AddressStringToBytesRequest, AddressStringToBytesResponseSDKType } from "./query"; -export declare class LCDQueryClient { - req: LCDClient; - constructor({ requestClient }: { - requestClient: LCDClient; - }); - accounts(params?: QueryAccountsRequest): Promise; - account(params: QueryAccountRequest): Promise; - params(_params?: QueryParamsRequest): Promise; - moduleAccounts(_params?: QueryModuleAccountsRequest): Promise; - bech32Prefix(_params?: Bech32PrefixRequest): Promise; - addressBytesToString(params: AddressBytesToStringRequest): Promise; - addressStringToBytes(params: AddressStringToBytesRequest): Promise; -} diff --git a/packages/codegen/dist/cosmos/auth/v1beta1/query.rpc.Query.d.ts b/packages/codegen/dist/cosmos/auth/v1beta1/query.rpc.Query.d.ts deleted file mode 100644 index 6e3b8d77..00000000 --- a/packages/codegen/dist/cosmos/auth/v1beta1/query.rpc.Query.d.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { QueryClient } from "@cosmjs/stargate"; -import { QueryAccountsRequest, QueryAccountsResponse, QueryAccountRequest, QueryAccountResponse, QueryParamsRequest, QueryParamsResponse, QueryModuleAccountsRequest, QueryModuleAccountsResponse, Bech32PrefixRequest, Bech32PrefixResponse, AddressBytesToStringRequest, AddressBytesToStringResponse, AddressStringToBytesRequest, AddressStringToBytesResponse } from "./query"; -/** Query defines the gRPC querier service. */ -export interface Query { - /** - * Accounts returns all the existing accounts - * - * Since: cosmos-sdk 0.43 - */ - accounts(request?: QueryAccountsRequest): Promise; - /** Account returns account details based on address. */ - account(request: QueryAccountRequest): Promise; - /** Params queries all parameters. */ - params(request?: QueryParamsRequest): Promise; - /** ModuleAccounts returns all the existing module accounts. */ - moduleAccounts(request?: QueryModuleAccountsRequest): Promise; - /** Bech32 queries bech32Prefix */ - bech32Prefix(request?: Bech32PrefixRequest): Promise; - /** AddressBytesToString converts Account Address bytes to string */ - addressBytesToString(request: AddressBytesToStringRequest): Promise; - /** AddressStringToBytes converts Address string to bytes */ - addressStringToBytes(request: AddressStringToBytesRequest): Promise; -} -export declare class QueryClientImpl implements Query { - private readonly rpc; - constructor(rpc: Rpc); - accounts(request?: QueryAccountsRequest): Promise; - account(request: QueryAccountRequest): Promise; - params(request?: QueryParamsRequest): Promise; - moduleAccounts(request?: QueryModuleAccountsRequest): Promise; - bech32Prefix(request?: Bech32PrefixRequest): Promise; - addressBytesToString(request: AddressBytesToStringRequest): Promise; - addressStringToBytes(request: AddressStringToBytesRequest): Promise; -} -export declare const createRpcQueryExtension: (base: QueryClient) => { - accounts(request?: QueryAccountsRequest): Promise; - account(request: QueryAccountRequest): Promise; - params(request?: QueryParamsRequest): Promise; - moduleAccounts(request?: QueryModuleAccountsRequest): Promise; - bech32Prefix(request?: Bech32PrefixRequest): Promise; - addressBytesToString(request: AddressBytesToStringRequest): Promise; - addressStringToBytes(request: AddressStringToBytesRequest): Promise; -}; diff --git a/packages/codegen/dist/cosmos/authz/v1beta1/authz.d.ts b/packages/codegen/dist/cosmos/authz/v1beta1/authz.d.ts deleted file mode 100644 index 532dd755..00000000 --- a/packages/codegen/dist/cosmos/authz/v1beta1/authz.d.ts +++ /dev/null @@ -1,88 +0,0 @@ -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * GenericAuthorization gives the grantee unrestricted permissions to execute - * the provided method on behalf of the granter's account. - */ -export interface GenericAuthorization { - /** Msg, identified by it's type URL, to grant unrestricted permissions to execute */ - msg: string; -} -/** - * GenericAuthorization gives the grantee unrestricted permissions to execute - * the provided method on behalf of the granter's account. - */ -export interface GenericAuthorizationSDKType { - msg: string; -} -/** - * Grant gives permissions to execute - * the provide method with expiration time. - */ -export interface Grant { - authorization?: Any; - /** - * 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) - */ - expiration?: Date; -} -/** - * Grant gives permissions to execute - * the provide method with expiration time. - */ -export interface GrantSDKType { - authorization?: AnySDKType; - expiration?: Date; -} -/** - * GrantAuthorization extends a grant with both the addresses of the grantee and granter. - * It is used in genesis.proto and query.proto - */ -export interface GrantAuthorization { - granter: string; - grantee: string; - authorization?: Any; - expiration?: Date; -} -/** - * GrantAuthorization extends a grant with both the addresses of the grantee and granter. - * It is used in genesis.proto and query.proto - */ -export interface GrantAuthorizationSDKType { - granter: string; - grantee: string; - authorization?: AnySDKType; - expiration?: Date; -} -/** GrantQueueItem contains the list of TypeURL of a sdk.Msg. */ -export interface GrantQueueItem { - /** msg_type_urls contains the list of TypeURL of a sdk.Msg. */ - msgTypeUrls: string[]; -} -/** GrantQueueItem contains the list of TypeURL of a sdk.Msg. */ -export interface GrantQueueItemSDKType { - msg_type_urls: string[]; -} -export declare const GenericAuthorization: { - encode(message: GenericAuthorization, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenericAuthorization; - fromPartial(object: DeepPartial): GenericAuthorization; -}; -export declare const Grant: { - encode(message: Grant, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Grant; - fromPartial(object: DeepPartial): Grant; -}; -export declare const GrantAuthorization: { - encode(message: GrantAuthorization, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GrantAuthorization; - fromPartial(object: DeepPartial): GrantAuthorization; -}; -export declare const GrantQueueItem: { - encode(message: GrantQueueItem, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GrantQueueItem; - fromPartial(object: DeepPartial): GrantQueueItem; -}; diff --git a/packages/codegen/dist/cosmos/authz/v1beta1/event.d.ts b/packages/codegen/dist/cosmos/authz/v1beta1/event.d.ts deleted file mode 100644 index 9bac8906..00000000 --- a/packages/codegen/dist/cosmos/authz/v1beta1/event.d.ts +++ /dev/null @@ -1,42 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** EventGrant is emitted on Msg/Grant */ -export interface EventGrant { - /** Msg type URL for which an autorization is granted */ - msgTypeUrl: string; - /** Granter account address */ - granter: string; - /** Grantee account address */ - grantee: string; -} -/** EventGrant is emitted on Msg/Grant */ -export interface EventGrantSDKType { - msg_type_url: string; - granter: string; - grantee: string; -} -/** EventRevoke is emitted on Msg/Revoke */ -export interface EventRevoke { - /** Msg type URL for which an autorization is revoked */ - msgTypeUrl: string; - /** Granter account address */ - granter: string; - /** Grantee account address */ - grantee: string; -} -/** EventRevoke is emitted on Msg/Revoke */ -export interface EventRevokeSDKType { - msg_type_url: string; - granter: string; - grantee: string; -} -export declare const EventGrant: { - encode(message: EventGrant, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): EventGrant; - fromPartial(object: DeepPartial): EventGrant; -}; -export declare const EventRevoke: { - encode(message: EventRevoke, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): EventRevoke; - fromPartial(object: DeepPartial): EventRevoke; -}; diff --git a/packages/codegen/dist/cosmos/authz/v1beta1/genesis.d.ts b/packages/codegen/dist/cosmos/authz/v1beta1/genesis.d.ts deleted file mode 100644 index c17384ee..00000000 --- a/packages/codegen/dist/cosmos/authz/v1beta1/genesis.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { GrantAuthorization, GrantAuthorizationSDKType } from "./authz"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** GenesisState defines the authz module's genesis state. */ -export interface GenesisState { - authorization: GrantAuthorization[]; -} -/** GenesisState defines the authz module's genesis state. */ -export interface GenesisStateSDKType { - authorization: GrantAuthorizationSDKType[]; -} -export declare const GenesisState: { - encode(message: GenesisState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState; - fromPartial(object: DeepPartial): GenesisState; -}; diff --git a/packages/codegen/dist/cosmos/authz/v1beta1/query.d.ts b/packages/codegen/dist/cosmos/authz/v1beta1/query.d.ts deleted file mode 100644 index 8d93cef8..00000000 --- a/packages/codegen/dist/cosmos/authz/v1beta1/query.d.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { Grant, GrantSDKType, GrantAuthorization, GrantAuthorizationSDKType } from "./authz"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** QueryGrantsRequest is the request type for the Query/Grants RPC method. */ -export interface QueryGrantsRequest { - granter: string; - grantee: string; - /** Optional, msg_type_url, when set, will query only grants matching given msg type. */ - msgTypeUrl: string; - /** pagination defines an pagination for the request. */ - pagination?: PageRequest; -} -/** QueryGrantsRequest is the request type for the Query/Grants RPC method. */ -export interface QueryGrantsRequestSDKType { - granter: string; - grantee: string; - msg_type_url: string; - pagination?: PageRequestSDKType; -} -/** QueryGrantsResponse is the response type for the Query/Authorizations RPC method. */ -export interface QueryGrantsResponse { - /** authorizations is a list of grants granted for grantee by granter. */ - grants: Grant[]; - /** pagination defines an pagination for the response. */ - pagination?: PageResponse; -} -/** QueryGrantsResponse is the response type for the Query/Authorizations RPC method. */ -export interface QueryGrantsResponseSDKType { - grants: GrantSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryGranterGrantsRequest is the request type for the Query/GranterGrants RPC method. */ -export interface QueryGranterGrantsRequest { - granter: string; - /** pagination defines an pagination for the request. */ - pagination?: PageRequest; -} -/** QueryGranterGrantsRequest is the request type for the Query/GranterGrants RPC method. */ -export interface QueryGranterGrantsRequestSDKType { - granter: string; - pagination?: PageRequestSDKType; -} -/** QueryGranterGrantsResponse is the response type for the Query/GranterGrants RPC method. */ -export interface QueryGranterGrantsResponse { - /** grants is a list of grants granted by the granter. */ - grants: GrantAuthorization[]; - /** pagination defines an pagination for the response. */ - pagination?: PageResponse; -} -/** QueryGranterGrantsResponse is the response type for the Query/GranterGrants RPC method. */ -export interface QueryGranterGrantsResponseSDKType { - grants: GrantAuthorizationSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryGranteeGrantsRequest is the request type for the Query/IssuedGrants RPC method. */ -export interface QueryGranteeGrantsRequest { - grantee: string; - /** pagination defines an pagination for the request. */ - pagination?: PageRequest; -} -/** QueryGranteeGrantsRequest is the request type for the Query/IssuedGrants RPC method. */ -export interface QueryGranteeGrantsRequestSDKType { - grantee: string; - pagination?: PageRequestSDKType; -} -/** QueryGranteeGrantsResponse is the response type for the Query/GranteeGrants RPC method. */ -export interface QueryGranteeGrantsResponse { - /** grants is a list of grants granted to the grantee. */ - grants: GrantAuthorization[]; - /** pagination defines an pagination for the response. */ - pagination?: PageResponse; -} -/** QueryGranteeGrantsResponse is the response type for the Query/GranteeGrants RPC method. */ -export interface QueryGranteeGrantsResponseSDKType { - grants: GrantAuthorizationSDKType[]; - pagination?: PageResponseSDKType; -} -export declare const QueryGrantsRequest: { - encode(message: QueryGrantsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGrantsRequest; - fromPartial(object: DeepPartial): QueryGrantsRequest; -}; -export declare const QueryGrantsResponse: { - encode(message: QueryGrantsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGrantsResponse; - fromPartial(object: DeepPartial): QueryGrantsResponse; -}; -export declare const QueryGranterGrantsRequest: { - encode(message: QueryGranterGrantsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGranterGrantsRequest; - fromPartial(object: DeepPartial): QueryGranterGrantsRequest; -}; -export declare const QueryGranterGrantsResponse: { - encode(message: QueryGranterGrantsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGranterGrantsResponse; - fromPartial(object: DeepPartial): QueryGranterGrantsResponse; -}; -export declare const QueryGranteeGrantsRequest: { - encode(message: QueryGranteeGrantsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGranteeGrantsRequest; - fromPartial(object: DeepPartial): QueryGranteeGrantsRequest; -}; -export declare const QueryGranteeGrantsResponse: { - encode(message: QueryGranteeGrantsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGranteeGrantsResponse; - fromPartial(object: DeepPartial): QueryGranteeGrantsResponse; -}; diff --git a/packages/codegen/dist/cosmos/authz/v1beta1/query.lcd.d.ts b/packages/codegen/dist/cosmos/authz/v1beta1/query.lcd.d.ts deleted file mode 100644 index 7e4f0a08..00000000 --- a/packages/codegen/dist/cosmos/authz/v1beta1/query.lcd.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { QueryGrantsRequest, QueryGrantsResponseSDKType, QueryGranterGrantsRequest, QueryGranterGrantsResponseSDKType, QueryGranteeGrantsRequest, QueryGranteeGrantsResponseSDKType } from "./query"; -export declare class LCDQueryClient { - req: LCDClient; - constructor({ requestClient }: { - requestClient: LCDClient; - }); - grants(params: QueryGrantsRequest): Promise; - granterGrants(params: QueryGranterGrantsRequest): Promise; - granteeGrants(params: QueryGranteeGrantsRequest): Promise; -} diff --git a/packages/codegen/dist/cosmos/authz/v1beta1/query.rpc.Query.d.ts b/packages/codegen/dist/cosmos/authz/v1beta1/query.rpc.Query.d.ts deleted file mode 100644 index d7f1381d..00000000 --- a/packages/codegen/dist/cosmos/authz/v1beta1/query.rpc.Query.d.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { QueryClient } from "@cosmjs/stargate"; -import { QueryGrantsRequest, QueryGrantsResponse, QueryGranterGrantsRequest, QueryGranterGrantsResponse, QueryGranteeGrantsRequest, QueryGranteeGrantsResponse } from "./query"; -/** Query defines the gRPC querier service. */ -export interface Query { - /** Returns list of `Authorization`, granted to the grantee by the granter. */ - grants(request: QueryGrantsRequest): Promise; - /** - * GranterGrants returns list of `GrantAuthorization`, granted by granter. - * - * Since: cosmos-sdk 0.46 - */ - granterGrants(request: QueryGranterGrantsRequest): Promise; - /** - * GranteeGrants returns a list of `GrantAuthorization` by grantee. - * - * Since: cosmos-sdk 0.46 - */ - granteeGrants(request: QueryGranteeGrantsRequest): Promise; -} -export declare class QueryClientImpl implements Query { - private readonly rpc; - constructor(rpc: Rpc); - grants(request: QueryGrantsRequest): Promise; - granterGrants(request: QueryGranterGrantsRequest): Promise; - granteeGrants(request: QueryGranteeGrantsRequest): Promise; -} -export declare const createRpcQueryExtension: (base: QueryClient) => { - grants(request: QueryGrantsRequest): Promise; - granterGrants(request: QueryGranterGrantsRequest): Promise; - granteeGrants(request: QueryGranteeGrantsRequest): Promise; -}; diff --git a/packages/codegen/dist/cosmos/authz/v1beta1/tx.d.ts b/packages/codegen/dist/cosmos/authz/v1beta1/tx.d.ts deleted file mode 100644 index a5fc1f48..00000000 --- a/packages/codegen/dist/cosmos/authz/v1beta1/tx.d.ts +++ /dev/null @@ -1,113 +0,0 @@ -import { Grant, GrantSDKType } from "./authz"; -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * MsgGrant is a request type for Grant method. It declares authorization to the grantee - * on behalf of the granter with the provided expiration time. - */ -export interface MsgGrant { - granter: string; - grantee: string; - grant?: Grant; -} -/** - * MsgGrant is a request type for Grant method. It declares authorization to the grantee - * on behalf of the granter with the provided expiration time. - */ -export interface MsgGrantSDKType { - granter: string; - grantee: string; - grant?: GrantSDKType; -} -/** MsgExecResponse defines the Msg/MsgExecResponse response type. */ -export interface MsgExecResponse { - results: Uint8Array[]; -} -/** MsgExecResponse defines the Msg/MsgExecResponse response type. */ -export interface MsgExecResponseSDKType { - results: Uint8Array[]; -} -/** - * 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. - */ -export interface MsgExec { - grantee: string; - /** - * Authorization Msg requests to execute. Each msg must implement Authorization interface - * The x/authz will try to find a grant matching (msg.signers[0], grantee, MsgTypeURL(msg)) - * triple and validate it. - */ - msgs: Any[]; -} -/** - * 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. - */ -export interface MsgExecSDKType { - grantee: string; - msgs: AnySDKType[]; -} -/** MsgGrantResponse defines the Msg/MsgGrant response type. */ -export interface MsgGrantResponse { -} -/** MsgGrantResponse defines the Msg/MsgGrant response type. */ -export interface MsgGrantResponseSDKType { -} -/** - * MsgRevoke revokes any authorization with the provided sdk.Msg type on the - * granter's account with that has been granted to the grantee. - */ -export interface MsgRevoke { - granter: string; - grantee: string; - msgTypeUrl: string; -} -/** - * MsgRevoke revokes any authorization with the provided sdk.Msg type on the - * granter's account with that has been granted to the grantee. - */ -export interface MsgRevokeSDKType { - granter: string; - grantee: string; - msg_type_url: string; -} -/** MsgRevokeResponse defines the Msg/MsgRevokeResponse response type. */ -export interface MsgRevokeResponse { -} -/** MsgRevokeResponse defines the Msg/MsgRevokeResponse response type. */ -export interface MsgRevokeResponseSDKType { -} -export declare const MsgGrant: { - encode(message: MsgGrant, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgGrant; - fromPartial(object: DeepPartial): MsgGrant; -}; -export declare const MsgExecResponse: { - encode(message: MsgExecResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgExecResponse; - fromPartial(object: DeepPartial): MsgExecResponse; -}; -export declare const MsgExec: { - encode(message: MsgExec, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgExec; - fromPartial(object: DeepPartial): MsgExec; -}; -export declare const MsgGrantResponse: { - encode(_: MsgGrantResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgGrantResponse; - fromPartial(_: DeepPartial): MsgGrantResponse; -}; -export declare const MsgRevoke: { - encode(message: MsgRevoke, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgRevoke; - fromPartial(object: DeepPartial): MsgRevoke; -}; -export declare const MsgRevokeResponse: { - encode(_: MsgRevokeResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgRevokeResponse; - fromPartial(_: DeepPartial): MsgRevokeResponse; -}; diff --git a/packages/codegen/dist/cosmos/authz/v1beta1/tx.rpc.msg.d.ts b/packages/codegen/dist/cosmos/authz/v1beta1/tx.rpc.msg.d.ts deleted file mode 100644 index 3bcce35a..00000000 --- a/packages/codegen/dist/cosmos/authz/v1beta1/tx.rpc.msg.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { MsgGrant, MsgGrantResponse, MsgExec, MsgExecResponse, MsgRevoke, MsgRevokeResponse } from "./tx"; -/** Msg defines the authz Msg service. */ -export interface Msg { - /** - * 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. - */ - grant(request: MsgGrant): Promise; - /** - * 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. - */ - exec(request: MsgExec): Promise; - /** - * Revoke revokes any authorization corresponding to the provided method name on the - * granter's account that has been granted to the grantee. - */ - revoke(request: MsgRevoke): Promise; -} -export declare class MsgClientImpl implements Msg { - private readonly rpc; - constructor(rpc: Rpc); - grant(request: MsgGrant): Promise; - exec(request: MsgExec): Promise; - revoke(request: MsgRevoke): Promise; -} diff --git a/packages/codegen/dist/cosmos/bank/v1beta1/authz.d.ts b/packages/codegen/dist/cosmos/bank/v1beta1/authz.d.ts deleted file mode 100644 index 34bfd718..00000000 --- a/packages/codegen/dist/cosmos/bank/v1beta1/authz.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * SendAuthorization allows the grantee to spend up to spend_limit coins from - * the granter's account. - * - * Since: cosmos-sdk 0.43 - */ -export interface SendAuthorization { - spendLimit: Coin[]; -} -/** - * SendAuthorization allows the grantee to spend up to spend_limit coins from - * the granter's account. - * - * Since: cosmos-sdk 0.43 - */ -export interface SendAuthorizationSDKType { - spend_limit: CoinSDKType[]; -} -export declare const SendAuthorization: { - encode(message: SendAuthorization, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SendAuthorization; - fromPartial(object: DeepPartial): SendAuthorization; -}; diff --git a/packages/codegen/dist/cosmos/bank/v1beta1/bank.d.ts b/packages/codegen/dist/cosmos/bank/v1beta1/bank.d.ts deleted file mode 100644 index 47e94746..00000000 --- a/packages/codegen/dist/cosmos/bank/v1beta1/bank.d.ts +++ /dev/null @@ -1,185 +0,0 @@ -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** Params defines the parameters for the bank module. */ -export interface Params { - sendEnabled: SendEnabled[]; - defaultSendEnabled: boolean; -} -/** Params defines the parameters for the bank module. */ -export interface ParamsSDKType { - send_enabled: SendEnabledSDKType[]; - default_send_enabled: boolean; -} -/** - * SendEnabled maps coin denom to a send_enabled status (whether a denom is - * sendable). - */ -export interface SendEnabled { - denom: string; - enabled: boolean; -} -/** - * SendEnabled maps coin denom to a send_enabled status (whether a denom is - * sendable). - */ -export interface SendEnabledSDKType { - denom: string; - enabled: boolean; -} -/** Input models transaction input. */ -export interface Input { - address: string; - coins: Coin[]; -} -/** Input models transaction input. */ -export interface InputSDKType { - address: string; - coins: CoinSDKType[]; -} -/** Output models transaction outputs. */ -export interface Output { - address: string; - coins: Coin[]; -} -/** Output models transaction outputs. */ -export interface OutputSDKType { - address: string; - coins: CoinSDKType[]; -} -/** - * 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. - */ -/** @deprecated */ -export interface Supply { - total: Coin[]; -} -/** - * 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. - */ -/** @deprecated */ -export interface SupplySDKType { - total: CoinSDKType[]; -} -/** - * DenomUnit represents a struct that describes a given - * denomination unit of the basic token. - */ -export interface DenomUnit { - /** denom represents the string name of the given denom unit (e.g uatom). */ - denom: string; - /** - * 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). - */ - exponent: number; - /** aliases is a list of string aliases for the given denom */ - aliases: string[]; -} -/** - * DenomUnit represents a struct that describes a given - * denomination unit of the basic token. - */ -export interface DenomUnitSDKType { - denom: string; - exponent: number; - aliases: string[]; -} -/** - * Metadata represents a struct that describes - * a basic token. - */ -export interface Metadata { - description: string; - /** denom_units represents the list of DenomUnit's for a given coin */ - denomUnits: DenomUnit[]; - /** base represents the base denom (should be the DenomUnit with exponent = 0). */ - base: string; - /** - * display indicates the suggested denom that should be - * displayed in clients. - */ - display: string; - /** - * name defines the name of the token (eg: Cosmos Atom) - * - * Since: cosmos-sdk 0.43 - */ - name: string; - /** - * symbol is the token symbol usually shown on exchanges (eg: ATOM). This can - * be the same as the display. - * - * Since: cosmos-sdk 0.43 - */ - symbol: string; - /** - * URI to a document (on or off-chain) that contains additional information. Optional. - * - * Since: cosmos-sdk 0.46 - */ - uri: string; - /** - * 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 - */ - uriHash: string; -} -/** - * Metadata represents a struct that describes - * a basic token. - */ -export interface MetadataSDKType { - description: string; - denom_units: DenomUnitSDKType[]; - base: string; - display: string; - name: string; - symbol: string; - uri: string; - uri_hash: string; -} -export declare const Params: { - encode(message: Params, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Params; - fromPartial(object: DeepPartial): Params; -}; -export declare const SendEnabled: { - encode(message: SendEnabled, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SendEnabled; - fromPartial(object: DeepPartial): SendEnabled; -}; -export declare const Input: { - encode(message: Input, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Input; - fromPartial(object: DeepPartial): Input; -}; -export declare const Output: { - encode(message: Output, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Output; - fromPartial(object: DeepPartial): Output; -}; -export declare const Supply: { - encode(message: Supply, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Supply; - fromPartial(object: DeepPartial): Supply; -}; -export declare const DenomUnit: { - encode(message: DenomUnit, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): DenomUnit; - fromPartial(object: DeepPartial): DenomUnit; -}; -export declare const Metadata: { - encode(message: Metadata, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Metadata; - fromPartial(object: DeepPartial): Metadata; -}; diff --git a/packages/codegen/dist/cosmos/bank/v1beta1/genesis.d.ts b/packages/codegen/dist/cosmos/bank/v1beta1/genesis.d.ts deleted file mode 100644 index 9c967806..00000000 --- a/packages/codegen/dist/cosmos/bank/v1beta1/genesis.d.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { Params, ParamsSDKType, Metadata, MetadataSDKType } from "./bank"; -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** GenesisState defines the bank module's genesis state. */ -export interface GenesisState { - /** params defines all the paramaters of the module. */ - params?: Params; - /** balances is an array containing the balances of all the accounts. */ - balances: Balance[]; - /** - * 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. - */ - supply: Coin[]; - /** denom_metadata defines the metadata of the differents coins. */ - denomMetadata: Metadata[]; -} -/** GenesisState defines the bank module's genesis state. */ -export interface GenesisStateSDKType { - params?: ParamsSDKType; - balances: BalanceSDKType[]; - supply: CoinSDKType[]; - denom_metadata: MetadataSDKType[]; -} -/** - * Balance defines an account address and balance pair used in the bank module's - * genesis state. - */ -export interface Balance { - /** address is the address of the balance holder. */ - address: string; - /** coins defines the different coins this balance holds. */ - coins: Coin[]; -} -/** - * Balance defines an account address and balance pair used in the bank module's - * genesis state. - */ -export interface BalanceSDKType { - address: string; - coins: CoinSDKType[]; -} -export declare const GenesisState: { - encode(message: GenesisState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState; - fromPartial(object: DeepPartial): GenesisState; -}; -export declare const Balance: { - encode(message: Balance, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Balance; - fromPartial(object: DeepPartial): Balance; -}; diff --git a/packages/codegen/dist/cosmos/bank/v1beta1/query.d.ts b/packages/codegen/dist/cosmos/bank/v1beta1/query.d.ts deleted file mode 100644 index 0998895e..00000000 --- a/packages/codegen/dist/cosmos/bank/v1beta1/query.d.ts +++ /dev/null @@ -1,362 +0,0 @@ -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import { Params, ParamsSDKType, Metadata, MetadataSDKType } from "./bank"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** QueryBalanceRequest is the request type for the Query/Balance RPC method. */ -export interface QueryBalanceRequest { - /** address is the address to query balances for. */ - address: string; - /** denom is the coin denom to query balances for. */ - denom: string; -} -/** QueryBalanceRequest is the request type for the Query/Balance RPC method. */ -export interface QueryBalanceRequestSDKType { - address: string; - denom: string; -} -/** QueryBalanceResponse is the response type for the Query/Balance RPC method. */ -export interface QueryBalanceResponse { - /** balance is the balance of the coin. */ - balance?: Coin; -} -/** QueryBalanceResponse is the response type for the Query/Balance RPC method. */ -export interface QueryBalanceResponseSDKType { - balance?: CoinSDKType; -} -/** QueryBalanceRequest is the request type for the Query/AllBalances RPC method. */ -export interface QueryAllBalancesRequest { - /** address is the address to query balances for. */ - address: string; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** QueryBalanceRequest is the request type for the Query/AllBalances RPC method. */ -export interface QueryAllBalancesRequestSDKType { - address: string; - pagination?: PageRequestSDKType; -} -/** - * QueryAllBalancesResponse is the response type for the Query/AllBalances RPC - * method. - */ -export interface QueryAllBalancesResponse { - /** balances is the balances of all the coins. */ - balances: Coin[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** - * QueryAllBalancesResponse is the response type for the Query/AllBalances RPC - * method. - */ -export interface QueryAllBalancesResponseSDKType { - balances: CoinSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * QuerySpendableBalancesRequest defines the gRPC request structure for querying - * an account's spendable balances. - */ -export interface QuerySpendableBalancesRequest { - /** address is the address to query spendable balances for. */ - address: string; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** - * QuerySpendableBalancesRequest defines the gRPC request structure for querying - * an account's spendable balances. - */ -export interface QuerySpendableBalancesRequestSDKType { - address: string; - pagination?: PageRequestSDKType; -} -/** - * QuerySpendableBalancesResponse defines the gRPC response structure for querying - * an account's spendable balances. - */ -export interface QuerySpendableBalancesResponse { - /** balances is the spendable balances of all the coins. */ - balances: Coin[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** - * QuerySpendableBalancesResponse defines the gRPC response structure for querying - * an account's spendable balances. - */ -export interface QuerySpendableBalancesResponseSDKType { - balances: CoinSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * QueryTotalSupplyRequest is the request type for the Query/TotalSupply RPC - * method. - */ -export interface QueryTotalSupplyRequest { - /** - * pagination defines an optional pagination for the request. - * - * Since: cosmos-sdk 0.43 - */ - pagination?: PageRequest; -} -/** - * QueryTotalSupplyRequest is the request type for the Query/TotalSupply RPC - * method. - */ -export interface QueryTotalSupplyRequestSDKType { - pagination?: PageRequestSDKType; -} -/** - * QueryTotalSupplyResponse is the response type for the Query/TotalSupply RPC - * method - */ -export interface QueryTotalSupplyResponse { - /** supply is the supply of the coins */ - supply: Coin[]; - /** - * pagination defines the pagination in the response. - * - * Since: cosmos-sdk 0.43 - */ - pagination?: PageResponse; -} -/** - * QueryTotalSupplyResponse is the response type for the Query/TotalSupply RPC - * method - */ -export interface QueryTotalSupplyResponseSDKType { - supply: CoinSDKType[]; - pagination?: PageResponseSDKType; -} -/** QuerySupplyOfRequest is the request type for the Query/SupplyOf RPC method. */ -export interface QuerySupplyOfRequest { - /** denom is the coin denom to query balances for. */ - denom: string; -} -/** QuerySupplyOfRequest is the request type for the Query/SupplyOf RPC method. */ -export interface QuerySupplyOfRequestSDKType { - denom: string; -} -/** QuerySupplyOfResponse is the response type for the Query/SupplyOf RPC method. */ -export interface QuerySupplyOfResponse { - /** amount is the supply of the coin. */ - amount?: Coin; -} -/** QuerySupplyOfResponse is the response type for the Query/SupplyOf RPC method. */ -export interface QuerySupplyOfResponseSDKType { - amount?: CoinSDKType; -} -/** QueryParamsRequest defines the request type for querying x/bank parameters. */ -export interface QueryParamsRequest { -} -/** QueryParamsRequest defines the request type for querying x/bank parameters. */ -export interface QueryParamsRequestSDKType { -} -/** QueryParamsResponse defines the response type for querying x/bank parameters. */ -export interface QueryParamsResponse { - params?: Params; -} -/** QueryParamsResponse defines the response type for querying x/bank parameters. */ -export interface QueryParamsResponseSDKType { - params?: ParamsSDKType; -} -/** QueryDenomsMetadataRequest is the request type for the Query/DenomsMetadata RPC method. */ -export interface QueryDenomsMetadataRequest { - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** QueryDenomsMetadataRequest is the request type for the Query/DenomsMetadata RPC method. */ -export interface QueryDenomsMetadataRequestSDKType { - pagination?: PageRequestSDKType; -} -/** - * QueryDenomsMetadataResponse is the response type for the Query/DenomsMetadata RPC - * method. - */ -export interface QueryDenomsMetadataResponse { - /** metadata provides the client information for all the registered tokens. */ - metadatas: Metadata[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** - * QueryDenomsMetadataResponse is the response type for the Query/DenomsMetadata RPC - * method. - */ -export interface QueryDenomsMetadataResponseSDKType { - metadatas: MetadataSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryDenomMetadataRequest is the request type for the Query/DenomMetadata RPC method. */ -export interface QueryDenomMetadataRequest { - /** denom is the coin denom to query the metadata for. */ - denom: string; -} -/** QueryDenomMetadataRequest is the request type for the Query/DenomMetadata RPC method. */ -export interface QueryDenomMetadataRequestSDKType { - denom: string; -} -/** - * QueryDenomMetadataResponse is the response type for the Query/DenomMetadata RPC - * method. - */ -export interface QueryDenomMetadataResponse { - /** metadata describes and provides all the client information for the requested token. */ - metadata?: Metadata; -} -/** - * QueryDenomMetadataResponse is the response type for the Query/DenomMetadata RPC - * method. - */ -export interface QueryDenomMetadataResponseSDKType { - metadata?: MetadataSDKType; -} -/** - * QueryDenomOwnersRequest defines the request type for the DenomOwners RPC query, - * which queries for a paginated set of all account holders of a particular - * denomination. - */ -export interface QueryDenomOwnersRequest { - /** denom defines the coin denomination to query all account holders for. */ - denom: string; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** - * QueryDenomOwnersRequest defines the request type for the DenomOwners RPC query, - * which queries for a paginated set of all account holders of a particular - * denomination. - */ -export interface QueryDenomOwnersRequestSDKType { - denom: string; - pagination?: PageRequestSDKType; -} -/** - * 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. - */ -export interface DenomOwner { - /** address defines the address that owns a particular denomination. */ - address: string; - /** balance is the balance of the denominated coin for an account. */ - balance?: Coin; -} -/** - * 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. - */ -export interface DenomOwnerSDKType { - address: string; - balance?: CoinSDKType; -} -/** QueryDenomOwnersResponse defines the RPC response of a DenomOwners RPC query. */ -export interface QueryDenomOwnersResponse { - denomOwners: DenomOwner[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** QueryDenomOwnersResponse defines the RPC response of a DenomOwners RPC query. */ -export interface QueryDenomOwnersResponseSDKType { - denom_owners: DenomOwnerSDKType[]; - pagination?: PageResponseSDKType; -} -export declare const QueryBalanceRequest: { - encode(message: QueryBalanceRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryBalanceRequest; - fromPartial(object: DeepPartial): QueryBalanceRequest; -}; -export declare const QueryBalanceResponse: { - encode(message: QueryBalanceResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryBalanceResponse; - fromPartial(object: DeepPartial): QueryBalanceResponse; -}; -export declare const QueryAllBalancesRequest: { - encode(message: QueryAllBalancesRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllBalancesRequest; - fromPartial(object: DeepPartial): QueryAllBalancesRequest; -}; -export declare const QueryAllBalancesResponse: { - encode(message: QueryAllBalancesResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllBalancesResponse; - fromPartial(object: DeepPartial): QueryAllBalancesResponse; -}; -export declare const QuerySpendableBalancesRequest: { - encode(message: QuerySpendableBalancesRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySpendableBalancesRequest; - fromPartial(object: DeepPartial): QuerySpendableBalancesRequest; -}; -export declare const QuerySpendableBalancesResponse: { - encode(message: QuerySpendableBalancesResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySpendableBalancesResponse; - fromPartial(object: DeepPartial): QuerySpendableBalancesResponse; -}; -export declare const QueryTotalSupplyRequest: { - encode(message: QueryTotalSupplyRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryTotalSupplyRequest; - fromPartial(object: DeepPartial): QueryTotalSupplyRequest; -}; -export declare const QueryTotalSupplyResponse: { - encode(message: QueryTotalSupplyResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryTotalSupplyResponse; - fromPartial(object: DeepPartial): QueryTotalSupplyResponse; -}; -export declare const QuerySupplyOfRequest: { - encode(message: QuerySupplyOfRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySupplyOfRequest; - fromPartial(object: DeepPartial): QuerySupplyOfRequest; -}; -export declare const QuerySupplyOfResponse: { - encode(message: QuerySupplyOfResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySupplyOfResponse; - fromPartial(object: DeepPartial): QuerySupplyOfResponse; -}; -export declare const QueryParamsRequest: { - encode(_: QueryParamsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest; - fromPartial(_: DeepPartial): QueryParamsRequest; -}; -export declare const QueryParamsResponse: { - encode(message: QueryParamsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse; - fromPartial(object: DeepPartial): QueryParamsResponse; -}; -export declare const QueryDenomsMetadataRequest: { - encode(message: QueryDenomsMetadataRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDenomsMetadataRequest; - fromPartial(object: DeepPartial): QueryDenomsMetadataRequest; -}; -export declare const QueryDenomsMetadataResponse: { - encode(message: QueryDenomsMetadataResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDenomsMetadataResponse; - fromPartial(object: DeepPartial): QueryDenomsMetadataResponse; -}; -export declare const QueryDenomMetadataRequest: { - encode(message: QueryDenomMetadataRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDenomMetadataRequest; - fromPartial(object: DeepPartial): QueryDenomMetadataRequest; -}; -export declare const QueryDenomMetadataResponse: { - encode(message: QueryDenomMetadataResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDenomMetadataResponse; - fromPartial(object: DeepPartial): QueryDenomMetadataResponse; -}; -export declare const QueryDenomOwnersRequest: { - encode(message: QueryDenomOwnersRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDenomOwnersRequest; - fromPartial(object: DeepPartial): QueryDenomOwnersRequest; -}; -export declare const DenomOwner: { - encode(message: DenomOwner, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): DenomOwner; - fromPartial(object: DeepPartial): DenomOwner; -}; -export declare const QueryDenomOwnersResponse: { - encode(message: QueryDenomOwnersResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDenomOwnersResponse; - fromPartial(object: DeepPartial): QueryDenomOwnersResponse; -}; diff --git a/packages/codegen/dist/cosmos/bank/v1beta1/query.lcd.d.ts b/packages/codegen/dist/cosmos/bank/v1beta1/query.lcd.d.ts deleted file mode 100644 index 49fe501e..00000000 --- a/packages/codegen/dist/cosmos/bank/v1beta1/query.lcd.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { QueryBalanceRequest, QueryBalanceResponseSDKType, QueryAllBalancesRequest, QueryAllBalancesResponseSDKType, QuerySpendableBalancesRequest, QuerySpendableBalancesResponseSDKType, QueryTotalSupplyRequest, QueryTotalSupplyResponseSDKType, QuerySupplyOfRequest, QuerySupplyOfResponseSDKType, QueryParamsRequest, QueryParamsResponseSDKType, QueryDenomMetadataRequest, QueryDenomMetadataResponseSDKType, QueryDenomsMetadataRequest, QueryDenomsMetadataResponseSDKType, QueryDenomOwnersRequest, QueryDenomOwnersResponseSDKType } from "./query"; -export declare class LCDQueryClient { - req: LCDClient; - constructor({ requestClient }: { - requestClient: LCDClient; - }); - balance(params: QueryBalanceRequest): Promise; - allBalances(params: QueryAllBalancesRequest): Promise; - spendableBalances(params: QuerySpendableBalancesRequest): Promise; - totalSupply(params?: QueryTotalSupplyRequest): Promise; - supplyOf(params: QuerySupplyOfRequest): Promise; - params(_params?: QueryParamsRequest): Promise; - denomMetadata(params: QueryDenomMetadataRequest): Promise; - denomsMetadata(params?: QueryDenomsMetadataRequest): Promise; - denomOwners(params: QueryDenomOwnersRequest): Promise; -} diff --git a/packages/codegen/dist/cosmos/bank/v1beta1/query.rpc.Query.d.ts b/packages/codegen/dist/cosmos/bank/v1beta1/query.rpc.Query.d.ts deleted file mode 100644 index d746df09..00000000 --- a/packages/codegen/dist/cosmos/bank/v1beta1/query.rpc.Query.d.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { QueryClient } from "@cosmjs/stargate"; -import { QueryBalanceRequest, QueryBalanceResponse, QueryAllBalancesRequest, QueryAllBalancesResponse, QuerySpendableBalancesRequest, QuerySpendableBalancesResponse, QueryTotalSupplyRequest, QueryTotalSupplyResponse, QuerySupplyOfRequest, QuerySupplyOfResponse, QueryParamsRequest, QueryParamsResponse, QueryDenomMetadataRequest, QueryDenomMetadataResponse, QueryDenomsMetadataRequest, QueryDenomsMetadataResponse, QueryDenomOwnersRequest, QueryDenomOwnersResponse } from "./query"; -/** Query defines the gRPC querier service. */ -export interface Query { - /** Balance queries the balance of a single coin for a single account. */ - balance(request: QueryBalanceRequest): Promise; - /** AllBalances queries the balance of all coins for a single account. */ - allBalances(request: QueryAllBalancesRequest): Promise; - /** - * SpendableBalances queries the spenable balance of all coins for a single - * account. - */ - spendableBalances(request: QuerySpendableBalancesRequest): Promise; - /** TotalSupply queries the total supply of all coins. */ - totalSupply(request?: QueryTotalSupplyRequest): Promise; - /** SupplyOf queries the supply of a single coin. */ - supplyOf(request: QuerySupplyOfRequest): Promise; - /** Params queries the parameters of x/bank module. */ - params(request?: QueryParamsRequest): Promise; - /** DenomsMetadata queries the client metadata of a given coin denomination. */ - denomMetadata(request: QueryDenomMetadataRequest): Promise; - /** - * DenomsMetadata queries the client metadata for all registered coin - * denominations. - */ - denomsMetadata(request?: QueryDenomsMetadataRequest): Promise; - /** - * DenomOwners queries for all account addresses that own a particular token - * denomination. - */ - denomOwners(request: QueryDenomOwnersRequest): Promise; -} -export declare class QueryClientImpl implements Query { - private readonly rpc; - constructor(rpc: Rpc); - balance(request: QueryBalanceRequest): Promise; - allBalances(request: QueryAllBalancesRequest): Promise; - spendableBalances(request: QuerySpendableBalancesRequest): Promise; - totalSupply(request?: QueryTotalSupplyRequest): Promise; - supplyOf(request: QuerySupplyOfRequest): Promise; - params(request?: QueryParamsRequest): Promise; - denomMetadata(request: QueryDenomMetadataRequest): Promise; - denomsMetadata(request?: QueryDenomsMetadataRequest): Promise; - denomOwners(request: QueryDenomOwnersRequest): Promise; -} -export declare const createRpcQueryExtension: (base: QueryClient) => { - balance(request: QueryBalanceRequest): Promise; - allBalances(request: QueryAllBalancesRequest): Promise; - spendableBalances(request: QuerySpendableBalancesRequest): Promise; - totalSupply(request?: QueryTotalSupplyRequest): Promise; - supplyOf(request: QuerySupplyOfRequest): Promise; - params(request?: QueryParamsRequest): Promise; - denomMetadata(request: QueryDenomMetadataRequest): Promise; - denomsMetadata(request?: QueryDenomsMetadataRequest): Promise; - denomOwners(request: QueryDenomOwnersRequest): Promise; -}; diff --git a/packages/codegen/dist/cosmos/bank/v1beta1/tx.d.ts b/packages/codegen/dist/cosmos/bank/v1beta1/tx.d.ts deleted file mode 100644 index d10ec379..00000000 --- a/packages/codegen/dist/cosmos/bank/v1beta1/tx.d.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import { Input, InputSDKType, Output, OutputSDKType } from "./bank"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** MsgSend represents a message to send coins from one account to another. */ -export interface MsgSend { - fromAddress: string; - toAddress: string; - amount: Coin[]; -} -/** MsgSend represents a message to send coins from one account to another. */ -export interface MsgSendSDKType { - from_address: string; - to_address: string; - amount: CoinSDKType[]; -} -/** MsgSendResponse defines the Msg/Send response type. */ -export interface MsgSendResponse { -} -/** MsgSendResponse defines the Msg/Send response type. */ -export interface MsgSendResponseSDKType { -} -/** MsgMultiSend represents an arbitrary multi-in, multi-out send message. */ -export interface MsgMultiSend { - inputs: Input[]; - outputs: Output[]; -} -/** MsgMultiSend represents an arbitrary multi-in, multi-out send message. */ -export interface MsgMultiSendSDKType { - inputs: InputSDKType[]; - outputs: OutputSDKType[]; -} -/** MsgMultiSendResponse defines the Msg/MultiSend response type. */ -export interface MsgMultiSendResponse { -} -/** MsgMultiSendResponse defines the Msg/MultiSend response type. */ -export interface MsgMultiSendResponseSDKType { -} -export declare const MsgSend: { - encode(message: MsgSend, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSend; - fromPartial(object: DeepPartial): MsgSend; -}; -export declare const MsgSendResponse: { - encode(_: MsgSendResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSendResponse; - fromPartial(_: DeepPartial): MsgSendResponse; -}; -export declare const MsgMultiSend: { - encode(message: MsgMultiSend, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgMultiSend; - fromPartial(object: DeepPartial): MsgMultiSend; -}; -export declare const MsgMultiSendResponse: { - encode(_: MsgMultiSendResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgMultiSendResponse; - fromPartial(_: DeepPartial): MsgMultiSendResponse; -}; diff --git a/packages/codegen/dist/cosmos/bank/v1beta1/tx.rpc.msg.d.ts b/packages/codegen/dist/cosmos/bank/v1beta1/tx.rpc.msg.d.ts deleted file mode 100644 index ac12e6ab..00000000 --- a/packages/codegen/dist/cosmos/bank/v1beta1/tx.rpc.msg.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { MsgSend, MsgSendResponse, MsgMultiSend, MsgMultiSendResponse } from "./tx"; -/** Msg defines the bank Msg service. */ -export interface Msg { - /** Send defines a method for sending coins from one account to another account. */ - send(request: MsgSend): Promise; - /** MultiSend defines a method for sending coins from some accounts to other accounts. */ - multiSend(request: MsgMultiSend): Promise; -} -export declare class MsgClientImpl implements Msg { - private readonly rpc; - constructor(rpc: Rpc); - send(request: MsgSend): Promise; - multiSend(request: MsgMultiSend): Promise; -} diff --git a/packages/codegen/dist/cosmos/base/abci/v1beta1/abci.d.ts b/packages/codegen/dist/cosmos/base/abci/v1beta1/abci.d.ts deleted file mode 100644 index d83cf951..00000000 --- a/packages/codegen/dist/cosmos/base/abci/v1beta1/abci.d.ts +++ /dev/null @@ -1,294 +0,0 @@ -/// -import { Any, AnySDKType } from "../../../../google/protobuf/any"; -import { Event, EventSDKType } from "../../../../tendermint/abci/types"; -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * TxResponse defines a structure containing relevant tx data and metadata. The - * tags are stringified and the log is JSON decoded. - */ -export interface TxResponse { - /** The block height */ - height: Long; - /** The transaction hash. */ - txhash: string; - /** Namespace for the Code */ - codespace: string; - /** Response code. */ - code: number; - /** Result bytes, if any. */ - data: string; - /** - * The output of the application's logger (raw string). May be - * non-deterministic. - */ - rawLog: string; - /** The output of the application's logger (typed). May be non-deterministic. */ - logs: ABCIMessageLog[]; - /** Additional information. May be non-deterministic. */ - info: string; - /** Amount of gas requested for transaction. */ - gasWanted: Long; - /** Amount of gas consumed by transaction. */ - gasUsed: Long; - /** The request transaction bytes. */ - tx?: Any; - /** - * 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. - */ - timestamp: string; - /** - * 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 handler. 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 - */ - events: Event[]; -} -/** - * TxResponse defines a structure containing relevant tx data and metadata. The - * tags are stringified and the log is JSON decoded. - */ -export interface TxResponseSDKType { - height: Long; - txhash: string; - codespace: string; - code: number; - data: string; - raw_log: string; - logs: ABCIMessageLogSDKType[]; - info: string; - gas_wanted: Long; - gas_used: Long; - tx?: AnySDKType; - timestamp: string; - events: EventSDKType[]; -} -/** ABCIMessageLog defines a structure containing an indexed tx ABCI message log. */ -export interface ABCIMessageLog { - msgIndex: number; - log: string; - /** - * Events contains a slice of Event objects that were emitted during some - * execution. - */ - events: StringEvent[]; -} -/** ABCIMessageLog defines a structure containing an indexed tx ABCI message log. */ -export interface ABCIMessageLogSDKType { - msg_index: number; - log: string; - events: StringEventSDKType[]; -} -/** - * StringEvent defines en Event object wrapper where all the attributes - * contain key/value pairs that are strings instead of raw bytes. - */ -export interface StringEvent { - type: string; - attributes: Attribute[]; -} -/** - * StringEvent defines en Event object wrapper where all the attributes - * contain key/value pairs that are strings instead of raw bytes. - */ -export interface StringEventSDKType { - type: string; - attributes: AttributeSDKType[]; -} -/** - * Attribute defines an attribute wrapper where the key and value are - * strings instead of raw bytes. - */ -export interface Attribute { - key: string; - value: string; -} -/** - * Attribute defines an attribute wrapper where the key and value are - * strings instead of raw bytes. - */ -export interface AttributeSDKType { - key: string; - value: string; -} -/** GasInfo defines tx execution gas context. */ -export interface GasInfo { - /** GasWanted is the maximum units of work we allow this tx to perform. */ - gasWanted: Long; - /** GasUsed is the amount of gas actually consumed. */ - gasUsed: Long; -} -/** GasInfo defines tx execution gas context. */ -export interface GasInfoSDKType { - gas_wanted: Long; - gas_used: Long; -} -/** Result is the union of ResponseFormat and ResponseCheckTx. */ -export interface 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. - */ - /** @deprecated */ - data: Uint8Array; - /** Log contains the log information from message or handler execution. */ - log: string; - /** - * Events contains a slice of Event objects that were emitted during message - * or handler execution. - */ - events: Event[]; - /** - * msg_responses contains the Msg handler responses type packed in Anys. - * - * Since: cosmos-sdk 0.46 - */ - msgResponses: Any[]; -} -/** Result is the union of ResponseFormat and ResponseCheckTx. */ -export interface ResultSDKType { - /** @deprecated */ - data: Uint8Array; - log: string; - events: EventSDKType[]; - msg_responses: AnySDKType[]; -} -/** - * SimulationResponse defines the response generated when a transaction is - * successfully simulated. - */ -export interface SimulationResponse { - gasInfo?: GasInfo; - result?: Result; -} -/** - * SimulationResponse defines the response generated when a transaction is - * successfully simulated. - */ -export interface SimulationResponseSDKType { - gas_info?: GasInfoSDKType; - result?: ResultSDKType; -} -/** - * MsgData defines the data returned in a Result object during message - * execution. - */ -/** @deprecated */ -export interface MsgData { - msgType: string; - data: Uint8Array; -} -/** - * MsgData defines the data returned in a Result object during message - * execution. - */ -/** @deprecated */ -export interface MsgDataSDKType { - msg_type: string; - data: Uint8Array; -} -/** - * TxMsgData defines a list of MsgData. A transaction will have a MsgData object - * for each message. - */ -export interface TxMsgData { - /** data field is deprecated and not populated. */ - /** @deprecated */ - data: MsgData[]; - /** - * msg_responses contains the Msg handler responses packed into Anys. - * - * Since: cosmos-sdk 0.46 - */ - msgResponses: Any[]; -} -/** - * TxMsgData defines a list of MsgData. A transaction will have a MsgData object - * for each message. - */ -export interface TxMsgDataSDKType { - /** @deprecated */ - data: MsgDataSDKType[]; - msg_responses: AnySDKType[]; -} -/** SearchTxsResult defines a structure for querying txs pageable */ -export interface SearchTxsResult { - /** Count of all txs */ - totalCount: Long; - /** Count of txs in current page */ - count: Long; - /** Index of current page, start from 1 */ - pageNumber: Long; - /** Count of total pages */ - pageTotal: Long; - /** Max count txs per page */ - limit: Long; - /** List of txs in current page */ - txs: TxResponse[]; -} -/** SearchTxsResult defines a structure for querying txs pageable */ -export interface SearchTxsResultSDKType { - total_count: Long; - count: Long; - page_number: Long; - page_total: Long; - limit: Long; - txs: TxResponseSDKType[]; -} -export declare const TxResponse: { - encode(message: TxResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): TxResponse; - fromPartial(object: DeepPartial): TxResponse; -}; -export declare const ABCIMessageLog: { - encode(message: ABCIMessageLog, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ABCIMessageLog; - fromPartial(object: DeepPartial): ABCIMessageLog; -}; -export declare const StringEvent: { - encode(message: StringEvent, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): StringEvent; - fromPartial(object: DeepPartial): StringEvent; -}; -export declare const Attribute: { - encode(message: Attribute, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Attribute; - fromPartial(object: DeepPartial): Attribute; -}; -export declare const GasInfo: { - encode(message: GasInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GasInfo; - fromPartial(object: DeepPartial): GasInfo; -}; -export declare const Result: { - encode(message: Result, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Result; - fromPartial(object: DeepPartial): Result; -}; -export declare const SimulationResponse: { - encode(message: SimulationResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SimulationResponse; - fromPartial(object: DeepPartial): SimulationResponse; -}; -export declare const MsgData: { - encode(message: MsgData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgData; - fromPartial(object: DeepPartial): MsgData; -}; -export declare const TxMsgData: { - encode(message: TxMsgData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): TxMsgData; - fromPartial(object: DeepPartial): TxMsgData; -}; -export declare const SearchTxsResult: { - encode(message: SearchTxsResult, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SearchTxsResult; - fromPartial(object: DeepPartial): SearchTxsResult; -}; diff --git a/packages/codegen/dist/cosmos/base/kv/v1beta1/kv.d.ts b/packages/codegen/dist/cosmos/base/kv/v1beta1/kv.d.ts deleted file mode 100644 index 9f6271ce..00000000 --- a/packages/codegen/dist/cosmos/base/kv/v1beta1/kv.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** Pairs defines a repeated slice of Pair objects. */ -export interface Pairs { - pairs: Pair[]; -} -/** Pairs defines a repeated slice of Pair objects. */ -export interface PairsSDKType { - pairs: PairSDKType[]; -} -/** Pair defines a key/value bytes tuple. */ -export interface Pair { - key: Uint8Array; - value: Uint8Array; -} -/** Pair defines a key/value bytes tuple. */ -export interface PairSDKType { - key: Uint8Array; - value: Uint8Array; -} -export declare const Pairs: { - encode(message: Pairs, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Pairs; - fromPartial(object: DeepPartial): Pairs; -}; -export declare const Pair: { - encode(message: Pair, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Pair; - fromPartial(object: DeepPartial): Pair; -}; diff --git a/packages/codegen/dist/cosmos/base/query/v1beta1/pagination.d.ts b/packages/codegen/dist/cosmos/base/query/v1beta1/pagination.d.ts deleted file mode 100644 index cc13d8d7..00000000 --- a/packages/codegen/dist/cosmos/base/query/v1beta1/pagination.d.ts +++ /dev/null @@ -1,105 +0,0 @@ -/// -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * PageRequest is to be embedded in gRPC request messages for efficient - * pagination. Ex: - * - * message SomeRequest { - * Foo some_parameter = 1; - * PageRequest pagination = 2; - * } - */ -export interface 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. - */ - key: Uint8Array; - /** - * 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. - */ - offset: Long; - /** - * 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. - */ - limit: Long; - /** - * 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. - */ - countTotal: boolean; - /** - * reverse is set to true if results are to be returned in the descending order. - * - * Since: cosmos-sdk 0.43 - */ - reverse: boolean; -} -/** - * PageRequest is to be embedded in gRPC request messages for efficient - * pagination. Ex: - * - * message SomeRequest { - * Foo some_parameter = 1; - * PageRequest pagination = 2; - * } - */ -export interface PageRequestSDKType { - key: Uint8Array; - offset: Long; - limit: Long; - count_total: boolean; - reverse: boolean; -} -/** - * 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; - * } - */ -export interface 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. - */ - nextKey: Uint8Array; - /** - * total is total number of results available if PageRequest.count_total - * was set, its value is undefined otherwise - */ - total: Long; -} -/** - * 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; - * } - */ -export interface PageResponseSDKType { - next_key: Uint8Array; - total: Long; -} -export declare const PageRequest: { - encode(message: PageRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PageRequest; - fromPartial(object: DeepPartial): PageRequest; -}; -export declare const PageResponse: { - encode(message: PageResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PageResponse; - fromPartial(object: DeepPartial): PageResponse; -}; diff --git a/packages/codegen/dist/cosmos/base/reflection/v1beta1/reflection.d.ts b/packages/codegen/dist/cosmos/base/reflection/v1beta1/reflection.d.ts deleted file mode 100644 index afa8751c..00000000 --- a/packages/codegen/dist/cosmos/base/reflection/v1beta1/reflection.d.ts +++ /dev/null @@ -1,66 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** ListAllInterfacesRequest is the request type of the ListAllInterfaces RPC. */ -export interface ListAllInterfacesRequest { -} -/** ListAllInterfacesRequest is the request type of the ListAllInterfaces RPC. */ -export interface ListAllInterfacesRequestSDKType { -} -/** ListAllInterfacesResponse is the response type of the ListAllInterfaces RPC. */ -export interface ListAllInterfacesResponse { - /** interface_names is an array of all the registered interfaces. */ - interfaceNames: string[]; -} -/** ListAllInterfacesResponse is the response type of the ListAllInterfaces RPC. */ -export interface ListAllInterfacesResponseSDKType { - interface_names: string[]; -} -/** - * ListImplementationsRequest is the request type of the ListImplementations - * RPC. - */ -export interface ListImplementationsRequest { - /** interface_name defines the interface to query the implementations for. */ - interfaceName: string; -} -/** - * ListImplementationsRequest is the request type of the ListImplementations - * RPC. - */ -export interface ListImplementationsRequestSDKType { - interface_name: string; -} -/** - * ListImplementationsResponse is the response type of the ListImplementations - * RPC. - */ -export interface ListImplementationsResponse { - implementationMessageNames: string[]; -} -/** - * ListImplementationsResponse is the response type of the ListImplementations - * RPC. - */ -export interface ListImplementationsResponseSDKType { - implementation_message_names: string[]; -} -export declare const ListAllInterfacesRequest: { - encode(_: ListAllInterfacesRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ListAllInterfacesRequest; - fromPartial(_: DeepPartial): ListAllInterfacesRequest; -}; -export declare const ListAllInterfacesResponse: { - encode(message: ListAllInterfacesResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ListAllInterfacesResponse; - fromPartial(object: DeepPartial): ListAllInterfacesResponse; -}; -export declare const ListImplementationsRequest: { - encode(message: ListImplementationsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ListImplementationsRequest; - fromPartial(object: DeepPartial): ListImplementationsRequest; -}; -export declare const ListImplementationsResponse: { - encode(message: ListImplementationsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ListImplementationsResponse; - fromPartial(object: DeepPartial): ListImplementationsResponse; -}; diff --git a/packages/codegen/dist/cosmos/base/reflection/v2alpha1/reflection.d.ts b/packages/codegen/dist/cosmos/base/reflection/v2alpha1/reflection.d.ts deleted file mode 100644 index 77ddfda7..00000000 --- a/packages/codegen/dist/cosmos/base/reflection/v2alpha1/reflection.d.ts +++ /dev/null @@ -1,451 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** AppDescriptor describes a cosmos-sdk based application */ -export interface AppDescriptor { - /** - * AuthnDescriptor provides information on how to authenticate transactions on the application - * NOTE: experimental and subject to change in future releases. - */ - authn?: AuthnDescriptor; - /** chain provides the chain descriptor */ - chain?: ChainDescriptor; - /** codec provides metadata information regarding codec related types */ - codec?: CodecDescriptor; - /** configuration provides metadata information regarding the sdk.Config type */ - configuration?: ConfigurationDescriptor; - /** query_services provides metadata information regarding the available queriable endpoints */ - queryServices?: QueryServicesDescriptor; - /** tx provides metadata information regarding how to send transactions to the given application */ - tx?: TxDescriptor; -} -/** AppDescriptor describes a cosmos-sdk based application */ -export interface AppDescriptorSDKType { - authn?: AuthnDescriptorSDKType; - chain?: ChainDescriptorSDKType; - codec?: CodecDescriptorSDKType; - configuration?: ConfigurationDescriptorSDKType; - query_services?: QueryServicesDescriptorSDKType; - tx?: TxDescriptorSDKType; -} -/** TxDescriptor describes the accepted transaction type */ -export interface 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. - */ - fullname: string; - /** msgs lists the accepted application messages (sdk.Msg) */ - msgs: MsgDescriptor[]; -} -/** TxDescriptor describes the accepted transaction type */ -export interface TxDescriptorSDKType { - fullname: string; - msgs: MsgDescriptorSDKType[]; -} -/** - * AuthnDescriptor provides information on how to sign transactions without relying - * on the online RPCs GetTxMetadata and CombineUnsignedTxAndSignatures - */ -export interface AuthnDescriptor { - /** sign_modes defines the supported signature algorithm */ - signModes: SigningModeDescriptor[]; -} -/** - * AuthnDescriptor provides information on how to sign transactions without relying - * on the online RPCs GetTxMetadata and CombineUnsignedTxAndSignatures - */ -export interface AuthnDescriptorSDKType { - sign_modes: SigningModeDescriptorSDKType[]; -} -/** - * 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 - */ -export interface SigningModeDescriptor { - /** name defines the unique name of the signing mode */ - name: string; - /** number is the unique int32 identifier for the sign_mode enum */ - number: 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 - */ - authnInfoProviderMethodFullname: string; -} -/** - * 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 - */ -export interface SigningModeDescriptorSDKType { - name: string; - number: number; - authn_info_provider_method_fullname: string; -} -/** ChainDescriptor describes chain information of the application */ -export interface ChainDescriptor { - /** id is the chain id */ - id: string; -} -/** ChainDescriptor describes chain information of the application */ -export interface ChainDescriptorSDKType { - id: string; -} -/** CodecDescriptor describes the registered interfaces and provides metadata information on the types */ -export interface CodecDescriptor { - /** interfaces is a list of the registerted interfaces descriptors */ - interfaces: InterfaceDescriptor[]; -} -/** CodecDescriptor describes the registered interfaces and provides metadata information on the types */ -export interface CodecDescriptorSDKType { - interfaces: InterfaceDescriptorSDKType[]; -} -/** InterfaceDescriptor describes the implementation of an interface */ -export interface InterfaceDescriptor { - /** fullname is the name of the interface */ - fullname: string; - /** - * interface_accepting_messages contains information regarding the proto messages which contain the interface as - * google.protobuf.Any field - */ - interfaceAcceptingMessages: InterfaceAcceptingMessageDescriptor[]; - /** interface_implementers is a list of the descriptors of the interface implementers */ - interfaceImplementers: InterfaceImplementerDescriptor[]; -} -/** InterfaceDescriptor describes the implementation of an interface */ -export interface InterfaceDescriptorSDKType { - fullname: string; - interface_accepting_messages: InterfaceAcceptingMessageDescriptorSDKType[]; - interface_implementers: InterfaceImplementerDescriptorSDKType[]; -} -/** InterfaceImplementerDescriptor describes an interface implementer */ -export interface InterfaceImplementerDescriptor { - /** fullname is the protobuf queryable name of the interface implementer */ - fullname: string; - /** - * 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 - */ - typeUrl: string; -} -/** InterfaceImplementerDescriptor describes an interface implementer */ -export interface InterfaceImplementerDescriptorSDKType { - fullname: string; - type_url: string; -} -/** - * InterfaceAcceptingMessageDescriptor describes a protobuf message which contains - * an interface represented as a google.protobuf.Any - */ -export interface InterfaceAcceptingMessageDescriptor { - /** fullname is the protobuf fullname of the type containing the interface */ - fullname: string; - /** - * 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) - */ - fieldDescriptorNames: string[]; -} -/** - * InterfaceAcceptingMessageDescriptor describes a protobuf message which contains - * an interface represented as a google.protobuf.Any - */ -export interface InterfaceAcceptingMessageDescriptorSDKType { - fullname: string; - field_descriptor_names: string[]; -} -/** ConfigurationDescriptor contains metadata information on the sdk.Config */ -export interface ConfigurationDescriptor { - /** bech32_account_address_prefix is the account address prefix */ - bech32AccountAddressPrefix: string; -} -/** ConfigurationDescriptor contains metadata information on the sdk.Config */ -export interface ConfigurationDescriptorSDKType { - bech32_account_address_prefix: string; -} -/** MsgDescriptor describes a cosmos-sdk message that can be delivered with a transaction */ -export interface MsgDescriptor { - /** msg_type_url contains the TypeURL of a sdk.Msg. */ - msgTypeUrl: string; -} -/** MsgDescriptor describes a cosmos-sdk message that can be delivered with a transaction */ -export interface MsgDescriptorSDKType { - msg_type_url: string; -} -/** GetAuthnDescriptorRequest is the request used for the GetAuthnDescriptor RPC */ -export interface GetAuthnDescriptorRequest { -} -/** GetAuthnDescriptorRequest is the request used for the GetAuthnDescriptor RPC */ -export interface GetAuthnDescriptorRequestSDKType { -} -/** GetAuthnDescriptorResponse is the response returned by the GetAuthnDescriptor RPC */ -export interface GetAuthnDescriptorResponse { - /** authn describes how to authenticate to the application when sending transactions */ - authn?: AuthnDescriptor; -} -/** GetAuthnDescriptorResponse is the response returned by the GetAuthnDescriptor RPC */ -export interface GetAuthnDescriptorResponseSDKType { - authn?: AuthnDescriptorSDKType; -} -/** GetChainDescriptorRequest is the request used for the GetChainDescriptor RPC */ -export interface GetChainDescriptorRequest { -} -/** GetChainDescriptorRequest is the request used for the GetChainDescriptor RPC */ -export interface GetChainDescriptorRequestSDKType { -} -/** GetChainDescriptorResponse is the response returned by the GetChainDescriptor RPC */ -export interface GetChainDescriptorResponse { - /** chain describes application chain information */ - chain?: ChainDescriptor; -} -/** GetChainDescriptorResponse is the response returned by the GetChainDescriptor RPC */ -export interface GetChainDescriptorResponseSDKType { - chain?: ChainDescriptorSDKType; -} -/** GetCodecDescriptorRequest is the request used for the GetCodecDescriptor RPC */ -export interface GetCodecDescriptorRequest { -} -/** GetCodecDescriptorRequest is the request used for the GetCodecDescriptor RPC */ -export interface GetCodecDescriptorRequestSDKType { -} -/** GetCodecDescriptorResponse is the response returned by the GetCodecDescriptor RPC */ -export interface GetCodecDescriptorResponse { - /** codec describes the application codec such as registered interfaces and implementations */ - codec?: CodecDescriptor; -} -/** GetCodecDescriptorResponse is the response returned by the GetCodecDescriptor RPC */ -export interface GetCodecDescriptorResponseSDKType { - codec?: CodecDescriptorSDKType; -} -/** GetConfigurationDescriptorRequest is the request used for the GetConfigurationDescriptor RPC */ -export interface GetConfigurationDescriptorRequest { -} -/** GetConfigurationDescriptorRequest is the request used for the GetConfigurationDescriptor RPC */ -export interface GetConfigurationDescriptorRequestSDKType { -} -/** GetConfigurationDescriptorResponse is the response returned by the GetConfigurationDescriptor RPC */ -export interface GetConfigurationDescriptorResponse { - /** config describes the application's sdk.Config */ - config?: ConfigurationDescriptor; -} -/** GetConfigurationDescriptorResponse is the response returned by the GetConfigurationDescriptor RPC */ -export interface GetConfigurationDescriptorResponseSDKType { - config?: ConfigurationDescriptorSDKType; -} -/** GetQueryServicesDescriptorRequest is the request used for the GetQueryServicesDescriptor RPC */ -export interface GetQueryServicesDescriptorRequest { -} -/** GetQueryServicesDescriptorRequest is the request used for the GetQueryServicesDescriptor RPC */ -export interface GetQueryServicesDescriptorRequestSDKType { -} -/** GetQueryServicesDescriptorResponse is the response returned by the GetQueryServicesDescriptor RPC */ -export interface GetQueryServicesDescriptorResponse { - /** queries provides information on the available queryable services */ - queries?: QueryServicesDescriptor; -} -/** GetQueryServicesDescriptorResponse is the response returned by the GetQueryServicesDescriptor RPC */ -export interface GetQueryServicesDescriptorResponseSDKType { - queries?: QueryServicesDescriptorSDKType; -} -/** GetTxDescriptorRequest is the request used for the GetTxDescriptor RPC */ -export interface GetTxDescriptorRequest { -} -/** GetTxDescriptorRequest is the request used for the GetTxDescriptor RPC */ -export interface GetTxDescriptorRequestSDKType { -} -/** GetTxDescriptorResponse is the response returned by the GetTxDescriptor RPC */ -export interface GetTxDescriptorResponse { - /** - * tx provides information on msgs that can be forwarded to the application - * alongside the accepted transaction protobuf type - */ - tx?: TxDescriptor; -} -/** GetTxDescriptorResponse is the response returned by the GetTxDescriptor RPC */ -export interface GetTxDescriptorResponseSDKType { - tx?: TxDescriptorSDKType; -} -/** QueryServicesDescriptor contains the list of cosmos-sdk queriable services */ -export interface QueryServicesDescriptor { - /** query_services is a list of cosmos-sdk QueryServiceDescriptor */ - queryServices: QueryServiceDescriptor[]; -} -/** QueryServicesDescriptor contains the list of cosmos-sdk queriable services */ -export interface QueryServicesDescriptorSDKType { - query_services: QueryServiceDescriptorSDKType[]; -} -/** QueryServiceDescriptor describes a cosmos-sdk queryable service */ -export interface QueryServiceDescriptor { - /** fullname is the protobuf fullname of the service descriptor */ - fullname: string; - /** is_module describes if this service is actually exposed by an application's module */ - isModule: boolean; - /** methods provides a list of query service methods */ - methods: QueryMethodDescriptor[]; -} -/** QueryServiceDescriptor describes a cosmos-sdk queryable service */ -export interface QueryServiceDescriptorSDKType { - fullname: string; - is_module: boolean; - methods: QueryMethodDescriptorSDKType[]; -} -/** - * 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 - */ -export interface QueryMethodDescriptor { - /** name is the protobuf name (not fullname) of the method */ - name: string; - /** - * full_query_path is the path that can be used to query - * this method via tendermint abci.Query - */ - fullQueryPath: string; -} -/** - * 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 - */ -export interface QueryMethodDescriptorSDKType { - name: string; - full_query_path: string; -} -export declare const AppDescriptor: { - encode(message: AppDescriptor, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): AppDescriptor; - fromPartial(object: DeepPartial): AppDescriptor; -}; -export declare const TxDescriptor: { - encode(message: TxDescriptor, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): TxDescriptor; - fromPartial(object: DeepPartial): TxDescriptor; -}; -export declare const AuthnDescriptor: { - encode(message: AuthnDescriptor, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): AuthnDescriptor; - fromPartial(object: DeepPartial): AuthnDescriptor; -}; -export declare const SigningModeDescriptor: { - encode(message: SigningModeDescriptor, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SigningModeDescriptor; - fromPartial(object: DeepPartial): SigningModeDescriptor; -}; -export declare const ChainDescriptor: { - encode(message: ChainDescriptor, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ChainDescriptor; - fromPartial(object: DeepPartial): ChainDescriptor; -}; -export declare const CodecDescriptor: { - encode(message: CodecDescriptor, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): CodecDescriptor; - fromPartial(object: DeepPartial): CodecDescriptor; -}; -export declare const InterfaceDescriptor: { - encode(message: InterfaceDescriptor, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): InterfaceDescriptor; - fromPartial(object: DeepPartial): InterfaceDescriptor; -}; -export declare const InterfaceImplementerDescriptor: { - encode(message: InterfaceImplementerDescriptor, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): InterfaceImplementerDescriptor; - fromPartial(object: DeepPartial): InterfaceImplementerDescriptor; -}; -export declare const InterfaceAcceptingMessageDescriptor: { - encode(message: InterfaceAcceptingMessageDescriptor, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): InterfaceAcceptingMessageDescriptor; - fromPartial(object: DeepPartial): InterfaceAcceptingMessageDescriptor; -}; -export declare const ConfigurationDescriptor: { - encode(message: ConfigurationDescriptor, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ConfigurationDescriptor; - fromPartial(object: DeepPartial): ConfigurationDescriptor; -}; -export declare const MsgDescriptor: { - encode(message: MsgDescriptor, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgDescriptor; - fromPartial(object: DeepPartial): MsgDescriptor; -}; -export declare const GetAuthnDescriptorRequest: { - encode(_: GetAuthnDescriptorRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetAuthnDescriptorRequest; - fromPartial(_: DeepPartial): GetAuthnDescriptorRequest; -}; -export declare const GetAuthnDescriptorResponse: { - encode(message: GetAuthnDescriptorResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetAuthnDescriptorResponse; - fromPartial(object: DeepPartial): GetAuthnDescriptorResponse; -}; -export declare const GetChainDescriptorRequest: { - encode(_: GetChainDescriptorRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetChainDescriptorRequest; - fromPartial(_: DeepPartial): GetChainDescriptorRequest; -}; -export declare const GetChainDescriptorResponse: { - encode(message: GetChainDescriptorResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetChainDescriptorResponse; - fromPartial(object: DeepPartial): GetChainDescriptorResponse; -}; -export declare const GetCodecDescriptorRequest: { - encode(_: GetCodecDescriptorRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetCodecDescriptorRequest; - fromPartial(_: DeepPartial): GetCodecDescriptorRequest; -}; -export declare const GetCodecDescriptorResponse: { - encode(message: GetCodecDescriptorResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetCodecDescriptorResponse; - fromPartial(object: DeepPartial): GetCodecDescriptorResponse; -}; -export declare const GetConfigurationDescriptorRequest: { - encode(_: GetConfigurationDescriptorRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetConfigurationDescriptorRequest; - fromPartial(_: DeepPartial): GetConfigurationDescriptorRequest; -}; -export declare const GetConfigurationDescriptorResponse: { - encode(message: GetConfigurationDescriptorResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetConfigurationDescriptorResponse; - fromPartial(object: DeepPartial): GetConfigurationDescriptorResponse; -}; -export declare const GetQueryServicesDescriptorRequest: { - encode(_: GetQueryServicesDescriptorRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetQueryServicesDescriptorRequest; - fromPartial(_: DeepPartial): GetQueryServicesDescriptorRequest; -}; -export declare const GetQueryServicesDescriptorResponse: { - encode(message: GetQueryServicesDescriptorResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetQueryServicesDescriptorResponse; - fromPartial(object: DeepPartial): GetQueryServicesDescriptorResponse; -}; -export declare const GetTxDescriptorRequest: { - encode(_: GetTxDescriptorRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetTxDescriptorRequest; - fromPartial(_: DeepPartial): GetTxDescriptorRequest; -}; -export declare const GetTxDescriptorResponse: { - encode(message: GetTxDescriptorResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetTxDescriptorResponse; - fromPartial(object: DeepPartial): GetTxDescriptorResponse; -}; -export declare const QueryServicesDescriptor: { - encode(message: QueryServicesDescriptor, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryServicesDescriptor; - fromPartial(object: DeepPartial): QueryServicesDescriptor; -}; -export declare const QueryServiceDescriptor: { - encode(message: QueryServiceDescriptor, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryServiceDescriptor; - fromPartial(object: DeepPartial): QueryServiceDescriptor; -}; -export declare const QueryMethodDescriptor: { - encode(message: QueryMethodDescriptor, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryMethodDescriptor; - fromPartial(object: DeepPartial): QueryMethodDescriptor; -}; diff --git a/packages/codegen/dist/cosmos/base/snapshots/v1beta1/snapshot.d.ts b/packages/codegen/dist/cosmos/base/snapshots/v1beta1/snapshot.d.ts deleted file mode 100644 index a771a8bf..00000000 --- a/packages/codegen/dist/cosmos/base/snapshots/v1beta1/snapshot.d.ts +++ /dev/null @@ -1,151 +0,0 @@ -/// -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** Snapshot contains Tendermint state sync snapshot info. */ -export interface Snapshot { - height: Long; - format: number; - chunks: number; - hash: Uint8Array; - metadata?: Metadata; -} -/** Snapshot contains Tendermint state sync snapshot info. */ -export interface SnapshotSDKType { - height: Long; - format: number; - chunks: number; - hash: Uint8Array; - metadata?: MetadataSDKType; -} -/** Metadata contains SDK-specific snapshot metadata. */ -export interface Metadata { - /** SHA-256 chunk hashes */ - chunkHashes: Uint8Array[]; -} -/** Metadata contains SDK-specific snapshot metadata. */ -export interface MetadataSDKType { - chunk_hashes: Uint8Array[]; -} -/** SnapshotItem is an item contained in a rootmulti.Store snapshot. */ -export interface SnapshotItem { - store?: SnapshotStoreItem; - iavl?: SnapshotIAVLItem; - extension?: SnapshotExtensionMeta; - extensionPayload?: SnapshotExtensionPayload; - kv?: SnapshotKVItem; - schema?: SnapshotSchema; -} -/** SnapshotItem is an item contained in a rootmulti.Store snapshot. */ -export interface SnapshotItemSDKType { - store?: SnapshotStoreItemSDKType; - iavl?: SnapshotIAVLItemSDKType; - extension?: SnapshotExtensionMetaSDKType; - extension_payload?: SnapshotExtensionPayloadSDKType; - kv?: SnapshotKVItemSDKType; - schema?: SnapshotSchemaSDKType; -} -/** SnapshotStoreItem contains metadata about a snapshotted store. */ -export interface SnapshotStoreItem { - name: string; -} -/** SnapshotStoreItem contains metadata about a snapshotted store. */ -export interface SnapshotStoreItemSDKType { - name: string; -} -/** SnapshotIAVLItem is an exported IAVL node. */ -export interface SnapshotIAVLItem { - key: Uint8Array; - value: Uint8Array; - /** version is block height */ - version: Long; - /** height is depth of the tree. */ - height: number; -} -/** SnapshotIAVLItem is an exported IAVL node. */ -export interface SnapshotIAVLItemSDKType { - key: Uint8Array; - value: Uint8Array; - version: Long; - height: number; -} -/** SnapshotExtensionMeta contains metadata about an external snapshotter. */ -export interface SnapshotExtensionMeta { - name: string; - format: number; -} -/** SnapshotExtensionMeta contains metadata about an external snapshotter. */ -export interface SnapshotExtensionMetaSDKType { - name: string; - format: number; -} -/** SnapshotExtensionPayload contains payloads of an external snapshotter. */ -export interface SnapshotExtensionPayload { - payload: Uint8Array; -} -/** SnapshotExtensionPayload contains payloads of an external snapshotter. */ -export interface SnapshotExtensionPayloadSDKType { - payload: Uint8Array; -} -/** SnapshotKVItem is an exported Key/Value Pair */ -export interface SnapshotKVItem { - key: Uint8Array; - value: Uint8Array; -} -/** SnapshotKVItem is an exported Key/Value Pair */ -export interface SnapshotKVItemSDKType { - key: Uint8Array; - value: Uint8Array; -} -/** SnapshotSchema is an exported schema of smt store */ -export interface SnapshotSchema { - keys: Uint8Array[]; -} -/** SnapshotSchema is an exported schema of smt store */ -export interface SnapshotSchemaSDKType { - keys: Uint8Array[]; -} -export declare const Snapshot: { - encode(message: Snapshot, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Snapshot; - fromPartial(object: DeepPartial): Snapshot; -}; -export declare const Metadata: { - encode(message: Metadata, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Metadata; - fromPartial(object: DeepPartial): Metadata; -}; -export declare const SnapshotItem: { - encode(message: SnapshotItem, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SnapshotItem; - fromPartial(object: DeepPartial): SnapshotItem; -}; -export declare const SnapshotStoreItem: { - encode(message: SnapshotStoreItem, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SnapshotStoreItem; - fromPartial(object: DeepPartial): SnapshotStoreItem; -}; -export declare const SnapshotIAVLItem: { - encode(message: SnapshotIAVLItem, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SnapshotIAVLItem; - fromPartial(object: DeepPartial): SnapshotIAVLItem; -}; -export declare const SnapshotExtensionMeta: { - encode(message: SnapshotExtensionMeta, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SnapshotExtensionMeta; - fromPartial(object: DeepPartial): SnapshotExtensionMeta; -}; -export declare const SnapshotExtensionPayload: { - encode(message: SnapshotExtensionPayload, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SnapshotExtensionPayload; - fromPartial(object: DeepPartial): SnapshotExtensionPayload; -}; -export declare const SnapshotKVItem: { - encode(message: SnapshotKVItem, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SnapshotKVItem; - fromPartial(object: DeepPartial): SnapshotKVItem; -}; -export declare const SnapshotSchema: { - encode(message: SnapshotSchema, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SnapshotSchema; - fromPartial(object: DeepPartial): SnapshotSchema; -}; diff --git a/packages/codegen/dist/cosmos/base/store/v1beta1/commit_info.d.ts b/packages/codegen/dist/cosmos/base/store/v1beta1/commit_info.d.ts deleted file mode 100644 index 6870078b..00000000 --- a/packages/codegen/dist/cosmos/base/store/v1beta1/commit_info.d.ts +++ /dev/null @@ -1,66 +0,0 @@ -/// -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * CommitInfo defines commit information used by the multi-store when committing - * a version/height. - */ -export interface CommitInfo { - version: Long; - storeInfos: StoreInfo[]; -} -/** - * CommitInfo defines commit information used by the multi-store when committing - * a version/height. - */ -export interface CommitInfoSDKType { - version: Long; - store_infos: StoreInfoSDKType[]; -} -/** - * StoreInfo defines store-specific commit information. It contains a reference - * between a store name and the commit ID. - */ -export interface StoreInfo { - name: string; - commitId?: CommitID; -} -/** - * StoreInfo defines store-specific commit information. It contains a reference - * between a store name and the commit ID. - */ -export interface StoreInfoSDKType { - name: string; - commit_id?: CommitIDSDKType; -} -/** - * CommitID defines the committment information when a specific store is - * committed. - */ -export interface CommitID { - version: Long; - hash: Uint8Array; -} -/** - * CommitID defines the committment information when a specific store is - * committed. - */ -export interface CommitIDSDKType { - version: Long; - hash: Uint8Array; -} -export declare const CommitInfo: { - encode(message: CommitInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): CommitInfo; - fromPartial(object: DeepPartial): CommitInfo; -}; -export declare const StoreInfo: { - encode(message: StoreInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): StoreInfo; - fromPartial(object: DeepPartial): StoreInfo; -}; -export declare const CommitID: { - encode(message: CommitID, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): CommitID; - fromPartial(object: DeepPartial): CommitID; -}; diff --git a/packages/codegen/dist/cosmos/base/store/v1beta1/listening.d.ts b/packages/codegen/dist/cosmos/base/store/v1beta1/listening.d.ts deleted file mode 100644 index 463f289b..00000000 --- a/packages/codegen/dist/cosmos/base/store/v1beta1/listening.d.ts +++ /dev/null @@ -1,35 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** - * 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 - */ -export interface StoreKVPair { - /** the store key for the KVStore this pair originates from */ - storeKey: string; - /** true indicates a delete operation, false indicates a set operation */ - delete: boolean; - key: Uint8Array; - value: Uint8Array; -} -/** - * 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 - */ -export interface StoreKVPairSDKType { - store_key: string; - delete: boolean; - key: Uint8Array; - value: Uint8Array; -} -export declare const StoreKVPair: { - encode(message: StoreKVPair, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): StoreKVPair; - fromPartial(object: DeepPartial): StoreKVPair; -}; diff --git a/packages/codegen/dist/cosmos/base/tendermint/v1beta1/query.d.ts b/packages/codegen/dist/cosmos/base/tendermint/v1beta1/query.d.ts deleted file mode 100644 index c5c1d545..00000000 --- a/packages/codegen/dist/cosmos/base/tendermint/v1beta1/query.d.ts +++ /dev/null @@ -1,245 +0,0 @@ -/// -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../query/v1beta1/pagination"; -import { Any, AnySDKType } from "../../../../google/protobuf/any"; -import { BlockID, BlockIDSDKType } from "../../../../tendermint/types/types"; -import { Block, BlockSDKType } from "../../../../tendermint/types/block"; -import { NodeInfo, NodeInfoSDKType } from "../../../../tendermint/p2p/types"; -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** GetValidatorSetByHeightRequest is the request type for the Query/GetValidatorSetByHeight RPC method. */ -export interface GetValidatorSetByHeightRequest { - height: Long; - /** pagination defines an pagination for the request. */ - pagination?: PageRequest; -} -/** GetValidatorSetByHeightRequest is the request type for the Query/GetValidatorSetByHeight RPC method. */ -export interface GetValidatorSetByHeightRequestSDKType { - height: Long; - pagination?: PageRequestSDKType; -} -/** GetValidatorSetByHeightResponse is the response type for the Query/GetValidatorSetByHeight RPC method. */ -export interface GetValidatorSetByHeightResponse { - blockHeight: Long; - validators: Validator[]; - /** pagination defines an pagination for the response. */ - pagination?: PageResponse; -} -/** GetValidatorSetByHeightResponse is the response type for the Query/GetValidatorSetByHeight RPC method. */ -export interface GetValidatorSetByHeightResponseSDKType { - block_height: Long; - validators: ValidatorSDKType[]; - pagination?: PageResponseSDKType; -} -/** GetLatestValidatorSetRequest is the request type for the Query/GetValidatorSetByHeight RPC method. */ -export interface GetLatestValidatorSetRequest { - /** pagination defines an pagination for the request. */ - pagination?: PageRequest; -} -/** GetLatestValidatorSetRequest is the request type for the Query/GetValidatorSetByHeight RPC method. */ -export interface GetLatestValidatorSetRequestSDKType { - pagination?: PageRequestSDKType; -} -/** GetLatestValidatorSetResponse is the response type for the Query/GetValidatorSetByHeight RPC method. */ -export interface GetLatestValidatorSetResponse { - blockHeight: Long; - validators: Validator[]; - /** pagination defines an pagination for the response. */ - pagination?: PageResponse; -} -/** GetLatestValidatorSetResponse is the response type for the Query/GetValidatorSetByHeight RPC method. */ -export interface GetLatestValidatorSetResponseSDKType { - block_height: Long; - validators: ValidatorSDKType[]; - pagination?: PageResponseSDKType; -} -/** Validator is the type for the validator-set. */ -export interface Validator { - address: string; - pubKey?: Any; - votingPower: Long; - proposerPriority: Long; -} -/** Validator is the type for the validator-set. */ -export interface ValidatorSDKType { - address: string; - pub_key?: AnySDKType; - voting_power: Long; - proposer_priority: Long; -} -/** GetBlockByHeightRequest is the request type for the Query/GetBlockByHeight RPC method. */ -export interface GetBlockByHeightRequest { - height: Long; -} -/** GetBlockByHeightRequest is the request type for the Query/GetBlockByHeight RPC method. */ -export interface GetBlockByHeightRequestSDKType { - height: Long; -} -/** GetBlockByHeightResponse is the response type for the Query/GetBlockByHeight RPC method. */ -export interface GetBlockByHeightResponse { - blockId?: BlockID; - block?: Block; -} -/** GetBlockByHeightResponse is the response type for the Query/GetBlockByHeight RPC method. */ -export interface GetBlockByHeightResponseSDKType { - block_id?: BlockIDSDKType; - block?: BlockSDKType; -} -/** GetLatestBlockRequest is the request type for the Query/GetLatestBlock RPC method. */ -export interface GetLatestBlockRequest { -} -/** GetLatestBlockRequest is the request type for the Query/GetLatestBlock RPC method. */ -export interface GetLatestBlockRequestSDKType { -} -/** GetLatestBlockResponse is the response type for the Query/GetLatestBlock RPC method. */ -export interface GetLatestBlockResponse { - blockId?: BlockID; - block?: Block; -} -/** GetLatestBlockResponse is the response type for the Query/GetLatestBlock RPC method. */ -export interface GetLatestBlockResponseSDKType { - block_id?: BlockIDSDKType; - block?: BlockSDKType; -} -/** GetSyncingRequest is the request type for the Query/GetSyncing RPC method. */ -export interface GetSyncingRequest { -} -/** GetSyncingRequest is the request type for the Query/GetSyncing RPC method. */ -export interface GetSyncingRequestSDKType { -} -/** GetSyncingResponse is the response type for the Query/GetSyncing RPC method. */ -export interface GetSyncingResponse { - syncing: boolean; -} -/** GetSyncingResponse is the response type for the Query/GetSyncing RPC method. */ -export interface GetSyncingResponseSDKType { - syncing: boolean; -} -/** GetNodeInfoRequest is the request type for the Query/GetNodeInfo RPC method. */ -export interface GetNodeInfoRequest { -} -/** GetNodeInfoRequest is the request type for the Query/GetNodeInfo RPC method. */ -export interface GetNodeInfoRequestSDKType { -} -/** GetNodeInfoResponse is the response type for the Query/GetNodeInfo RPC method. */ -export interface GetNodeInfoResponse { - nodeInfo?: NodeInfo; - applicationVersion?: VersionInfo; -} -/** GetNodeInfoResponse is the response type for the Query/GetNodeInfo RPC method. */ -export interface GetNodeInfoResponseSDKType { - node_info?: NodeInfoSDKType; - application_version?: VersionInfoSDKType; -} -/** VersionInfo is the type for the GetNodeInfoResponse message. */ -export interface VersionInfo { - name: string; - appName: string; - version: string; - gitCommit: string; - buildTags: string; - goVersion: string; - buildDeps: Module[]; - /** Since: cosmos-sdk 0.43 */ - cosmosSdkVersion: string; -} -/** VersionInfo is the type for the GetNodeInfoResponse message. */ -export interface VersionInfoSDKType { - name: string; - app_name: string; - version: string; - git_commit: string; - build_tags: string; - go_version: string; - build_deps: ModuleSDKType[]; - cosmos_sdk_version: string; -} -/** Module is the type for VersionInfo */ -export interface Module { - /** module path */ - path: string; - /** module version */ - version: string; - /** checksum */ - sum: string; -} -/** Module is the type for VersionInfo */ -export interface ModuleSDKType { - path: string; - version: string; - sum: string; -} -export declare const GetValidatorSetByHeightRequest: { - encode(message: GetValidatorSetByHeightRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetValidatorSetByHeightRequest; - fromPartial(object: DeepPartial): GetValidatorSetByHeightRequest; -}; -export declare const GetValidatorSetByHeightResponse: { - encode(message: GetValidatorSetByHeightResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetValidatorSetByHeightResponse; - fromPartial(object: DeepPartial): GetValidatorSetByHeightResponse; -}; -export declare const GetLatestValidatorSetRequest: { - encode(message: GetLatestValidatorSetRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetLatestValidatorSetRequest; - fromPartial(object: DeepPartial): GetLatestValidatorSetRequest; -}; -export declare const GetLatestValidatorSetResponse: { - encode(message: GetLatestValidatorSetResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetLatestValidatorSetResponse; - fromPartial(object: DeepPartial): GetLatestValidatorSetResponse; -}; -export declare const Validator: { - encode(message: Validator, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Validator; - fromPartial(object: DeepPartial): Validator; -}; -export declare const GetBlockByHeightRequest: { - encode(message: GetBlockByHeightRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetBlockByHeightRequest; - fromPartial(object: DeepPartial): GetBlockByHeightRequest; -}; -export declare const GetBlockByHeightResponse: { - encode(message: GetBlockByHeightResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetBlockByHeightResponse; - fromPartial(object: DeepPartial): GetBlockByHeightResponse; -}; -export declare const GetLatestBlockRequest: { - encode(_: GetLatestBlockRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetLatestBlockRequest; - fromPartial(_: DeepPartial): GetLatestBlockRequest; -}; -export declare const GetLatestBlockResponse: { - encode(message: GetLatestBlockResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetLatestBlockResponse; - fromPartial(object: DeepPartial): GetLatestBlockResponse; -}; -export declare const GetSyncingRequest: { - encode(_: GetSyncingRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetSyncingRequest; - fromPartial(_: DeepPartial): GetSyncingRequest; -}; -export declare const GetSyncingResponse: { - encode(message: GetSyncingResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetSyncingResponse; - fromPartial(object: DeepPartial): GetSyncingResponse; -}; -export declare const GetNodeInfoRequest: { - encode(_: GetNodeInfoRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetNodeInfoRequest; - fromPartial(_: DeepPartial): GetNodeInfoRequest; -}; -export declare const GetNodeInfoResponse: { - encode(message: GetNodeInfoResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetNodeInfoResponse; - fromPartial(object: DeepPartial): GetNodeInfoResponse; -}; -export declare const VersionInfo: { - encode(message: VersionInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): VersionInfo; - fromPartial(object: DeepPartial): VersionInfo; -}; -export declare const Module: { - encode(message: Module, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Module; - fromPartial(object: DeepPartial): Module; -}; diff --git a/packages/codegen/dist/cosmos/base/tendermint/v1beta1/query.lcd.d.ts b/packages/codegen/dist/cosmos/base/tendermint/v1beta1/query.lcd.d.ts deleted file mode 100644 index 2baf7f20..00000000 --- a/packages/codegen/dist/cosmos/base/tendermint/v1beta1/query.lcd.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { GetNodeInfoRequest, GetNodeInfoResponseSDKType, GetSyncingRequest, GetSyncingResponseSDKType, GetLatestBlockRequest, GetLatestBlockResponseSDKType, GetBlockByHeightRequest, GetBlockByHeightResponseSDKType, GetLatestValidatorSetRequest, GetLatestValidatorSetResponseSDKType, GetValidatorSetByHeightRequest, GetValidatorSetByHeightResponseSDKType } from "./query"; -export declare class LCDQueryClient { - req: LCDClient; - constructor({ requestClient }: { - requestClient: LCDClient; - }); - getNodeInfo(_params?: GetNodeInfoRequest): Promise; - getSyncing(_params?: GetSyncingRequest): Promise; - getLatestBlock(_params?: GetLatestBlockRequest): Promise; - getBlockByHeight(params: GetBlockByHeightRequest): Promise; - getLatestValidatorSet(params?: GetLatestValidatorSetRequest): Promise; - getValidatorSetByHeight(params: GetValidatorSetByHeightRequest): Promise; -} diff --git a/packages/codegen/dist/cosmos/base/tendermint/v1beta1/query.rpc.Service.d.ts b/packages/codegen/dist/cosmos/base/tendermint/v1beta1/query.rpc.Service.d.ts deleted file mode 100644 index e1584b9d..00000000 --- a/packages/codegen/dist/cosmos/base/tendermint/v1beta1/query.rpc.Service.d.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { Rpc } from "../../../../helpers"; -import { QueryClient } from "@cosmjs/stargate"; -import { GetNodeInfoRequest, GetNodeInfoResponse, GetSyncingRequest, GetSyncingResponse, GetLatestBlockRequest, GetLatestBlockResponse, GetBlockByHeightRequest, GetBlockByHeightResponse, GetLatestValidatorSetRequest, GetLatestValidatorSetResponse, GetValidatorSetByHeightRequest, GetValidatorSetByHeightResponse } from "./query"; -/** Service defines the gRPC querier service for tendermint queries. */ -export interface Service { - /** GetNodeInfo queries the current node info. */ - getNodeInfo(request?: GetNodeInfoRequest): Promise; - /** GetSyncing queries node syncing. */ - getSyncing(request?: GetSyncingRequest): Promise; - /** GetLatestBlock returns the latest block. */ - getLatestBlock(request?: GetLatestBlockRequest): Promise; - /** GetBlockByHeight queries block for given height. */ - getBlockByHeight(request: GetBlockByHeightRequest): Promise; - /** GetLatestValidatorSet queries latest validator-set. */ - getLatestValidatorSet(request?: GetLatestValidatorSetRequest): Promise; - /** GetValidatorSetByHeight queries validator-set at a given height. */ - getValidatorSetByHeight(request: GetValidatorSetByHeightRequest): Promise; -} -export declare class ServiceClientImpl implements Service { - private readonly rpc; - constructor(rpc: Rpc); - getNodeInfo(request?: GetNodeInfoRequest): Promise; - getSyncing(request?: GetSyncingRequest): Promise; - getLatestBlock(request?: GetLatestBlockRequest): Promise; - getBlockByHeight(request: GetBlockByHeightRequest): Promise; - getLatestValidatorSet(request?: GetLatestValidatorSetRequest): Promise; - getValidatorSetByHeight(request: GetValidatorSetByHeightRequest): Promise; -} -export declare const createRpcQueryExtension: (base: QueryClient) => { - getNodeInfo(request?: GetNodeInfoRequest): Promise; - getSyncing(request?: GetSyncingRequest): Promise; - getLatestBlock(request?: GetLatestBlockRequest): Promise; - getBlockByHeight(request: GetBlockByHeightRequest): Promise; - getLatestValidatorSet(request?: GetLatestValidatorSetRequest): Promise; - getValidatorSetByHeight(request: GetValidatorSetByHeightRequest): Promise; -}; diff --git a/packages/codegen/dist/cosmos/base/v1beta1/coin.d.ts b/packages/codegen/dist/cosmos/base/v1beta1/coin.d.ts deleted file mode 100644 index 8fb1fcd3..00000000 --- a/packages/codegen/dist/cosmos/base/v1beta1/coin.d.ts +++ /dev/null @@ -1,78 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * 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. - */ -export interface Coin { - denom: string; - amount: string; -} -/** - * 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. - */ -export interface CoinSDKType { - denom: string; - amount: string; -} -/** - * 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. - */ -export interface DecCoin { - denom: string; - amount: string; -} -/** - * 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. - */ -export interface DecCoinSDKType { - denom: string; - amount: string; -} -/** IntProto defines a Protobuf wrapper around an Int object. */ -export interface IntProto { - int: string; -} -/** IntProto defines a Protobuf wrapper around an Int object. */ -export interface IntProtoSDKType { - int: string; -} -/** DecProto defines a Protobuf wrapper around a Dec object. */ -export interface DecProto { - dec: string; -} -/** DecProto defines a Protobuf wrapper around a Dec object. */ -export interface DecProtoSDKType { - dec: string; -} -export declare const Coin: { - encode(message: Coin, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Coin; - fromPartial(object: DeepPartial): Coin; -}; -export declare const DecCoin: { - encode(message: DecCoin, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): DecCoin; - fromPartial(object: DeepPartial): DecCoin; -}; -export declare const IntProto: { - encode(message: IntProto, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): IntProto; - fromPartial(object: DeepPartial): IntProto; -}; -export declare const DecProto: { - encode(message: DecProto, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): DecProto; - fromPartial(object: DeepPartial): DecProto; -}; diff --git a/packages/codegen/dist/cosmos/bundle.d.ts b/packages/codegen/dist/cosmos/bundle.d.ts deleted file mode 100644 index 8769f2e4..00000000 --- a/packages/codegen/dist/cosmos/bundle.d.ts +++ /dev/null @@ -1,8995 +0,0 @@ -/// -import * as _3 from "./app/v1alpha1/config"; -import * as _4 from "./app/v1alpha1/module"; -import * as _5 from "./app/v1alpha1/query"; -import * as _6 from "./auth/v1beta1/auth"; -import * as _7 from "./auth/v1beta1/genesis"; -import * as _8 from "./auth/v1beta1/query"; -import * as _9 from "./authz/v1beta1/authz"; -import * as _10 from "./authz/v1beta1/event"; -import * as _11 from "./authz/v1beta1/genesis"; -import * as _12 from "./authz/v1beta1/query"; -import * as _13 from "./authz/v1beta1/tx"; -import * as _14 from "./bank/v1beta1/authz"; -import * as _15 from "./bank/v1beta1/bank"; -import * as _16 from "./bank/v1beta1/genesis"; -import * as _17 from "./bank/v1beta1/query"; -import * as _18 from "./bank/v1beta1/tx"; -import * as _19 from "./base/abci/v1beta1/abci"; -import * as _20 from "./base/kv/v1beta1/kv"; -import * as _21 from "./base/query/v1beta1/pagination"; -import * as _22 from "./base/reflection/v1beta1/reflection"; -import * as _23 from "./base/reflection/v2alpha1/reflection"; -import * as _24 from "./base/snapshots/v1beta1/snapshot"; -import * as _25 from "./base/store/v1beta1/commit_info"; -import * as _26 from "./base/store/v1beta1/listening"; -import * as _27 from "./base/tendermint/v1beta1/query"; -import * as _28 from "./base/v1beta1/coin"; -import * as _29 from "./capability/v1beta1/capability"; -import * as _30 from "./capability/v1beta1/genesis"; -import * as _31 from "./crisis/v1beta1/genesis"; -import * as _32 from "./crisis/v1beta1/tx"; -import * as _33 from "./crypto/ed25519/keys"; -import * as _34 from "./crypto/hd/v1/hd"; -import * as _35 from "./crypto/keyring/v1/record"; -import * as _36 from "./crypto/multisig/keys"; -import * as _37 from "./crypto/secp256k1/keys"; -import * as _38 from "./crypto/secp256r1/keys"; -import * as _39 from "./distribution/v1beta1/distribution"; -import * as _40 from "./distribution/v1beta1/genesis"; -import * as _41 from "./distribution/v1beta1/query"; -import * as _42 from "./distribution/v1beta1/tx"; -import * as _43 from "./evidence/v1beta1/evidence"; -import * as _44 from "./evidence/v1beta1/genesis"; -import * as _45 from "./evidence/v1beta1/query"; -import * as _46 from "./evidence/v1beta1/tx"; -import * as _47 from "./feegrant/v1beta1/feegrant"; -import * as _48 from "./feegrant/v1beta1/genesis"; -import * as _49 from "./feegrant/v1beta1/query"; -import * as _50 from "./feegrant/v1beta1/tx"; -import * as _51 from "./genutil/v1beta1/genesis"; -import * as _52 from "./gov/v1/genesis"; -import * as _53 from "./gov/v1/gov"; -import * as _54 from "./gov/v1/query"; -import * as _55 from "./gov/v1/tx"; -import * as _56 from "./gov/v1beta1/genesis"; -import * as _57 from "./gov/v1beta1/gov"; -import * as _58 from "./gov/v1beta1/query"; -import * as _59 from "./gov/v1beta1/tx"; -import * as _60 from "./group/v1/events"; -import * as _61 from "./group/v1/genesis"; -import * as _62 from "./group/v1/query"; -import * as _63 from "./group/v1/tx"; -import * as _64 from "./group/v1/types"; -import * as _65 from "./mint/v1beta1/genesis"; -import * as _66 from "./mint/v1beta1/mint"; -import * as _67 from "./mint/v1beta1/query"; -import * as _69 from "./nft/v1beta1/event"; -import * as _70 from "./nft/v1beta1/genesis"; -import * as _71 from "./nft/v1beta1/nft"; -import * as _72 from "./nft/v1beta1/query"; -import * as _73 from "./nft/v1beta1/tx"; -import * as _74 from "./orm/v1/orm"; -import * as _75 from "./orm/v1alpha1/schema"; -import * as _76 from "./params/v1beta1/params"; -import * as _77 from "./params/v1beta1/query"; -import * as _78 from "./slashing/v1beta1/genesis"; -import * as _79 from "./slashing/v1beta1/query"; -import * as _80 from "./slashing/v1beta1/slashing"; -import * as _81 from "./slashing/v1beta1/tx"; -import * as _82 from "./staking/v1beta1/authz"; -import * as _83 from "./staking/v1beta1/genesis"; -import * as _84 from "./staking/v1beta1/query"; -import * as _85 from "./staking/v1beta1/staking"; -import * as _86 from "./staking/v1beta1/tx"; -import * as _87 from "./tx/signing/v1beta1/signing"; -import * as _88 from "./tx/v1beta1/service"; -import * as _89 from "./tx/v1beta1/tx"; -import * as _90 from "./upgrade/v1beta1/query"; -import * as _91 from "./upgrade/v1beta1/tx"; -import * as _92 from "./upgrade/v1beta1/upgrade"; -import * as _93 from "./vesting/v1beta1/tx"; -import * as _94 from "./vesting/v1beta1/vesting"; -import * as _145 from "./auth/v1beta1/query.lcd"; -import * as _146 from "./authz/v1beta1/query.lcd"; -import * as _147 from "./bank/v1beta1/query.lcd"; -import * as _148 from "./base/tendermint/v1beta1/query.lcd"; -import * as _149 from "./distribution/v1beta1/query.lcd"; -import * as _150 from "./evidence/v1beta1/query.lcd"; -import * as _151 from "./feegrant/v1beta1/query.lcd"; -import * as _152 from "./gov/v1/query.lcd"; -import * as _153 from "./gov/v1beta1/query.lcd"; -import * as _154 from "./group/v1/query.lcd"; -import * as _155 from "./mint/v1beta1/query.lcd"; -import * as _156 from "./nft/v1beta1/query.lcd"; -import * as _157 from "./params/v1beta1/query.lcd"; -import * as _158 from "./slashing/v1beta1/query.lcd"; -import * as _159 from "./staking/v1beta1/query.lcd"; -import * as _160 from "./tx/v1beta1/service.lcd"; -import * as _161 from "./upgrade/v1beta1/query.lcd"; -import * as _162 from "./app/v1alpha1/query.rpc.Query"; -import * as _163 from "./auth/v1beta1/query.rpc.Query"; -import * as _164 from "./authz/v1beta1/query.rpc.Query"; -import * as _165 from "./bank/v1beta1/query.rpc.Query"; -import * as _166 from "./base/tendermint/v1beta1/query.rpc.Service"; -import * as _167 from "./distribution/v1beta1/query.rpc.Query"; -import * as _168 from "./evidence/v1beta1/query.rpc.Query"; -import * as _169 from "./feegrant/v1beta1/query.rpc.Query"; -import * as _170 from "./gov/v1/query.rpc.Query"; -import * as _171 from "./gov/v1beta1/query.rpc.Query"; -import * as _172 from "./group/v1/query.rpc.Query"; -import * as _173 from "./mint/v1beta1/query.rpc.Query"; -import * as _174 from "./nft/v1beta1/query.rpc.Query"; -import * as _175 from "./params/v1beta1/query.rpc.Query"; -import * as _176 from "./slashing/v1beta1/query.rpc.Query"; -import * as _177 from "./staking/v1beta1/query.rpc.Query"; -import * as _178 from "./tx/v1beta1/service.rpc.Service"; -import * as _179 from "./upgrade/v1beta1/query.rpc.Query"; -import * as _180 from "./authz/v1beta1/tx.rpc.msg"; -import * as _181 from "./bank/v1beta1/tx.rpc.msg"; -import * as _182 from "./crisis/v1beta1/tx.rpc.msg"; -import * as _183 from "./distribution/v1beta1/tx.rpc.msg"; -import * as _184 from "./evidence/v1beta1/tx.rpc.msg"; -import * as _185 from "./feegrant/v1beta1/tx.rpc.msg"; -import * as _186 from "./gov/v1/tx.rpc.msg"; -import * as _187 from "./gov/v1beta1/tx.rpc.msg"; -import * as _188 from "./group/v1/tx.rpc.msg"; -import * as _189 from "./nft/v1beta1/tx.rpc.msg"; -import * as _190 from "./slashing/v1beta1/tx.rpc.msg"; -import * as _191 from "./staking/v1beta1/tx.rpc.msg"; -import * as _192 from "./upgrade/v1beta1/tx.rpc.msg"; -import * as _193 from "./vesting/v1beta1/tx.rpc.msg"; -export declare namespace cosmos { - namespace app { - const v1alpha1: { - QueryClientImpl: typeof _162.QueryClientImpl; - createRpcQueryExtension: (base: import("@cosmjs/stargate").QueryClient) => { - config(request?: _5.QueryConfigRequest): Promise<_5.QueryConfigResponse>; - }; - QueryConfigRequest: { - encode(_: _5.QueryConfigRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _5.QueryConfigRequest; - fromPartial(_: {}): _5.QueryConfigRequest; - }; - QueryConfigResponse: { - encode(message: _5.QueryConfigResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _5.QueryConfigResponse; - fromPartial(object: { - config?: { - modules?: { - name?: string; - config?: { - typeUrl?: string; - value?: Uint8Array; - }; - }[]; - }; - }): _5.QueryConfigResponse; - }; - ModuleDescriptor: { - encode(message: _4.ModuleDescriptor, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _4.ModuleDescriptor; - fromPartial(object: { - goImport?: string; - usePackage?: { - name?: string; - revision?: number; - }[]; - canMigrateFrom?: { - module?: string; - }[]; - }): _4.ModuleDescriptor; - }; - PackageReference: { - encode(message: _4.PackageReference, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _4.PackageReference; - fromPartial(object: { - name?: string; - revision?: number; - }): _4.PackageReference; - }; - MigrateFromInfo: { - encode(message: _4.MigrateFromInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _4.MigrateFromInfo; - fromPartial(object: { - module?: string; - }): _4.MigrateFromInfo; - }; - Config: { - encode(message: _3.Config, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _3.Config; - fromPartial(object: { - modules?: { - name?: string; - config?: { - typeUrl?: string; - value?: Uint8Array; - }; - }[]; - }): _3.Config; - }; - ModuleConfig: { - encode(message: _3.ModuleConfig, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _3.ModuleConfig; - fromPartial(object: { - name?: string; - config?: { - typeUrl?: string; - value?: Uint8Array; - }; - }): _3.ModuleConfig; - }; - }; - } - namespace auth { - const v1beta1: { - QueryClientImpl: typeof _163.QueryClientImpl; - createRpcQueryExtension: (base: import("@cosmjs/stargate").QueryClient) => { - accounts(request?: _8.QueryAccountsRequest): Promise<_8.QueryAccountsResponse>; - account(request: _8.QueryAccountRequest): Promise<_8.QueryAccountResponse>; - params(request?: _8.QueryParamsRequest): Promise<_8.QueryParamsResponse>; - moduleAccounts(request?: _8.QueryModuleAccountsRequest): Promise<_8.QueryModuleAccountsResponse>; - bech32Prefix(request?: _8.Bech32PrefixRequest): Promise<_8.Bech32PrefixResponse>; - addressBytesToString(request: _8.AddressBytesToStringRequest): Promise<_8.AddressBytesToStringResponse>; - addressStringToBytes(request: _8.AddressStringToBytesRequest): Promise<_8.AddressStringToBytesResponse>; - }; - LCDQueryClient: typeof _145.LCDQueryClient; - QueryAccountsRequest: { - encode(message: _8.QueryAccountsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _8.QueryAccountsRequest; - fromPartial(object: { - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _8.QueryAccountsRequest; - }; - QueryAccountsResponse: { - encode(message: _8.QueryAccountsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _8.QueryAccountsResponse; - fromPartial(object: { - accounts?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _8.QueryAccountsResponse; - }; - QueryAccountRequest: { - encode(message: _8.QueryAccountRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _8.QueryAccountRequest; - fromPartial(object: { - address?: string; - }): _8.QueryAccountRequest; - }; - QueryModuleAccountsRequest: { - encode(_: _8.QueryModuleAccountsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _8.QueryModuleAccountsRequest; - fromPartial(_: {}): _8.QueryModuleAccountsRequest; - }; - QueryParamsResponse: { - encode(message: _8.QueryParamsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _8.QueryParamsResponse; - fromPartial(object: { - params?: { - maxMemoCharacters?: string | number | import("long").Long; - txSigLimit?: string | number | import("long").Long; - txSizeCostPerByte?: string | number | import("long").Long; - sigVerifyCostEd25519?: string | number | import("long").Long; - sigVerifyCostSecp256k1?: string | number | import("long").Long; - }; - }): _8.QueryParamsResponse; - }; - QueryAccountResponse: { - encode(message: _8.QueryAccountResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _8.QueryAccountResponse; - fromPartial(object: { - account?: { - typeUrl?: string; - value?: Uint8Array; - }; - }): _8.QueryAccountResponse; - }; - QueryParamsRequest: { - encode(_: _8.QueryParamsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _8.QueryParamsRequest; - fromPartial(_: {}): _8.QueryParamsRequest; - }; - QueryModuleAccountsResponse: { - encode(message: _8.QueryModuleAccountsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _8.QueryModuleAccountsResponse; - fromPartial(object: { - accounts?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - }): _8.QueryModuleAccountsResponse; - }; - Bech32PrefixRequest: { - encode(_: _8.Bech32PrefixRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _8.Bech32PrefixRequest; - fromPartial(_: {}): _8.Bech32PrefixRequest; - }; - Bech32PrefixResponse: { - encode(message: _8.Bech32PrefixResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _8.Bech32PrefixResponse; - fromPartial(object: { - bech32Prefix?: string; - }): _8.Bech32PrefixResponse; - }; - AddressBytesToStringRequest: { - encode(message: _8.AddressBytesToStringRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _8.AddressBytesToStringRequest; - fromPartial(object: { - addressBytes?: Uint8Array; - }): _8.AddressBytesToStringRequest; - }; - AddressBytesToStringResponse: { - encode(message: _8.AddressBytesToStringResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _8.AddressBytesToStringResponse; - fromPartial(object: { - addressString?: string; - }): _8.AddressBytesToStringResponse; - }; - AddressStringToBytesRequest: { - encode(message: _8.AddressStringToBytesRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _8.AddressStringToBytesRequest; - fromPartial(object: { - addressString?: string; - }): _8.AddressStringToBytesRequest; - }; - AddressStringToBytesResponse: { - encode(message: _8.AddressStringToBytesResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _8.AddressStringToBytesResponse; - fromPartial(object: { - addressBytes?: Uint8Array; - }): _8.AddressStringToBytesResponse; - }; - GenesisState: { - encode(message: _7.GenesisState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _7.GenesisState; - fromPartial(object: { - params?: { - maxMemoCharacters?: string | number | import("long").Long; - txSigLimit?: string | number | import("long").Long; - txSizeCostPerByte?: string | number | import("long").Long; - sigVerifyCostEd25519?: string | number | import("long").Long; - sigVerifyCostSecp256k1?: string | number | import("long").Long; - }; - accounts?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - }): _7.GenesisState; - }; - BaseAccount: { - encode(message: _6.BaseAccount, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _6.BaseAccount; - fromPartial(object: { - address?: string; - pubKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - accountNumber?: string | number | import("long").Long; - sequence?: string | number | import("long").Long; - }): _6.BaseAccount; - }; - ModuleAccount: { - encode(message: _6.ModuleAccount, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _6.ModuleAccount; - fromPartial(object: { - baseAccount?: { - address?: string; - pubKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - accountNumber?: string | number | import("long").Long; - sequence?: string | number | import("long").Long; - }; - name?: string; - permissions?: string[]; - }): _6.ModuleAccount; - }; - Params: { - encode(message: _6.Params, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _6.Params; - fromPartial(object: { - maxMemoCharacters?: string | number | import("long").Long; - txSigLimit?: string | number | import("long").Long; - txSizeCostPerByte?: string | number | import("long").Long; - sigVerifyCostEd25519?: string | number | import("long").Long; - sigVerifyCostSecp256k1?: string | number | import("long").Long; - }): _6.Params; - }; - }; - } - namespace authz { - const v1beta1: { - MsgClientImpl: typeof _180.MsgClientImpl; - QueryClientImpl: typeof _164.QueryClientImpl; - createRpcQueryExtension: (base: import("@cosmjs/stargate").QueryClient) => { - grants(request: _12.QueryGrantsRequest): Promise<_12.QueryGrantsResponse>; - granterGrants(request: _12.QueryGranterGrantsRequest): Promise<_12.QueryGranterGrantsResponse>; - granteeGrants(request: _12.QueryGranteeGrantsRequest): Promise<_12.QueryGranteeGrantsResponse>; - }; - LCDQueryClient: typeof _146.LCDQueryClient; - MsgGrant: { - encode(message: _13.MsgGrant, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _13.MsgGrant; - fromPartial(object: { - granter?: string; - grantee?: string; - grant?: { - authorization?: { - typeUrl?: string; - value?: Uint8Array; - }; - expiration?: Date; - }; - }): _13.MsgGrant; - }; - MsgExecResponse: { - encode(message: _13.MsgExecResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _13.MsgExecResponse; - fromPartial(object: { - results?: Uint8Array[]; - }): _13.MsgExecResponse; - }; - MsgExec: { - encode(message: _13.MsgExec, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _13.MsgExec; - fromPartial(object: { - grantee?: string; - msgs?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - }): _13.MsgExec; - }; - MsgGrantResponse: { - encode(_: _13.MsgGrantResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _13.MsgGrantResponse; - fromPartial(_: {}): _13.MsgGrantResponse; - }; - MsgRevoke: { - encode(message: _13.MsgRevoke, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _13.MsgRevoke; - fromPartial(object: { - granter?: string; - grantee?: string; - msgTypeUrl?: string; - }): _13.MsgRevoke; - }; - MsgRevokeResponse: { - encode(_: _13.MsgRevokeResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _13.MsgRevokeResponse; - fromPartial(_: {}): _13.MsgRevokeResponse; - }; - QueryGrantsRequest: { - encode(message: _12.QueryGrantsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _12.QueryGrantsRequest; - fromPartial(object: { - granter?: string; - grantee?: string; - msgTypeUrl?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _12.QueryGrantsRequest; - }; - QueryGrantsResponse: { - encode(message: _12.QueryGrantsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _12.QueryGrantsResponse; - fromPartial(object: { - grants?: { - authorization?: { - typeUrl?: string; - value?: Uint8Array; - }; - expiration?: Date; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _12.QueryGrantsResponse; - }; - QueryGranterGrantsRequest: { - encode(message: _12.QueryGranterGrantsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _12.QueryGranterGrantsRequest; - fromPartial(object: { - granter?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _12.QueryGranterGrantsRequest; - }; - QueryGranterGrantsResponse: { - encode(message: _12.QueryGranterGrantsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _12.QueryGranterGrantsResponse; - fromPartial(object: { - grants?: { - granter?: string; - grantee?: string; - authorization?: { - typeUrl?: string; - value?: Uint8Array; - }; - expiration?: Date; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _12.QueryGranterGrantsResponse; - }; - QueryGranteeGrantsRequest: { - encode(message: _12.QueryGranteeGrantsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _12.QueryGranteeGrantsRequest; - fromPartial(object: { - grantee?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _12.QueryGranteeGrantsRequest; - }; - QueryGranteeGrantsResponse: { - encode(message: _12.QueryGranteeGrantsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _12.QueryGranteeGrantsResponse; - fromPartial(object: { - grants?: { - granter?: string; - grantee?: string; - authorization?: { - typeUrl?: string; - value?: Uint8Array; - }; - expiration?: Date; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _12.QueryGranteeGrantsResponse; - }; - GenesisState: { - encode(message: _11.GenesisState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _11.GenesisState; - fromPartial(object: { - authorization?: { - granter?: string; - grantee?: string; - authorization?: { - typeUrl?: string; - value?: Uint8Array; - }; - expiration?: Date; - }[]; - }): _11.GenesisState; - }; - EventGrant: { - encode(message: _10.EventGrant, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _10.EventGrant; - fromPartial(object: { - msgTypeUrl?: string; - granter?: string; - grantee?: string; - }): _10.EventGrant; - }; - EventRevoke: { - encode(message: _10.EventRevoke, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _10.EventRevoke; - fromPartial(object: { - msgTypeUrl?: string; - granter?: string; - grantee?: string; - }): _10.EventRevoke; - }; - GenericAuthorization: { - encode(message: _9.GenericAuthorization, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _9.GenericAuthorization; - fromPartial(object: { - msg?: string; - }): _9.GenericAuthorization; - }; - Grant: { - encode(message: _9.Grant, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _9.Grant; - fromPartial(object: { - authorization?: { - typeUrl?: string; - value?: Uint8Array; - }; - expiration?: Date; - }): _9.Grant; - }; - GrantAuthorization: { - encode(message: _9.GrantAuthorization, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _9.GrantAuthorization; - fromPartial(object: { - granter?: string; - grantee?: string; - authorization?: { - typeUrl?: string; - value?: Uint8Array; - }; - expiration?: Date; - }): _9.GrantAuthorization; - }; - GrantQueueItem: { - encode(message: _9.GrantQueueItem, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _9.GrantQueueItem; - fromPartial(object: { - msgTypeUrls?: string[]; - }): _9.GrantQueueItem; - }; - }; - } - namespace bank { - const v1beta1: { - MsgClientImpl: typeof _181.MsgClientImpl; - QueryClientImpl: typeof _165.QueryClientImpl; - createRpcQueryExtension: (base: import("@cosmjs/stargate").QueryClient) => { - balance(request: _17.QueryBalanceRequest): Promise<_17.QueryBalanceResponse>; - allBalances(request: _17.QueryAllBalancesRequest): Promise<_17.QueryAllBalancesResponse>; - spendableBalances(request: _17.QuerySpendableBalancesRequest): Promise<_17.QuerySpendableBalancesResponse>; - totalSupply(request?: _17.QueryTotalSupplyRequest): Promise<_17.QueryTotalSupplyResponse>; - supplyOf(request: _17.QuerySupplyOfRequest): Promise<_17.QuerySupplyOfResponse>; - params(request?: _17.QueryParamsRequest): Promise<_17.QueryParamsResponse>; - denomMetadata(request: _17.QueryDenomMetadataRequest): Promise<_17.QueryDenomMetadataResponse>; - denomsMetadata(request?: _17.QueryDenomsMetadataRequest): Promise<_17.QueryDenomsMetadataResponse>; - denomOwners(request: _17.QueryDenomOwnersRequest): Promise<_17.QueryDenomOwnersResponse>; - }; - LCDQueryClient: typeof _147.LCDQueryClient; - MsgSend: { - encode(message: _18.MsgSend, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _18.MsgSend; - fromPartial(object: { - fromAddress?: string; - toAddress?: string; - amount?: { - denom?: string; - amount?: string; - }[]; - }): _18.MsgSend; - }; - MsgSendResponse: { - encode(_: _18.MsgSendResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _18.MsgSendResponse; - fromPartial(_: {}): _18.MsgSendResponse; - }; - MsgMultiSend: { - encode(message: _18.MsgMultiSend, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _18.MsgMultiSend; - fromPartial(object: { - inputs?: { - address?: string; - coins?: { - denom?: string; - amount?: string; - }[]; - }[]; - outputs?: { - address?: string; - coins?: { - denom?: string; - amount?: string; - }[]; - }[]; - }): _18.MsgMultiSend; - }; - MsgMultiSendResponse: { - encode(_: _18.MsgMultiSendResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _18.MsgMultiSendResponse; - fromPartial(_: {}): _18.MsgMultiSendResponse; - }; - QueryBalanceRequest: { - encode(message: _17.QueryBalanceRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _17.QueryBalanceRequest; - fromPartial(object: { - address?: string; - denom?: string; - }): _17.QueryBalanceRequest; - }; - QueryBalanceResponse: { - encode(message: _17.QueryBalanceResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _17.QueryBalanceResponse; - fromPartial(object: { - balance?: { - denom?: string; - amount?: string; - }; - }): _17.QueryBalanceResponse; - }; - QueryAllBalancesRequest: { - encode(message: _17.QueryAllBalancesRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _17.QueryAllBalancesRequest; - fromPartial(object: { - address?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _17.QueryAllBalancesRequest; - }; - QueryAllBalancesResponse: { - encode(message: _17.QueryAllBalancesResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _17.QueryAllBalancesResponse; - fromPartial(object: { - balances?: { - denom?: string; - amount?: string; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _17.QueryAllBalancesResponse; - }; - QuerySpendableBalancesRequest: { - encode(message: _17.QuerySpendableBalancesRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _17.QuerySpendableBalancesRequest; - fromPartial(object: { - address?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _17.QuerySpendableBalancesRequest; - }; - QuerySpendableBalancesResponse: { - encode(message: _17.QuerySpendableBalancesResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _17.QuerySpendableBalancesResponse; - fromPartial(object: { - balances?: { - denom?: string; - amount?: string; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _17.QuerySpendableBalancesResponse; - }; - QueryTotalSupplyRequest: { - encode(message: _17.QueryTotalSupplyRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _17.QueryTotalSupplyRequest; - fromPartial(object: { - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _17.QueryTotalSupplyRequest; - }; - QueryTotalSupplyResponse: { - encode(message: _17.QueryTotalSupplyResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _17.QueryTotalSupplyResponse; - fromPartial(object: { - supply?: { - denom?: string; - amount?: string; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _17.QueryTotalSupplyResponse; - }; - QuerySupplyOfRequest: { - encode(message: _17.QuerySupplyOfRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _17.QuerySupplyOfRequest; - fromPartial(object: { - denom?: string; - }): _17.QuerySupplyOfRequest; - }; - QuerySupplyOfResponse: { - encode(message: _17.QuerySupplyOfResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _17.QuerySupplyOfResponse; - fromPartial(object: { - amount?: { - denom?: string; - amount?: string; - }; - }): _17.QuerySupplyOfResponse; - }; - QueryParamsRequest: { - encode(_: _17.QueryParamsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _17.QueryParamsRequest; - fromPartial(_: {}): _17.QueryParamsRequest; - }; - QueryParamsResponse: { - encode(message: _17.QueryParamsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _17.QueryParamsResponse; - fromPartial(object: { - params?: { - sendEnabled?: { - denom?: string; - enabled?: boolean; - }[]; - defaultSendEnabled?: boolean; - }; - }): _17.QueryParamsResponse; - }; - QueryDenomsMetadataRequest: { - encode(message: _17.QueryDenomsMetadataRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _17.QueryDenomsMetadataRequest; - fromPartial(object: { - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _17.QueryDenomsMetadataRequest; - }; - QueryDenomsMetadataResponse: { - encode(message: _17.QueryDenomsMetadataResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _17.QueryDenomsMetadataResponse; - fromPartial(object: { - metadatas?: { - description?: string; - denomUnits?: { - denom?: string; - exponent?: number; - aliases?: string[]; - }[]; - base?: string; - display?: string; - name?: string; - symbol?: string; - uri?: string; - uriHash?: string; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _17.QueryDenomsMetadataResponse; - }; - QueryDenomMetadataRequest: { - encode(message: _17.QueryDenomMetadataRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _17.QueryDenomMetadataRequest; - fromPartial(object: { - denom?: string; - }): _17.QueryDenomMetadataRequest; - }; - QueryDenomMetadataResponse: { - encode(message: _17.QueryDenomMetadataResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _17.QueryDenomMetadataResponse; - fromPartial(object: { - metadata?: { - description?: string; - denomUnits?: { - denom?: string; - exponent?: number; - aliases?: string[]; - }[]; - base?: string; - display?: string; - name?: string; - symbol?: string; - uri?: string; - uriHash?: string; - }; - }): _17.QueryDenomMetadataResponse; - }; - QueryDenomOwnersRequest: { - encode(message: _17.QueryDenomOwnersRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _17.QueryDenomOwnersRequest; - fromPartial(object: { - denom?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _17.QueryDenomOwnersRequest; - }; - DenomOwner: { - encode(message: _17.DenomOwner, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _17.DenomOwner; - fromPartial(object: { - address?: string; - balance?: { - denom?: string; - amount?: string; - }; - }): _17.DenomOwner; - }; - QueryDenomOwnersResponse: { - encode(message: _17.QueryDenomOwnersResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _17.QueryDenomOwnersResponse; - fromPartial(object: { - denomOwners?: { - address?: string; - balance?: { - denom?: string; - amount?: string; - }; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _17.QueryDenomOwnersResponse; - }; - GenesisState: { - encode(message: _16.GenesisState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _16.GenesisState; - fromPartial(object: { - params?: { - sendEnabled?: { - denom?: string; - enabled?: boolean; - }[]; - defaultSendEnabled?: boolean; - }; - balances?: { - address?: string; - coins?: { - denom?: string; - amount?: string; - }[]; - }[]; - supply?: { - denom?: string; - amount?: string; - }[]; - denomMetadata?: { - description?: string; - denomUnits?: { - denom?: string; - exponent?: number; - aliases?: string[]; - }[]; - base?: string; - display?: string; - name?: string; - symbol?: string; - uri?: string; - uriHash?: string; - }[]; - }): _16.GenesisState; - }; - Balance: { - encode(message: _16.Balance, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _16.Balance; - fromPartial(object: { - address?: string; - coins?: { - denom?: string; - amount?: string; - }[]; - }): _16.Balance; - }; - Params: { - encode(message: _15.Params, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _15.Params; - fromPartial(object: { - sendEnabled?: { - denom?: string; - enabled?: boolean; - }[]; - defaultSendEnabled?: boolean; - }): _15.Params; - }; - SendEnabled: { - encode(message: _15.SendEnabled, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _15.SendEnabled; - fromPartial(object: { - denom?: string; - enabled?: boolean; - }): _15.SendEnabled; - }; - Input: { - encode(message: _15.Input, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _15.Input; - fromPartial(object: { - address?: string; - coins?: { - denom?: string; - amount?: string; - }[]; - }): _15.Input; - }; - Output: { - encode(message: _15.Output, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _15.Output; - fromPartial(object: { - address?: string; - coins?: { - denom?: string; - amount?: string; - }[]; - }): _15.Output; - }; - Supply: { - encode(message: _15.Supply, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _15.Supply; - fromPartial(object: { - total?: { - denom?: string; - amount?: string; - }[]; - }): _15.Supply; - }; - DenomUnit: { - encode(message: _15.DenomUnit, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _15.DenomUnit; - fromPartial(object: { - denom?: string; - exponent?: number; - aliases?: string[]; - }): _15.DenomUnit; - }; - Metadata: { - encode(message: _15.Metadata, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _15.Metadata; - fromPartial(object: { - description?: string; - denomUnits?: { - denom?: string; - exponent?: number; - aliases?: string[]; - }[]; - base?: string; - display?: string; - name?: string; - symbol?: string; - uri?: string; - uriHash?: string; - }): _15.Metadata; - }; - SendAuthorization: { - encode(message: _14.SendAuthorization, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _14.SendAuthorization; - fromPartial(object: { - spendLimit?: { - denom?: string; - amount?: string; - }[]; - }): _14.SendAuthorization; - }; - }; - } - namespace base { - namespace abci { - const v1beta1: { - TxResponse: { - encode(message: _19.TxResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _19.TxResponse; - fromPartial(object: { - height?: string | number | import("long").Long; - txhash?: string; - codespace?: string; - code?: number; - data?: string; - rawLog?: string; - logs?: { - msgIndex?: number; - log?: string; - events?: { - type?: string; - attributes?: { - key?: string; - value?: string; - }[]; - }[]; - }[]; - info?: string; - gasWanted?: string | number | import("long").Long; - gasUsed?: string | number | import("long").Long; - tx?: { - typeUrl?: string; - value?: Uint8Array; - }; - timestamp?: string; - events?: { - type?: string; - attributes?: { - key?: Uint8Array; - value?: Uint8Array; - index?: boolean; - }[]; - }[]; - }): _19.TxResponse; - }; - ABCIMessageLog: { - encode(message: _19.ABCIMessageLog, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _19.ABCIMessageLog; - fromPartial(object: { - msgIndex?: number; - log?: string; - events?: { - type?: string; - attributes?: { - key?: string; - value?: string; - }[]; - }[]; - }): _19.ABCIMessageLog; - }; - StringEvent: { - encode(message: _19.StringEvent, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _19.StringEvent; - fromPartial(object: { - type?: string; - attributes?: { - key?: string; - value?: string; - }[]; - }): _19.StringEvent; - }; - Attribute: { - encode(message: _19.Attribute, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _19.Attribute; - fromPartial(object: { - key?: string; - value?: string; - }): _19.Attribute; - }; - GasInfo: { - encode(message: _19.GasInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _19.GasInfo; - fromPartial(object: { - gasWanted?: string | number | import("long").Long; - gasUsed?: string | number | import("long").Long; - }): _19.GasInfo; - }; - Result: { - encode(message: _19.Result, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _19.Result; - fromPartial(object: { - data?: Uint8Array; - log?: string; - events?: { - type?: string; - attributes?: { - key?: Uint8Array; - value?: Uint8Array; - index?: boolean; - }[]; - }[]; - msgResponses?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - }): _19.Result; - }; - SimulationResponse: { - encode(message: _19.SimulationResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _19.SimulationResponse; - fromPartial(object: { - gasInfo?: { - gasWanted?: string | number | import("long").Long; - gasUsed?: string | number | import("long").Long; - }; - result?: { - data?: Uint8Array; - log?: string; - events?: { - type?: string; - attributes?: { - key?: Uint8Array; - value?: Uint8Array; - index?: boolean; - }[]; - }[]; - msgResponses?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - }; - }): _19.SimulationResponse; - }; - MsgData: { - encode(message: _19.MsgData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _19.MsgData; - fromPartial(object: { - msgType?: string; - data?: Uint8Array; - }): _19.MsgData; - }; - TxMsgData: { - encode(message: _19.TxMsgData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _19.TxMsgData; - fromPartial(object: { - data?: { - msgType?: string; - data?: Uint8Array; - }[]; - msgResponses?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - }): _19.TxMsgData; - }; - SearchTxsResult: { - encode(message: _19.SearchTxsResult, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _19.SearchTxsResult; - fromPartial(object: { - totalCount?: string | number | import("long").Long; - count?: string | number | import("long").Long; - pageNumber?: string | number | import("long").Long; - pageTotal?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - txs?: { - height?: string | number | import("long").Long; - txhash?: string; - codespace?: string; - code?: number; - data?: string; - rawLog?: string; - logs?: { - msgIndex?: number; - log?: string; - events?: { - type?: string; - attributes?: { - key?: string; - value?: string; - }[]; - }[]; - }[]; - info?: string; - gasWanted?: string | number | import("long").Long; - gasUsed?: string | number | import("long").Long; - tx?: { - typeUrl?: string; - value?: Uint8Array; - }; - timestamp?: string; - events?: { - type?: string; - attributes?: { - key?: Uint8Array; - value?: Uint8Array; - index?: boolean; - }[]; - }[]; - }[]; - }): _19.SearchTxsResult; - }; - }; - } - namespace kv { - const v1beta1: { - Pairs: { - encode(message: _20.Pairs, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _20.Pairs; - fromPartial(object: { - pairs?: { - key?: Uint8Array; - value?: Uint8Array; - }[]; - }): _20.Pairs; - }; - Pair: { - encode(message: _20.Pair, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _20.Pair; - fromPartial(object: { - key?: Uint8Array; - value?: Uint8Array; - }): _20.Pair; - }; - }; - } - namespace query { - const v1beta1: { - PageRequest: { - encode(message: _21.PageRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _21.PageRequest; - fromPartial(object: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }): _21.PageRequest; - }; - PageResponse: { - encode(message: _21.PageResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _21.PageResponse; - fromPartial(object: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }): _21.PageResponse; - }; - }; - } - namespace reflection { - const v1beta1: { - ListAllInterfacesRequest: { - encode(_: _22.ListAllInterfacesRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _22.ListAllInterfacesRequest; - fromPartial(_: {}): _22.ListAllInterfacesRequest; - }; - ListAllInterfacesResponse: { - encode(message: _22.ListAllInterfacesResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _22.ListAllInterfacesResponse; - fromPartial(object: { - interfaceNames?: string[]; - }): _22.ListAllInterfacesResponse; - }; - ListImplementationsRequest: { - encode(message: _22.ListImplementationsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _22.ListImplementationsRequest; - fromPartial(object: { - interfaceName?: string; - }): _22.ListImplementationsRequest; - }; - ListImplementationsResponse: { - encode(message: _22.ListImplementationsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _22.ListImplementationsResponse; - fromPartial(object: { - implementationMessageNames?: string[]; - }): _22.ListImplementationsResponse; - }; - }; - const v2alpha1: { - AppDescriptor: { - encode(message: _23.AppDescriptor, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.AppDescriptor; - fromPartial(object: { - authn?: { - signModes?: { - name?: string; - number?: number; - authnInfoProviderMethodFullname?: string; - }[]; - }; - chain?: { - id?: string; - }; - codec?: { - interfaces?: { - fullname?: string; - interfaceAcceptingMessages?: { - fullname?: string; - fieldDescriptorNames?: string[]; - }[]; - interfaceImplementers?: { - fullname?: string; - typeUrl?: string; - }[]; - }[]; - }; - configuration?: { - bech32AccountAddressPrefix?: string; - }; - queryServices?: { - queryServices?: { - fullname?: string; - isModule?: boolean; - methods?: { - name?: string; - fullQueryPath?: string; - }[]; - }[]; - }; - tx?: { - fullname?: string; - msgs?: { - msgTypeUrl?: string; - }[]; - }; - }): _23.AppDescriptor; - }; - TxDescriptor: { - encode(message: _23.TxDescriptor, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.TxDescriptor; - fromPartial(object: { - fullname?: string; - msgs?: { - msgTypeUrl?: string; - }[]; - }): _23.TxDescriptor; - }; - AuthnDescriptor: { - encode(message: _23.AuthnDescriptor, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.AuthnDescriptor; - fromPartial(object: { - signModes?: { - name?: string; - number?: number; - authnInfoProviderMethodFullname?: string; - }[]; - }): _23.AuthnDescriptor; - }; - SigningModeDescriptor: { - encode(message: _23.SigningModeDescriptor, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.SigningModeDescriptor; - fromPartial(object: { - name?: string; - number?: number; - authnInfoProviderMethodFullname?: string; - }): _23.SigningModeDescriptor; - }; - ChainDescriptor: { - encode(message: _23.ChainDescriptor, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.ChainDescriptor; - fromPartial(object: { - id?: string; - }): _23.ChainDescriptor; - }; - CodecDescriptor: { - encode(message: _23.CodecDescriptor, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.CodecDescriptor; - fromPartial(object: { - interfaces?: { - fullname?: string; - interfaceAcceptingMessages?: { - fullname?: string; - fieldDescriptorNames?: string[]; - }[]; - interfaceImplementers?: { - fullname?: string; - typeUrl?: string; - }[]; - }[]; - }): _23.CodecDescriptor; - }; - InterfaceDescriptor: { - encode(message: _23.InterfaceDescriptor, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.InterfaceDescriptor; - fromPartial(object: { - fullname?: string; - interfaceAcceptingMessages?: { - fullname?: string; - fieldDescriptorNames?: string[]; - }[]; - interfaceImplementers?: { - fullname?: string; - typeUrl?: string; - }[]; - }): _23.InterfaceDescriptor; - }; - InterfaceImplementerDescriptor: { - encode(message: _23.InterfaceImplementerDescriptor, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.InterfaceImplementerDescriptor; - fromPartial(object: { - fullname?: string; - typeUrl?: string; - }): _23.InterfaceImplementerDescriptor; - }; - InterfaceAcceptingMessageDescriptor: { - encode(message: _23.InterfaceAcceptingMessageDescriptor, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.InterfaceAcceptingMessageDescriptor; - fromPartial(object: { - fullname?: string; - fieldDescriptorNames?: string[]; - }): _23.InterfaceAcceptingMessageDescriptor; - }; - ConfigurationDescriptor: { - encode(message: _23.ConfigurationDescriptor, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.ConfigurationDescriptor; - fromPartial(object: { - bech32AccountAddressPrefix?: string; - }): _23.ConfigurationDescriptor; - }; - MsgDescriptor: { - encode(message: _23.MsgDescriptor, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.MsgDescriptor; - fromPartial(object: { - msgTypeUrl?: string; - }): _23.MsgDescriptor; - }; - GetAuthnDescriptorRequest: { - encode(_: _23.GetAuthnDescriptorRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.GetAuthnDescriptorRequest; - fromPartial(_: {}): _23.GetAuthnDescriptorRequest; - }; - GetAuthnDescriptorResponse: { - encode(message: _23.GetAuthnDescriptorResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.GetAuthnDescriptorResponse; - fromPartial(object: { - authn?: { - signModes?: { - name?: string; - number?: number; - authnInfoProviderMethodFullname?: string; - }[]; - }; - }): _23.GetAuthnDescriptorResponse; - }; - GetChainDescriptorRequest: { - encode(_: _23.GetChainDescriptorRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.GetChainDescriptorRequest; - fromPartial(_: {}): _23.GetChainDescriptorRequest; - }; - GetChainDescriptorResponse: { - encode(message: _23.GetChainDescriptorResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.GetChainDescriptorResponse; - fromPartial(object: { - chain?: { - id?: string; - }; - }): _23.GetChainDescriptorResponse; - }; - GetCodecDescriptorRequest: { - encode(_: _23.GetCodecDescriptorRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.GetCodecDescriptorRequest; - fromPartial(_: {}): _23.GetCodecDescriptorRequest; - }; - GetCodecDescriptorResponse: { - encode(message: _23.GetCodecDescriptorResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.GetCodecDescriptorResponse; - fromPartial(object: { - codec?: { - interfaces?: { - fullname?: string; - interfaceAcceptingMessages?: { - fullname?: string; - fieldDescriptorNames?: string[]; - }[]; - interfaceImplementers?: { - fullname?: string; - typeUrl?: string; - }[]; - }[]; - }; - }): _23.GetCodecDescriptorResponse; - }; - GetConfigurationDescriptorRequest: { - encode(_: _23.GetConfigurationDescriptorRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.GetConfigurationDescriptorRequest; - fromPartial(_: {}): _23.GetConfigurationDescriptorRequest; - }; - GetConfigurationDescriptorResponse: { - encode(message: _23.GetConfigurationDescriptorResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.GetConfigurationDescriptorResponse; - fromPartial(object: { - config?: { - bech32AccountAddressPrefix?: string; - }; - }): _23.GetConfigurationDescriptorResponse; - }; - GetQueryServicesDescriptorRequest: { - encode(_: _23.GetQueryServicesDescriptorRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.GetQueryServicesDescriptorRequest; - fromPartial(_: {}): _23.GetQueryServicesDescriptorRequest; - }; - GetQueryServicesDescriptorResponse: { - encode(message: _23.GetQueryServicesDescriptorResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.GetQueryServicesDescriptorResponse; - fromPartial(object: { - queries?: { - queryServices?: { - fullname?: string; - isModule?: boolean; - methods?: { - name?: string; - fullQueryPath?: string; - }[]; - }[]; - }; - }): _23.GetQueryServicesDescriptorResponse; - }; - GetTxDescriptorRequest: { - encode(_: _23.GetTxDescriptorRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.GetTxDescriptorRequest; - fromPartial(_: {}): _23.GetTxDescriptorRequest; - }; - GetTxDescriptorResponse: { - encode(message: _23.GetTxDescriptorResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.GetTxDescriptorResponse; - fromPartial(object: { - tx?: { - fullname?: string; - msgs?: { - msgTypeUrl?: string; - }[]; - }; - }): _23.GetTxDescriptorResponse; - }; - QueryServicesDescriptor: { - encode(message: _23.QueryServicesDescriptor, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.QueryServicesDescriptor; - fromPartial(object: { - queryServices?: { - fullname?: string; - isModule?: boolean; - methods?: { - name?: string; - fullQueryPath?: string; - }[]; - }[]; - }): _23.QueryServicesDescriptor; - }; - QueryServiceDescriptor: { - encode(message: _23.QueryServiceDescriptor, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.QueryServiceDescriptor; - fromPartial(object: { - fullname?: string; - isModule?: boolean; - methods?: { - name?: string; - fullQueryPath?: string; - }[]; - }): _23.QueryServiceDescriptor; - }; - QueryMethodDescriptor: { - encode(message: _23.QueryMethodDescriptor, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _23.QueryMethodDescriptor; - fromPartial(object: { - name?: string; - fullQueryPath?: string; - }): _23.QueryMethodDescriptor; - }; - }; - } - namespace snapshots { - const v1beta1: { - Snapshot: { - encode(message: _24.Snapshot, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _24.Snapshot; - fromPartial(object: { - height?: string | number | import("long").Long; - format?: number; - chunks?: number; - hash?: Uint8Array; - metadata?: { - chunkHashes?: Uint8Array[]; - }; - }): _24.Snapshot; - }; - Metadata: { - encode(message: _24.Metadata, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _24.Metadata; - fromPartial(object: { - chunkHashes?: Uint8Array[]; - }): _24.Metadata; - }; - SnapshotItem: { - encode(message: _24.SnapshotItem, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _24.SnapshotItem; - fromPartial(object: { - store?: { - name?: string; - }; - iavl?: { - key?: Uint8Array; - value?: Uint8Array; - version?: string | number | import("long").Long; - height?: number; - }; - extension?: { - name?: string; - format?: number; - }; - extensionPayload?: { - payload?: Uint8Array; - }; - kv?: { - key?: Uint8Array; - value?: Uint8Array; - }; - schema?: { - keys?: Uint8Array[]; - }; - }): _24.SnapshotItem; - }; - SnapshotStoreItem: { - encode(message: _24.SnapshotStoreItem, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _24.SnapshotStoreItem; - fromPartial(object: { - name?: string; - }): _24.SnapshotStoreItem; - }; - SnapshotIAVLItem: { - encode(message: _24.SnapshotIAVLItem, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _24.SnapshotIAVLItem; - fromPartial(object: { - key?: Uint8Array; - value?: Uint8Array; - version?: string | number | import("long").Long; - height?: number; - }): _24.SnapshotIAVLItem; - }; - SnapshotExtensionMeta: { - encode(message: _24.SnapshotExtensionMeta, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _24.SnapshotExtensionMeta; - fromPartial(object: { - name?: string; - format?: number; - }): _24.SnapshotExtensionMeta; - }; - SnapshotExtensionPayload: { - encode(message: _24.SnapshotExtensionPayload, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _24.SnapshotExtensionPayload; - fromPartial(object: { - payload?: Uint8Array; - }): _24.SnapshotExtensionPayload; - }; - SnapshotKVItem: { - encode(message: _24.SnapshotKVItem, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _24.SnapshotKVItem; - fromPartial(object: { - key?: Uint8Array; - value?: Uint8Array; - }): _24.SnapshotKVItem; - }; - SnapshotSchema: { - encode(message: _24.SnapshotSchema, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _24.SnapshotSchema; - fromPartial(object: { - keys?: Uint8Array[]; - }): _24.SnapshotSchema; - }; - }; - } - namespace store { - const v1beta1: { - StoreKVPair: { - encode(message: _26.StoreKVPair, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _26.StoreKVPair; - fromPartial(object: { - storeKey?: string; - delete?: boolean; - key?: Uint8Array; - value?: Uint8Array; - }): _26.StoreKVPair; - }; - CommitInfo: { - encode(message: _25.CommitInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _25.CommitInfo; - fromPartial(object: { - version?: string | number | import("long").Long; - storeInfos?: { - name?: string; - commitId?: { - version?: string | number | import("long").Long; - hash?: Uint8Array; - }; - }[]; - }): _25.CommitInfo; - }; - StoreInfo: { - encode(message: _25.StoreInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _25.StoreInfo; - fromPartial(object: { - name?: string; - commitId?: { - version?: string | number | import("long").Long; - hash?: Uint8Array; - }; - }): _25.StoreInfo; - }; - CommitID: { - encode(message: _25.CommitID, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _25.CommitID; - fromPartial(object: { - version?: string | number | import("long").Long; - hash?: Uint8Array; - }): _25.CommitID; - }; - }; - } - namespace tendermint { - const v1beta1: { - ServiceClientImpl: typeof _166.ServiceClientImpl; - createRpcQueryExtension: (base: import("@cosmjs/stargate").QueryClient) => { - getNodeInfo(request?: _27.GetNodeInfoRequest): Promise<_27.GetNodeInfoResponse>; - getSyncing(request?: _27.GetSyncingRequest): Promise<_27.GetSyncingResponse>; - getLatestBlock(request?: _27.GetLatestBlockRequest): Promise<_27.GetLatestBlockResponse>; - getBlockByHeight(request: _27.GetBlockByHeightRequest): Promise<_27.GetBlockByHeightResponse>; - getLatestValidatorSet(request?: _27.GetLatestValidatorSetRequest): Promise<_27.GetLatestValidatorSetResponse>; - getValidatorSetByHeight(request: _27.GetValidatorSetByHeightRequest): Promise<_27.GetValidatorSetByHeightResponse>; - }; - LCDQueryClient: typeof _148.LCDQueryClient; - GetValidatorSetByHeightRequest: { - encode(message: _27.GetValidatorSetByHeightRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _27.GetValidatorSetByHeightRequest; - fromPartial(object: { - height?: string | number | import("long").Long; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _27.GetValidatorSetByHeightRequest; - }; - GetValidatorSetByHeightResponse: { - encode(message: _27.GetValidatorSetByHeightResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _27.GetValidatorSetByHeightResponse; - fromPartial(object: { - blockHeight?: string | number | import("long").Long; - validators?: { - address?: string; - pubKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _27.GetValidatorSetByHeightResponse; - }; - GetLatestValidatorSetRequest: { - encode(message: _27.GetLatestValidatorSetRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _27.GetLatestValidatorSetRequest; - fromPartial(object: { - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _27.GetLatestValidatorSetRequest; - }; - GetLatestValidatorSetResponse: { - encode(message: _27.GetLatestValidatorSetResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _27.GetLatestValidatorSetResponse; - fromPartial(object: { - blockHeight?: string | number | import("long").Long; - validators?: { - address?: string; - pubKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _27.GetLatestValidatorSetResponse; - }; - Validator: { - encode(message: _27.Validator, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _27.Validator; - fromPartial(object: { - address?: string; - pubKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }): _27.Validator; - }; - GetBlockByHeightRequest: { - encode(message: _27.GetBlockByHeightRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _27.GetBlockByHeightRequest; - fromPartial(object: { - height?: string | number | import("long").Long; - }): _27.GetBlockByHeightRequest; - }; - GetBlockByHeightResponse: { - encode(message: _27.GetBlockByHeightResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _27.GetBlockByHeightResponse; - fromPartial(object: { - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - block?: { - header?: { - version?: { - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }; - chainId?: string; - height?: string | number | import("long").Long; - time?: Date; - lastBlockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - lastCommitHash?: Uint8Array; - dataHash?: Uint8Array; - validatorsHash?: Uint8Array; - nextValidatorsHash?: Uint8Array; - consensusHash?: Uint8Array; - appHash?: Uint8Array; - lastResultsHash?: Uint8Array; - evidenceHash?: Uint8Array; - proposerAddress?: Uint8Array; - }; - data?: { - txs?: Uint8Array[]; - }; - evidence?: { - evidence?: { - duplicateVoteEvidence?: { - voteA?: { - type?: import("../tendermint/types/types").SignedMsgType; - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - timestamp?: Date; - validatorAddress?: Uint8Array; - validatorIndex?: number; - signature?: Uint8Array; - }; - voteB?: { - type?: import("../tendermint/types/types").SignedMsgType; - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - timestamp?: Date; - validatorAddress?: Uint8Array; - validatorIndex?: number; - signature?: Uint8Array; - }; - totalVotingPower?: string | number | import("long").Long; - validatorPower?: string | number | import("long").Long; - timestamp?: Date; - }; - lightClientAttackEvidence?: { - conflictingBlock?: { - signedHeader?: { - header?: { - version?: { - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }; - chainId?: string; - height?: string | number | import("long").Long; - time?: Date; - lastBlockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - lastCommitHash?: Uint8Array; - dataHash?: Uint8Array; - validatorsHash?: Uint8Array; - nextValidatorsHash?: Uint8Array; - consensusHash?: Uint8Array; - appHash?: Uint8Array; - lastResultsHash?: Uint8Array; - evidenceHash?: Uint8Array; - proposerAddress?: Uint8Array; - }; - commit?: { - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - signatures?: { - blockIdFlag?: import("../tendermint/types/types").BlockIDFlag; - validatorAddress?: Uint8Array; - timestamp?: Date; - signature?: Uint8Array; - }[]; - }; - }; - validatorSet?: { - validators?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }[]; - proposer?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }; - totalVotingPower?: string | number | import("long").Long; - }; - }; - commonHeight?: string | number | import("long").Long; - byzantineValidators?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }[]; - totalVotingPower?: string | number | import("long").Long; - timestamp?: Date; - }; - }[]; - }; - lastCommit?: { - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - signatures?: { - blockIdFlag?: import("../tendermint/types/types").BlockIDFlag; - validatorAddress?: Uint8Array; - timestamp?: Date; - signature?: Uint8Array; - }[]; - }; - }; - }): _27.GetBlockByHeightResponse; - }; - GetLatestBlockRequest: { - encode(_: _27.GetLatestBlockRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _27.GetLatestBlockRequest; - fromPartial(_: {}): _27.GetLatestBlockRequest; - }; - GetLatestBlockResponse: { - encode(message: _27.GetLatestBlockResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _27.GetLatestBlockResponse; - fromPartial(object: { - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - block?: { - header?: { - version?: { - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }; - chainId?: string; - height?: string | number | import("long").Long; - time?: Date; - lastBlockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - lastCommitHash?: Uint8Array; - dataHash?: Uint8Array; - validatorsHash?: Uint8Array; - nextValidatorsHash?: Uint8Array; - consensusHash?: Uint8Array; - appHash?: Uint8Array; - lastResultsHash?: Uint8Array; - evidenceHash?: Uint8Array; - proposerAddress?: Uint8Array; - }; - data?: { - txs?: Uint8Array[]; - }; - evidence?: { - evidence?: { - duplicateVoteEvidence?: { - voteA?: { - type?: import("../tendermint/types/types").SignedMsgType; - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - timestamp?: Date; - validatorAddress?: Uint8Array; - validatorIndex?: number; - signature?: Uint8Array; - }; - voteB?: { - type?: import("../tendermint/types/types").SignedMsgType; - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - timestamp?: Date; - validatorAddress?: Uint8Array; - validatorIndex?: number; - signature?: Uint8Array; - }; - totalVotingPower?: string | number | import("long").Long; - validatorPower?: string | number | import("long").Long; - timestamp?: Date; - }; - lightClientAttackEvidence?: { - conflictingBlock?: { - signedHeader?: { - header?: { - version?: { - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }; - chainId?: string; - height?: string | number | import("long").Long; - time?: Date; - lastBlockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - lastCommitHash?: Uint8Array; - dataHash?: Uint8Array; - validatorsHash?: Uint8Array; - nextValidatorsHash?: Uint8Array; - consensusHash?: Uint8Array; - appHash?: Uint8Array; - lastResultsHash?: Uint8Array; - evidenceHash?: Uint8Array; - proposerAddress?: Uint8Array; - }; - commit?: { - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - signatures?: { - blockIdFlag?: import("../tendermint/types/types").BlockIDFlag; - validatorAddress?: Uint8Array; - timestamp?: Date; - signature?: Uint8Array; - }[]; - }; - }; - validatorSet?: { - validators?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }[]; - proposer?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }; - totalVotingPower?: string | number | import("long").Long; - }; - }; - commonHeight?: string | number | import("long").Long; - byzantineValidators?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }[]; - totalVotingPower?: string | number | import("long").Long; - timestamp?: Date; - }; - }[]; - }; - lastCommit?: { - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - signatures?: { - blockIdFlag?: import("../tendermint/types/types").BlockIDFlag; - validatorAddress?: Uint8Array; - timestamp?: Date; - signature?: Uint8Array; - }[]; - }; - }; - }): _27.GetLatestBlockResponse; - }; - GetSyncingRequest: { - encode(_: _27.GetSyncingRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _27.GetSyncingRequest; - fromPartial(_: {}): _27.GetSyncingRequest; - }; - GetSyncingResponse: { - encode(message: _27.GetSyncingResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _27.GetSyncingResponse; - fromPartial(object: { - syncing?: boolean; - }): _27.GetSyncingResponse; - }; - GetNodeInfoRequest: { - encode(_: _27.GetNodeInfoRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _27.GetNodeInfoRequest; - fromPartial(_: {}): _27.GetNodeInfoRequest; - }; - GetNodeInfoResponse: { - encode(message: _27.GetNodeInfoResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _27.GetNodeInfoResponse; - fromPartial(object: { - nodeInfo?: { - protocolVersion?: { - p2p?: string | number | import("long").Long; - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }; - nodeId?: string; - listenAddr?: string; - network?: string; - version?: string; - channels?: Uint8Array; - moniker?: string; - other?: { - txIndex?: string; - rpcAddress?: string; - }; - }; - applicationVersion?: { - name?: string; - appName?: string; - version?: string; - gitCommit?: string; - buildTags?: string; - goVersion?: string; - buildDeps?: { - path?: string; - version?: string; - sum?: string; - }[]; - cosmosSdkVersion?: string; - }; - }): _27.GetNodeInfoResponse; - }; - VersionInfo: { - encode(message: _27.VersionInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _27.VersionInfo; - fromPartial(object: { - name?: string; - appName?: string; - version?: string; - gitCommit?: string; - buildTags?: string; - goVersion?: string; - buildDeps?: { - path?: string; - version?: string; - sum?: string; - }[]; - cosmosSdkVersion?: string; - }): _27.VersionInfo; - }; - Module: { - encode(message: _27.Module, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _27.Module; - fromPartial(object: { - path?: string; - version?: string; - sum?: string; - }): _27.Module; - }; - }; - } - const v1beta1: { - Coin: { - encode(message: _28.Coin, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _28.Coin; - fromPartial(object: { - denom?: string; - amount?: string; - }): _28.Coin; - }; - DecCoin: { - encode(message: _28.DecCoin, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _28.DecCoin; - fromPartial(object: { - denom?: string; - amount?: string; - }): _28.DecCoin; - }; - IntProto: { - encode(message: _28.IntProto, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _28.IntProto; - fromPartial(object: { - int?: string; - }): _28.IntProto; - }; - DecProto: { - encode(message: _28.DecProto, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _28.DecProto; - fromPartial(object: { - dec?: string; - }): _28.DecProto; - }; - }; - } - namespace capability { - const v1beta1: { - GenesisOwners: { - encode(message: _30.GenesisOwners, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _30.GenesisOwners; - fromPartial(object: { - index?: string | number | import("long").Long; - indexOwners?: { - owners?: { - module?: string; - name?: string; - }[]; - }; - }): _30.GenesisOwners; - }; - GenesisState: { - encode(message: _30.GenesisState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _30.GenesisState; - fromPartial(object: { - index?: string | number | import("long").Long; - owners?: { - index?: string | number | import("long").Long; - indexOwners?: { - owners?: { - module?: string; - name?: string; - }[]; - }; - }[]; - }): _30.GenesisState; - }; - Capability: { - encode(message: _29.Capability, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _29.Capability; - fromPartial(object: { - index?: string | number | import("long").Long; - }): _29.Capability; - }; - Owner: { - encode(message: _29.Owner, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _29.Owner; - fromPartial(object: { - module?: string; - name?: string; - }): _29.Owner; - }; - CapabilityOwners: { - encode(message: _29.CapabilityOwners, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _29.CapabilityOwners; - fromPartial(object: { - owners?: { - module?: string; - name?: string; - }[]; - }): _29.CapabilityOwners; - }; - }; - } - namespace crisis { - const v1beta1: { - MsgClientImpl: typeof _182.MsgClientImpl; - MsgVerifyInvariant: { - encode(message: _32.MsgVerifyInvariant, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _32.MsgVerifyInvariant; - fromPartial(object: { - sender?: string; - invariantModuleName?: string; - invariantRoute?: string; - }): _32.MsgVerifyInvariant; - }; - MsgVerifyInvariantResponse: { - encode(_: _32.MsgVerifyInvariantResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _32.MsgVerifyInvariantResponse; - fromPartial(_: {}): _32.MsgVerifyInvariantResponse; - }; - GenesisState: { - encode(message: _31.GenesisState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _31.GenesisState; - fromPartial(object: { - constantFee?: { - denom?: string; - amount?: string; - }; - }): _31.GenesisState; - }; - }; - } - namespace crypto { - const ed25519: { - PubKey: { - encode(message: _33.PubKey, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _33.PubKey; - fromPartial(object: { - key?: Uint8Array; - }): _33.PubKey; - }; - PrivKey: { - encode(message: _33.PrivKey, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _33.PrivKey; - fromPartial(object: { - key?: Uint8Array; - }): _33.PrivKey; - }; - }; - namespace hd { - const v1: { - BIP44Params: { - encode(message: _34.BIP44Params, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _34.BIP44Params; - fromPartial(object: { - purpose?: number; - coinType?: number; - account?: number; - change?: boolean; - addressIndex?: number; - }): _34.BIP44Params; - }; - }; - } - namespace keyring { - const v1: { - Record: { - encode(message: _35.Record, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _35.Record; - fromPartial(object: { - name?: string; - pubKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - local?: { - privKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - privKeyType?: string; - }; - ledger?: { - path?: { - purpose?: number; - coinType?: number; - account?: number; - change?: boolean; - addressIndex?: number; - }; - }; - multi?: {}; - offline?: {}; - }): _35.Record; - }; - Record_Local: { - encode(message: _35.Record_Local, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _35.Record_Local; - fromPartial(object: { - privKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - privKeyType?: string; - }): _35.Record_Local; - }; - Record_Ledger: { - encode(message: _35.Record_Ledger, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _35.Record_Ledger; - fromPartial(object: { - path?: { - purpose?: number; - coinType?: number; - account?: number; - change?: boolean; - addressIndex?: number; - }; - }): _35.Record_Ledger; - }; - Record_Multi: { - encode(_: _35.Record_Multi, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _35.Record_Multi; - fromPartial(_: {}): _35.Record_Multi; - }; - Record_Offline: { - encode(_: _35.Record_Offline, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _35.Record_Offline; - fromPartial(_: {}): _35.Record_Offline; - }; - }; - } - const multisig: { - LegacyAminoPubKey: { - encode(message: _36.LegacyAminoPubKey, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _36.LegacyAminoPubKey; - fromPartial(object: { - threshold?: number; - publicKeys?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - }): _36.LegacyAminoPubKey; - }; - }; - const secp256k1: { - PubKey: { - encode(message: _37.PubKey, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _37.PubKey; - fromPartial(object: { - key?: Uint8Array; - }): _37.PubKey; - }; - PrivKey: { - encode(message: _37.PrivKey, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _37.PrivKey; - fromPartial(object: { - key?: Uint8Array; - }): _37.PrivKey; - }; - }; - const secp256r1: { - PubKey: { - encode(message: _38.PubKey, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _38.PubKey; - fromPartial(object: { - key?: Uint8Array; - }): _38.PubKey; - }; - PrivKey: { - encode(message: _38.PrivKey, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _38.PrivKey; - fromPartial(object: { - secret?: Uint8Array; - }): _38.PrivKey; - }; - }; - } - namespace distribution { - const v1beta1: { - MsgClientImpl: typeof _183.MsgClientImpl; - QueryClientImpl: typeof _167.QueryClientImpl; - createRpcQueryExtension: (base: import("@cosmjs/stargate").QueryClient) => { - params(request?: _41.QueryParamsRequest): Promise<_41.QueryParamsResponse>; - validatorOutstandingRewards(request: _41.QueryValidatorOutstandingRewardsRequest): Promise<_41.QueryValidatorOutstandingRewardsResponse>; - validatorCommission(request: _41.QueryValidatorCommissionRequest): Promise<_41.QueryValidatorCommissionResponse>; - validatorSlashes(request: _41.QueryValidatorSlashesRequest): Promise<_41.QueryValidatorSlashesResponse>; - delegationRewards(request: _41.QueryDelegationRewardsRequest): Promise<_41.QueryDelegationRewardsResponse>; - delegationTotalRewards(request: _41.QueryDelegationTotalRewardsRequest): Promise<_41.QueryDelegationTotalRewardsResponse>; - delegatorValidators(request: _41.QueryDelegatorValidatorsRequest): Promise<_41.QueryDelegatorValidatorsResponse>; - delegatorWithdrawAddress(request: _41.QueryDelegatorWithdrawAddressRequest): Promise<_41.QueryDelegatorWithdrawAddressResponse>; - communityPool(request?: _41.QueryCommunityPoolRequest): Promise<_41.QueryCommunityPoolResponse>; - }; - LCDQueryClient: typeof _149.LCDQueryClient; - MsgSetWithdrawAddress: { - encode(message: _42.MsgSetWithdrawAddress, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _42.MsgSetWithdrawAddress; - fromPartial(object: { - delegatorAddress?: string; - withdrawAddress?: string; - }): _42.MsgSetWithdrawAddress; - }; - MsgSetWithdrawAddressResponse: { - encode(_: _42.MsgSetWithdrawAddressResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _42.MsgSetWithdrawAddressResponse; - fromPartial(_: {}): _42.MsgSetWithdrawAddressResponse; - }; - MsgWithdrawDelegatorReward: { - encode(message: _42.MsgWithdrawDelegatorReward, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _42.MsgWithdrawDelegatorReward; - fromPartial(object: { - delegatorAddress?: string; - validatorAddress?: string; - }): _42.MsgWithdrawDelegatorReward; - }; - MsgWithdrawDelegatorRewardResponse: { - encode(message: _42.MsgWithdrawDelegatorRewardResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _42.MsgWithdrawDelegatorRewardResponse; - fromPartial(object: { - amount?: { - denom?: string; - amount?: string; - }[]; - }): _42.MsgWithdrawDelegatorRewardResponse; - }; - MsgWithdrawValidatorCommission: { - encode(message: _42.MsgWithdrawValidatorCommission, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _42.MsgWithdrawValidatorCommission; - fromPartial(object: { - validatorAddress?: string; - }): _42.MsgWithdrawValidatorCommission; - }; - MsgWithdrawValidatorCommissionResponse: { - encode(message: _42.MsgWithdrawValidatorCommissionResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _42.MsgWithdrawValidatorCommissionResponse; - fromPartial(object: { - amount?: { - denom?: string; - amount?: string; - }[]; - }): _42.MsgWithdrawValidatorCommissionResponse; - }; - MsgFundCommunityPool: { - encode(message: _42.MsgFundCommunityPool, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _42.MsgFundCommunityPool; - fromPartial(object: { - amount?: { - denom?: string; - amount?: string; - }[]; - depositor?: string; - }): _42.MsgFundCommunityPool; - }; - MsgFundCommunityPoolResponse: { - encode(_: _42.MsgFundCommunityPoolResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _42.MsgFundCommunityPoolResponse; - fromPartial(_: {}): _42.MsgFundCommunityPoolResponse; - }; - QueryParamsRequest: { - encode(_: _41.QueryParamsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _41.QueryParamsRequest; - fromPartial(_: {}): _41.QueryParamsRequest; - }; - QueryParamsResponse: { - encode(message: _41.QueryParamsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _41.QueryParamsResponse; - fromPartial(object: { - params?: { - communityTax?: string; - baseProposerReward?: string; - bonusProposerReward?: string; - withdrawAddrEnabled?: boolean; - }; - }): _41.QueryParamsResponse; - }; - QueryValidatorOutstandingRewardsRequest: { - encode(message: _41.QueryValidatorOutstandingRewardsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _41.QueryValidatorOutstandingRewardsRequest; - fromPartial(object: { - validatorAddress?: string; - }): _41.QueryValidatorOutstandingRewardsRequest; - }; - QueryValidatorOutstandingRewardsResponse: { - encode(message: _41.QueryValidatorOutstandingRewardsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _41.QueryValidatorOutstandingRewardsResponse; - fromPartial(object: { - rewards?: { - rewards?: { - denom?: string; - amount?: string; - }[]; - }; - }): _41.QueryValidatorOutstandingRewardsResponse; - }; - QueryValidatorCommissionRequest: { - encode(message: _41.QueryValidatorCommissionRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _41.QueryValidatorCommissionRequest; - fromPartial(object: { - validatorAddress?: string; - }): _41.QueryValidatorCommissionRequest; - }; - QueryValidatorCommissionResponse: { - encode(message: _41.QueryValidatorCommissionResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _41.QueryValidatorCommissionResponse; - fromPartial(object: { - commission?: { - commission?: { - denom?: string; - amount?: string; - }[]; - }; - }): _41.QueryValidatorCommissionResponse; - }; - QueryValidatorSlashesRequest: { - encode(message: _41.QueryValidatorSlashesRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _41.QueryValidatorSlashesRequest; - fromPartial(object: { - validatorAddress?: string; - startingHeight?: string | number | import("long").Long; - endingHeight?: string | number | import("long").Long; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _41.QueryValidatorSlashesRequest; - }; - QueryValidatorSlashesResponse: { - encode(message: _41.QueryValidatorSlashesResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _41.QueryValidatorSlashesResponse; - fromPartial(object: { - slashes?: { - validatorPeriod?: string | number | import("long").Long; - fraction?: string; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _41.QueryValidatorSlashesResponse; - }; - QueryDelegationRewardsRequest: { - encode(message: _41.QueryDelegationRewardsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _41.QueryDelegationRewardsRequest; - fromPartial(object: { - delegatorAddress?: string; - validatorAddress?: string; - }): _41.QueryDelegationRewardsRequest; - }; - QueryDelegationRewardsResponse: { - encode(message: _41.QueryDelegationRewardsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _41.QueryDelegationRewardsResponse; - fromPartial(object: { - rewards?: { - denom?: string; - amount?: string; - }[]; - }): _41.QueryDelegationRewardsResponse; - }; - QueryDelegationTotalRewardsRequest: { - encode(message: _41.QueryDelegationTotalRewardsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _41.QueryDelegationTotalRewardsRequest; - fromPartial(object: { - delegatorAddress?: string; - }): _41.QueryDelegationTotalRewardsRequest; - }; - QueryDelegationTotalRewardsResponse: { - encode(message: _41.QueryDelegationTotalRewardsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _41.QueryDelegationTotalRewardsResponse; - fromPartial(object: { - rewards?: { - validatorAddress?: string; - reward?: { - denom?: string; - amount?: string; - }[]; - }[]; - total?: { - denom?: string; - amount?: string; - }[]; - }): _41.QueryDelegationTotalRewardsResponse; - }; - QueryDelegatorValidatorsRequest: { - encode(message: _41.QueryDelegatorValidatorsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _41.QueryDelegatorValidatorsRequest; - fromPartial(object: { - delegatorAddress?: string; - }): _41.QueryDelegatorValidatorsRequest; - }; - QueryDelegatorValidatorsResponse: { - encode(message: _41.QueryDelegatorValidatorsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _41.QueryDelegatorValidatorsResponse; - fromPartial(object: { - validators?: string[]; - }): _41.QueryDelegatorValidatorsResponse; - }; - QueryDelegatorWithdrawAddressRequest: { - encode(message: _41.QueryDelegatorWithdrawAddressRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _41.QueryDelegatorWithdrawAddressRequest; - fromPartial(object: { - delegatorAddress?: string; - }): _41.QueryDelegatorWithdrawAddressRequest; - }; - QueryDelegatorWithdrawAddressResponse: { - encode(message: _41.QueryDelegatorWithdrawAddressResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _41.QueryDelegatorWithdrawAddressResponse; - fromPartial(object: { - withdrawAddress?: string; - }): _41.QueryDelegatorWithdrawAddressResponse; - }; - QueryCommunityPoolRequest: { - encode(_: _41.QueryCommunityPoolRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _41.QueryCommunityPoolRequest; - fromPartial(_: {}): _41.QueryCommunityPoolRequest; - }; - QueryCommunityPoolResponse: { - encode(message: _41.QueryCommunityPoolResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _41.QueryCommunityPoolResponse; - fromPartial(object: { - pool?: { - denom?: string; - amount?: string; - }[]; - }): _41.QueryCommunityPoolResponse; - }; - DelegatorWithdrawInfo: { - encode(message: _40.DelegatorWithdrawInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _40.DelegatorWithdrawInfo; - fromPartial(object: { - delegatorAddress?: string; - withdrawAddress?: string; - }): _40.DelegatorWithdrawInfo; - }; - ValidatorOutstandingRewardsRecord: { - encode(message: _40.ValidatorOutstandingRewardsRecord, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _40.ValidatorOutstandingRewardsRecord; - fromPartial(object: { - validatorAddress?: string; - outstandingRewards?: { - denom?: string; - amount?: string; - }[]; - }): _40.ValidatorOutstandingRewardsRecord; - }; - ValidatorAccumulatedCommissionRecord: { - encode(message: _40.ValidatorAccumulatedCommissionRecord, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _40.ValidatorAccumulatedCommissionRecord; - fromPartial(object: { - validatorAddress?: string; - accumulated?: { - commission?: { - denom?: string; - amount?: string; - }[]; - }; - }): _40.ValidatorAccumulatedCommissionRecord; - }; - ValidatorHistoricalRewardsRecord: { - encode(message: _40.ValidatorHistoricalRewardsRecord, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _40.ValidatorHistoricalRewardsRecord; - fromPartial(object: { - validatorAddress?: string; - period?: string | number | import("long").Long; - rewards?: { - cumulativeRewardRatio?: { - denom?: string; - amount?: string; - }[]; - referenceCount?: number; - }; - }): _40.ValidatorHistoricalRewardsRecord; - }; - ValidatorCurrentRewardsRecord: { - encode(message: _40.ValidatorCurrentRewardsRecord, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _40.ValidatorCurrentRewardsRecord; - fromPartial(object: { - validatorAddress?: string; - rewards?: { - rewards?: { - denom?: string; - amount?: string; - }[]; - period?: string | number | import("long").Long; - }; - }): _40.ValidatorCurrentRewardsRecord; - }; - DelegatorStartingInfoRecord: { - encode(message: _40.DelegatorStartingInfoRecord, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _40.DelegatorStartingInfoRecord; - fromPartial(object: { - delegatorAddress?: string; - validatorAddress?: string; - startingInfo?: { - previousPeriod?: string | number | import("long").Long; - stake?: string; - height?: string | number | import("long").Long; - }; - }): _40.DelegatorStartingInfoRecord; - }; - ValidatorSlashEventRecord: { - encode(message: _40.ValidatorSlashEventRecord, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _40.ValidatorSlashEventRecord; - fromPartial(object: { - validatorAddress?: string; - height?: string | number | import("long").Long; - period?: string | number | import("long").Long; - validatorSlashEvent?: { - validatorPeriod?: string | number | import("long").Long; - fraction?: string; - }; - }): _40.ValidatorSlashEventRecord; - }; - GenesisState: { - encode(message: _40.GenesisState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _40.GenesisState; - fromPartial(object: { - params?: { - communityTax?: string; - baseProposerReward?: string; - bonusProposerReward?: string; - withdrawAddrEnabled?: boolean; - }; - feePool?: { - communityPool?: { - denom?: string; - amount?: string; - }[]; - }; - delegatorWithdrawInfos?: { - delegatorAddress?: string; - withdrawAddress?: string; - }[]; - previousProposer?: string; - outstandingRewards?: { - validatorAddress?: string; - outstandingRewards?: { - denom?: string; - amount?: string; - }[]; - }[]; - validatorAccumulatedCommissions?: { - validatorAddress?: string; - accumulated?: { - commission?: { - denom?: string; - amount?: string; - }[]; - }; - }[]; - validatorHistoricalRewards?: { - validatorAddress?: string; - period?: string | number | import("long").Long; - rewards?: { - cumulativeRewardRatio?: { - denom?: string; - amount?: string; - }[]; - referenceCount?: number; - }; - }[]; - validatorCurrentRewards?: { - validatorAddress?: string; - rewards?: { - rewards?: { - denom?: string; - amount?: string; - }[]; - period?: string | number | import("long").Long; - }; - }[]; - delegatorStartingInfos?: { - delegatorAddress?: string; - validatorAddress?: string; - startingInfo?: { - previousPeriod?: string | number | import("long").Long; - stake?: string; - height?: string | number | import("long").Long; - }; - }[]; - validatorSlashEvents?: { - validatorAddress?: string; - height?: string | number | import("long").Long; - period?: string | number | import("long").Long; - validatorSlashEvent?: { - validatorPeriod?: string | number | import("long").Long; - fraction?: string; - }; - }[]; - }): _40.GenesisState; - }; - Params: { - encode(message: _39.Params, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _39.Params; - fromPartial(object: { - communityTax?: string; - baseProposerReward?: string; - bonusProposerReward?: string; - withdrawAddrEnabled?: boolean; - }): _39.Params; - }; - ValidatorHistoricalRewards: { - encode(message: _39.ValidatorHistoricalRewards, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _39.ValidatorHistoricalRewards; - fromPartial(object: { - cumulativeRewardRatio?: { - denom?: string; - amount?: string; - }[]; - referenceCount?: number; - }): _39.ValidatorHistoricalRewards; - }; - ValidatorCurrentRewards: { - encode(message: _39.ValidatorCurrentRewards, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _39.ValidatorCurrentRewards; - fromPartial(object: { - rewards?: { - denom?: string; - amount?: string; - }[]; - period?: string | number | import("long").Long; - }): _39.ValidatorCurrentRewards; - }; - ValidatorAccumulatedCommission: { - encode(message: _39.ValidatorAccumulatedCommission, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _39.ValidatorAccumulatedCommission; - fromPartial(object: { - commission?: { - denom?: string; - amount?: string; - }[]; - }): _39.ValidatorAccumulatedCommission; - }; - ValidatorOutstandingRewards: { - encode(message: _39.ValidatorOutstandingRewards, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _39.ValidatorOutstandingRewards; - fromPartial(object: { - rewards?: { - denom?: string; - amount?: string; - }[]; - }): _39.ValidatorOutstandingRewards; - }; - ValidatorSlashEvent: { - encode(message: _39.ValidatorSlashEvent, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _39.ValidatorSlashEvent; - fromPartial(object: { - validatorPeriod?: string | number | import("long").Long; - fraction?: string; - }): _39.ValidatorSlashEvent; - }; - ValidatorSlashEvents: { - encode(message: _39.ValidatorSlashEvents, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _39.ValidatorSlashEvents; - fromPartial(object: { - validatorSlashEvents?: { - validatorPeriod?: string | number | import("long").Long; - fraction?: string; - }[]; - }): _39.ValidatorSlashEvents; - }; - FeePool: { - encode(message: _39.FeePool, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _39.FeePool; - fromPartial(object: { - communityPool?: { - denom?: string; - amount?: string; - }[]; - }): _39.FeePool; - }; - CommunityPoolSpendProposal: { - encode(message: _39.CommunityPoolSpendProposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _39.CommunityPoolSpendProposal; - fromPartial(object: { - title?: string; - description?: string; - recipient?: string; - amount?: { - denom?: string; - amount?: string; - }[]; - }): _39.CommunityPoolSpendProposal; - }; - DelegatorStartingInfo: { - encode(message: _39.DelegatorStartingInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _39.DelegatorStartingInfo; - fromPartial(object: { - previousPeriod?: string | number | import("long").Long; - stake?: string; - height?: string | number | import("long").Long; - }): _39.DelegatorStartingInfo; - }; - DelegationDelegatorReward: { - encode(message: _39.DelegationDelegatorReward, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _39.DelegationDelegatorReward; - fromPartial(object: { - validatorAddress?: string; - reward?: { - denom?: string; - amount?: string; - }[]; - }): _39.DelegationDelegatorReward; - }; - CommunityPoolSpendProposalWithDeposit: { - encode(message: _39.CommunityPoolSpendProposalWithDeposit, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _39.CommunityPoolSpendProposalWithDeposit; - fromPartial(object: { - title?: string; - description?: string; - recipient?: string; - amount?: string; - deposit?: string; - }): _39.CommunityPoolSpendProposalWithDeposit; - }; - }; - } - namespace evidence { - const v1beta1: { - MsgClientImpl: typeof _184.MsgClientImpl; - QueryClientImpl: typeof _168.QueryClientImpl; - createRpcQueryExtension: (base: import("@cosmjs/stargate").QueryClient) => { - evidence(request: _45.QueryEvidenceRequest): Promise<_45.QueryEvidenceResponse>; - allEvidence(request?: _45.QueryAllEvidenceRequest): Promise<_45.QueryAllEvidenceResponse>; - }; - LCDQueryClient: typeof _150.LCDQueryClient; - MsgSubmitEvidence: { - encode(message: _46.MsgSubmitEvidence, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _46.MsgSubmitEvidence; - fromPartial(object: { - submitter?: string; - evidence?: { - typeUrl?: string; - value?: Uint8Array; - }; - }): _46.MsgSubmitEvidence; - }; - MsgSubmitEvidenceResponse: { - encode(message: _46.MsgSubmitEvidenceResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _46.MsgSubmitEvidenceResponse; - fromPartial(object: { - hash?: Uint8Array; - }): _46.MsgSubmitEvidenceResponse; - }; - QueryEvidenceRequest: { - encode(message: _45.QueryEvidenceRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _45.QueryEvidenceRequest; - fromPartial(object: { - evidenceHash?: Uint8Array; - }): _45.QueryEvidenceRequest; - }; - QueryEvidenceResponse: { - encode(message: _45.QueryEvidenceResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _45.QueryEvidenceResponse; - fromPartial(object: { - evidence?: { - typeUrl?: string; - value?: Uint8Array; - }; - }): _45.QueryEvidenceResponse; - }; - QueryAllEvidenceRequest: { - encode(message: _45.QueryAllEvidenceRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _45.QueryAllEvidenceRequest; - fromPartial(object: { - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _45.QueryAllEvidenceRequest; - }; - QueryAllEvidenceResponse: { - encode(message: _45.QueryAllEvidenceResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _45.QueryAllEvidenceResponse; - fromPartial(object: { - evidence?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _45.QueryAllEvidenceResponse; - }; - GenesisState: { - encode(message: _44.GenesisState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _44.GenesisState; - fromPartial(object: { - evidence?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - }): _44.GenesisState; - }; - Equivocation: { - encode(message: _43.Equivocation, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _43.Equivocation; - fromPartial(object: { - height?: string | number | import("long").Long; - time?: Date; - power?: string | number | import("long").Long; - consensusAddress?: string; - }): _43.Equivocation; - }; - }; - } - namespace feegrant { - const v1beta1: { - MsgClientImpl: typeof _185.MsgClientImpl; - QueryClientImpl: typeof _169.QueryClientImpl; - createRpcQueryExtension: (base: import("@cosmjs/stargate").QueryClient) => { - allowance(request: _49.QueryAllowanceRequest): Promise<_49.QueryAllowanceResponse>; - allowances(request: _49.QueryAllowancesRequest): Promise<_49.QueryAllowancesResponse>; - allowancesByGranter(request: _49.QueryAllowancesByGranterRequest): Promise<_49.QueryAllowancesByGranterResponse>; - }; - LCDQueryClient: typeof _151.LCDQueryClient; - MsgGrantAllowance: { - encode(message: _50.MsgGrantAllowance, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _50.MsgGrantAllowance; - fromPartial(object: { - granter?: string; - grantee?: string; - allowance?: { - typeUrl?: string; - value?: Uint8Array; - }; - }): _50.MsgGrantAllowance; - }; - MsgGrantAllowanceResponse: { - encode(_: _50.MsgGrantAllowanceResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _50.MsgGrantAllowanceResponse; - fromPartial(_: {}): _50.MsgGrantAllowanceResponse; - }; - MsgRevokeAllowance: { - encode(message: _50.MsgRevokeAllowance, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _50.MsgRevokeAllowance; - fromPartial(object: { - granter?: string; - grantee?: string; - }): _50.MsgRevokeAllowance; - }; - MsgRevokeAllowanceResponse: { - encode(_: _50.MsgRevokeAllowanceResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _50.MsgRevokeAllowanceResponse; - fromPartial(_: {}): _50.MsgRevokeAllowanceResponse; - }; - QueryAllowanceRequest: { - encode(message: _49.QueryAllowanceRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _49.QueryAllowanceRequest; - fromPartial(object: { - granter?: string; - grantee?: string; - }): _49.QueryAllowanceRequest; - }; - QueryAllowanceResponse: { - encode(message: _49.QueryAllowanceResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _49.QueryAllowanceResponse; - fromPartial(object: { - allowance?: { - granter?: string; - grantee?: string; - allowance?: { - typeUrl?: string; - value?: Uint8Array; - }; - }; - }): _49.QueryAllowanceResponse; - }; - QueryAllowancesRequest: { - encode(message: _49.QueryAllowancesRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _49.QueryAllowancesRequest; - fromPartial(object: { - grantee?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _49.QueryAllowancesRequest; - }; - QueryAllowancesResponse: { - encode(message: _49.QueryAllowancesResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _49.QueryAllowancesResponse; - fromPartial(object: { - allowances?: { - granter?: string; - grantee?: string; - allowance?: { - typeUrl?: string; - value?: Uint8Array; - }; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _49.QueryAllowancesResponse; - }; - QueryAllowancesByGranterRequest: { - encode(message: _49.QueryAllowancesByGranterRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _49.QueryAllowancesByGranterRequest; - fromPartial(object: { - granter?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _49.QueryAllowancesByGranterRequest; - }; - QueryAllowancesByGranterResponse: { - encode(message: _49.QueryAllowancesByGranterResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _49.QueryAllowancesByGranterResponse; - fromPartial(object: { - allowances?: { - granter?: string; - grantee?: string; - allowance?: { - typeUrl?: string; - value?: Uint8Array; - }; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _49.QueryAllowancesByGranterResponse; - }; - GenesisState: { - encode(message: _48.GenesisState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _48.GenesisState; - fromPartial(object: { - allowances?: { - granter?: string; - grantee?: string; - allowance?: { - typeUrl?: string; - value?: Uint8Array; - }; - }[]; - }): _48.GenesisState; - }; - BasicAllowance: { - encode(message: _47.BasicAllowance, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _47.BasicAllowance; - fromPartial(object: { - spendLimit?: { - denom?: string; - amount?: string; - }[]; - expiration?: Date; - }): _47.BasicAllowance; - }; - PeriodicAllowance: { - encode(message: _47.PeriodicAllowance, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _47.PeriodicAllowance; - fromPartial(object: { - basic?: { - spendLimit?: { - denom?: string; - amount?: string; - }[]; - expiration?: Date; - }; - period?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - periodSpendLimit?: { - denom?: string; - amount?: string; - }[]; - periodCanSpend?: { - denom?: string; - amount?: string; - }[]; - periodReset?: Date; - }): _47.PeriodicAllowance; - }; - AllowedMsgAllowance: { - encode(message: _47.AllowedMsgAllowance, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _47.AllowedMsgAllowance; - fromPartial(object: { - allowance?: { - typeUrl?: string; - value?: Uint8Array; - }; - allowedMessages?: string[]; - }): _47.AllowedMsgAllowance; - }; - Grant: { - encode(message: _47.Grant, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _47.Grant; - fromPartial(object: { - granter?: string; - grantee?: string; - allowance?: { - typeUrl?: string; - value?: Uint8Array; - }; - }): _47.Grant; - }; - }; - } - namespace genutil { - const v1beta1: { - GenesisState: { - encode(message: _51.GenesisState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _51.GenesisState; - fromPartial(object: { - genTxs?: Uint8Array[]; - }): _51.GenesisState; - }; - }; - } - namespace gov { - const v1: { - MsgClientImpl: typeof _186.MsgClientImpl; - QueryClientImpl: typeof _170.QueryClientImpl; - createRpcQueryExtension: (base: import("@cosmjs/stargate").QueryClient) => { - proposal(request: _54.QueryProposalRequest): Promise<_54.QueryProposalResponse>; - proposals(request: _54.QueryProposalsRequest): Promise<_54.QueryProposalsResponse>; - vote(request: _54.QueryVoteRequest): Promise<_54.QueryVoteResponse>; - votes(request: _54.QueryVotesRequest): Promise<_54.QueryVotesResponse>; - params(request: _54.QueryParamsRequest): Promise<_54.QueryParamsResponse>; - deposit(request: _54.QueryDepositRequest): Promise<_54.QueryDepositResponse>; - deposits(request: _54.QueryDepositsRequest): Promise<_54.QueryDepositsResponse>; - tallyResult(request: _54.QueryTallyResultRequest): Promise<_54.QueryTallyResultResponse>; - }; - LCDQueryClient: typeof _152.LCDQueryClient; - MsgSubmitProposal: { - encode(message: _55.MsgSubmitProposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _55.MsgSubmitProposal; - fromPartial(object: { - messages?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - initialDeposit?: { - denom?: string; - amount?: string; - }[]; - proposer?: string; - metadata?: string; - }): _55.MsgSubmitProposal; - }; - MsgSubmitProposalResponse: { - encode(message: _55.MsgSubmitProposalResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _55.MsgSubmitProposalResponse; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - }): _55.MsgSubmitProposalResponse; - }; - MsgExecLegacyContent: { - encode(message: _55.MsgExecLegacyContent, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _55.MsgExecLegacyContent; - fromPartial(object: { - content?: { - typeUrl?: string; - value?: Uint8Array; - }; - authority?: string; - }): _55.MsgExecLegacyContent; - }; - MsgExecLegacyContentResponse: { - encode(_: _55.MsgExecLegacyContentResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _55.MsgExecLegacyContentResponse; - fromPartial(_: {}): _55.MsgExecLegacyContentResponse; - }; - MsgVote: { - encode(message: _55.MsgVote, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _55.MsgVote; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - voter?: string; - option?: _53.VoteOption; - metadata?: string; - }): _55.MsgVote; - }; - MsgVoteResponse: { - encode(_: _55.MsgVoteResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _55.MsgVoteResponse; - fromPartial(_: {}): _55.MsgVoteResponse; - }; - MsgVoteWeighted: { - encode(message: _55.MsgVoteWeighted, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _55.MsgVoteWeighted; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - voter?: string; - options?: { - option?: _53.VoteOption; - weight?: string; - }[]; - metadata?: string; - }): _55.MsgVoteWeighted; - }; - MsgVoteWeightedResponse: { - encode(_: _55.MsgVoteWeightedResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _55.MsgVoteWeightedResponse; - fromPartial(_: {}): _55.MsgVoteWeightedResponse; - }; - MsgDeposit: { - encode(message: _55.MsgDeposit, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _55.MsgDeposit; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - depositor?: string; - amount?: { - denom?: string; - amount?: string; - }[]; - }): _55.MsgDeposit; - }; - MsgDepositResponse: { - encode(_: _55.MsgDepositResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _55.MsgDepositResponse; - fromPartial(_: {}): _55.MsgDepositResponse; - }; - QueryProposalRequest: { - encode(message: _54.QueryProposalRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _54.QueryProposalRequest; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - }): _54.QueryProposalRequest; - }; - QueryProposalResponse: { - encode(message: _54.QueryProposalResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _54.QueryProposalResponse; - fromPartial(object: { - proposal?: { - id?: string | number | import("long").Long; - messages?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - status?: _53.ProposalStatus; - finalTallyResult?: { - yesCount?: string; - abstainCount?: string; - noCount?: string; - noWithVetoCount?: string; - }; - submitTime?: Date; - depositEndTime?: Date; - totalDeposit?: { - denom?: string; - amount?: string; - }[]; - votingStartTime?: Date; - votingEndTime?: Date; - metadata?: string; - }; - }): _54.QueryProposalResponse; - }; - QueryProposalsRequest: { - encode(message: _54.QueryProposalsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _54.QueryProposalsRequest; - fromPartial(object: { - proposalStatus?: _53.ProposalStatus; - voter?: string; - depositor?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _54.QueryProposalsRequest; - }; - QueryProposalsResponse: { - encode(message: _54.QueryProposalsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _54.QueryProposalsResponse; - fromPartial(object: { - proposals?: { - id?: string | number | import("long").Long; - messages?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - status?: _53.ProposalStatus; - finalTallyResult?: { - yesCount?: string; - abstainCount?: string; - noCount?: string; - noWithVetoCount?: string; - }; - submitTime?: Date; - depositEndTime?: Date; - totalDeposit?: { - denom?: string; - amount?: string; - }[]; - votingStartTime?: Date; - votingEndTime?: Date; - metadata?: string; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _54.QueryProposalsResponse; - }; - QueryVoteRequest: { - encode(message: _54.QueryVoteRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _54.QueryVoteRequest; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - voter?: string; - }): _54.QueryVoteRequest; - }; - QueryVoteResponse: { - encode(message: _54.QueryVoteResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _54.QueryVoteResponse; - fromPartial(object: { - vote?: { - proposalId?: string | number | import("long").Long; - voter?: string; - options?: { - option?: _53.VoteOption; - weight?: string; - }[]; - metadata?: string; - }; - }): _54.QueryVoteResponse; - }; - QueryVotesRequest: { - encode(message: _54.QueryVotesRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _54.QueryVotesRequest; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _54.QueryVotesRequest; - }; - QueryVotesResponse: { - encode(message: _54.QueryVotesResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _54.QueryVotesResponse; - fromPartial(object: { - votes?: { - proposalId?: string | number | import("long").Long; - voter?: string; - options?: { - option?: _53.VoteOption; - weight?: string; - }[]; - metadata?: string; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _54.QueryVotesResponse; - }; - QueryParamsRequest: { - encode(message: _54.QueryParamsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _54.QueryParamsRequest; - fromPartial(object: { - paramsType?: string; - }): _54.QueryParamsRequest; - }; - QueryParamsResponse: { - encode(message: _54.QueryParamsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _54.QueryParamsResponse; - fromPartial(object: { - votingParams?: { - votingPeriod?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - }; - depositParams?: { - minDeposit?: { - denom?: string; - amount?: string; - }[]; - maxDepositPeriod?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - }; - tallyParams?: { - quorum?: string; - threshold?: string; - vetoThreshold?: string; - }; - }): _54.QueryParamsResponse; - }; - QueryDepositRequest: { - encode(message: _54.QueryDepositRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _54.QueryDepositRequest; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - depositor?: string; - }): _54.QueryDepositRequest; - }; - QueryDepositResponse: { - encode(message: _54.QueryDepositResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _54.QueryDepositResponse; - fromPartial(object: { - deposit?: { - proposalId?: string | number | import("long").Long; - depositor?: string; - amount?: { - denom?: string; - amount?: string; - }[]; - }; - }): _54.QueryDepositResponse; - }; - QueryDepositsRequest: { - encode(message: _54.QueryDepositsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _54.QueryDepositsRequest; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _54.QueryDepositsRequest; - }; - QueryDepositsResponse: { - encode(message: _54.QueryDepositsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _54.QueryDepositsResponse; - fromPartial(object: { - deposits?: { - proposalId?: string | number | import("long").Long; - depositor?: string; - amount?: { - denom?: string; - amount?: string; - }[]; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _54.QueryDepositsResponse; - }; - QueryTallyResultRequest: { - encode(message: _54.QueryTallyResultRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _54.QueryTallyResultRequest; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - }): _54.QueryTallyResultRequest; - }; - QueryTallyResultResponse: { - encode(message: _54.QueryTallyResultResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _54.QueryTallyResultResponse; - fromPartial(object: { - tally?: { - yesCount?: string; - abstainCount?: string; - noCount?: string; - noWithVetoCount?: string; - }; - }): _54.QueryTallyResultResponse; - }; - voteOptionFromJSON(object: any): _53.VoteOption; - voteOptionToJSON(object: _53.VoteOption): string; - proposalStatusFromJSON(object: any): _53.ProposalStatus; - proposalStatusToJSON(object: _53.ProposalStatus): string; - VoteOption: typeof _53.VoteOption; - VoteOptionSDKType: typeof _53.VoteOption; - ProposalStatus: typeof _53.ProposalStatus; - ProposalStatusSDKType: typeof _53.ProposalStatus; - WeightedVoteOption: { - encode(message: _53.WeightedVoteOption, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _53.WeightedVoteOption; - fromPartial(object: { - option?: _53.VoteOption; - weight?: string; - }): _53.WeightedVoteOption; - }; - Deposit: { - encode(message: _53.Deposit, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _53.Deposit; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - depositor?: string; - amount?: { - denom?: string; - amount?: string; - }[]; - }): _53.Deposit; - }; - Proposal: { - encode(message: _53.Proposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _53.Proposal; - fromPartial(object: { - id?: string | number | import("long").Long; - messages?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - status?: _53.ProposalStatus; - finalTallyResult?: { - yesCount?: string; - abstainCount?: string; - noCount?: string; - noWithVetoCount?: string; - }; - submitTime?: Date; - depositEndTime?: Date; - totalDeposit?: { - denom?: string; - amount?: string; - }[]; - votingStartTime?: Date; - votingEndTime?: Date; - metadata?: string; - }): _53.Proposal; - }; - TallyResult: { - encode(message: _53.TallyResult, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _53.TallyResult; - fromPartial(object: { - yesCount?: string; - abstainCount?: string; - noCount?: string; - noWithVetoCount?: string; - }): _53.TallyResult; - }; - Vote: { - encode(message: _53.Vote, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _53.Vote; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - voter?: string; - options?: { - option?: _53.VoteOption; - weight?: string; - }[]; - metadata?: string; - }): _53.Vote; - }; - DepositParams: { - encode(message: _53.DepositParams, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _53.DepositParams; - fromPartial(object: { - minDeposit?: { - denom?: string; - amount?: string; - }[]; - maxDepositPeriod?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - }): _53.DepositParams; - }; - VotingParams: { - encode(message: _53.VotingParams, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _53.VotingParams; - fromPartial(object: { - votingPeriod?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - }): _53.VotingParams; - }; - TallyParams: { - encode(message: _53.TallyParams, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _53.TallyParams; - fromPartial(object: { - quorum?: string; - threshold?: string; - vetoThreshold?: string; - }): _53.TallyParams; - }; - GenesisState: { - encode(message: _52.GenesisState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _52.GenesisState; - fromPartial(object: { - startingProposalId?: string | number | import("long").Long; - deposits?: { - proposalId?: string | number | import("long").Long; - depositor?: string; - amount?: { - denom?: string; - amount?: string; - }[]; - }[]; - votes?: { - proposalId?: string | number | import("long").Long; - voter?: string; - options?: { - option?: _53.VoteOption; - weight?: string; - }[]; - metadata?: string; - }[]; - proposals?: { - id?: string | number | import("long").Long; - messages?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - status?: _53.ProposalStatus; - finalTallyResult?: { - yesCount?: string; - abstainCount?: string; - noCount?: string; - noWithVetoCount?: string; - }; - submitTime?: Date; - depositEndTime?: Date; - totalDeposit?: { - denom?: string; - amount?: string; - }[]; - votingStartTime?: Date; - votingEndTime?: Date; - metadata?: string; - }[]; - depositParams?: { - minDeposit?: { - denom?: string; - amount?: string; - }[]; - maxDepositPeriod?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - }; - votingParams?: { - votingPeriod?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - }; - tallyParams?: { - quorum?: string; - threshold?: string; - vetoThreshold?: string; - }; - }): _52.GenesisState; - }; - }; - const v1beta1: { - MsgClientImpl: typeof _187.MsgClientImpl; - QueryClientImpl: typeof _171.QueryClientImpl; - createRpcQueryExtension: (base: import("@cosmjs/stargate").QueryClient) => { - proposal(request: _58.QueryProposalRequest): Promise<_58.QueryProposalResponse>; - proposals(request: _58.QueryProposalsRequest): Promise<_58.QueryProposalsResponse>; - vote(request: _58.QueryVoteRequest): Promise<_58.QueryVoteResponse>; - votes(request: _58.QueryVotesRequest): Promise<_58.QueryVotesResponse>; - params(request: _58.QueryParamsRequest): Promise<_58.QueryParamsResponse>; - deposit(request: _58.QueryDepositRequest): Promise<_58.QueryDepositResponse>; - deposits(request: _58.QueryDepositsRequest): Promise<_58.QueryDepositsResponse>; - tallyResult(request: _58.QueryTallyResultRequest): Promise<_58.QueryTallyResultResponse>; - }; - LCDQueryClient: typeof _153.LCDQueryClient; - MsgSubmitProposal: { - encode(message: _59.MsgSubmitProposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _59.MsgSubmitProposal; - fromPartial(object: { - content?: { - typeUrl?: string; - value?: Uint8Array; - }; - initialDeposit?: { - denom?: string; - amount?: string; - }[]; - proposer?: string; - }): _59.MsgSubmitProposal; - }; - MsgSubmitProposalResponse: { - encode(message: _59.MsgSubmitProposalResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _59.MsgSubmitProposalResponse; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - }): _59.MsgSubmitProposalResponse; - }; - MsgVote: { - encode(message: _59.MsgVote, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _59.MsgVote; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - voter?: string; - option?: _57.VoteOption; - }): _59.MsgVote; - }; - MsgVoteResponse: { - encode(_: _59.MsgVoteResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _59.MsgVoteResponse; - fromPartial(_: {}): _59.MsgVoteResponse; - }; - MsgVoteWeighted: { - encode(message: _59.MsgVoteWeighted, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _59.MsgVoteWeighted; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - voter?: string; - options?: { - option?: _57.VoteOption; - weight?: string; - }[]; - }): _59.MsgVoteWeighted; - }; - MsgVoteWeightedResponse: { - encode(_: _59.MsgVoteWeightedResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _59.MsgVoteWeightedResponse; - fromPartial(_: {}): _59.MsgVoteWeightedResponse; - }; - MsgDeposit: { - encode(message: _59.MsgDeposit, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _59.MsgDeposit; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - depositor?: string; - amount?: { - denom?: string; - amount?: string; - }[]; - }): _59.MsgDeposit; - }; - MsgDepositResponse: { - encode(_: _59.MsgDepositResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _59.MsgDepositResponse; - fromPartial(_: {}): _59.MsgDepositResponse; - }; - QueryProposalRequest: { - encode(message: _58.QueryProposalRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _58.QueryProposalRequest; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - }): _58.QueryProposalRequest; - }; - QueryProposalResponse: { - encode(message: _58.QueryProposalResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _58.QueryProposalResponse; - fromPartial(object: { - proposal?: { - proposalId?: string | number | import("long").Long; - content?: { - typeUrl?: string; - value?: Uint8Array; - }; - status?: _57.ProposalStatus; - finalTallyResult?: { - yes?: string; - abstain?: string; - no?: string; - noWithVeto?: string; - }; - submitTime?: Date; - depositEndTime?: Date; - totalDeposit?: { - denom?: string; - amount?: string; - }[]; - votingStartTime?: Date; - votingEndTime?: Date; - }; - }): _58.QueryProposalResponse; - }; - QueryProposalsRequest: { - encode(message: _58.QueryProposalsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _58.QueryProposalsRequest; - fromPartial(object: { - proposalStatus?: _57.ProposalStatus; - voter?: string; - depositor?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _58.QueryProposalsRequest; - }; - QueryProposalsResponse: { - encode(message: _58.QueryProposalsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _58.QueryProposalsResponse; - fromPartial(object: { - proposals?: { - proposalId?: string | number | import("long").Long; - content?: { - typeUrl?: string; - value?: Uint8Array; - }; - status?: _57.ProposalStatus; - finalTallyResult?: { - yes?: string; - abstain?: string; - no?: string; - noWithVeto?: string; - }; - submitTime?: Date; - depositEndTime?: Date; - totalDeposit?: { - denom?: string; - amount?: string; - }[]; - votingStartTime?: Date; - votingEndTime?: Date; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _58.QueryProposalsResponse; - }; - QueryVoteRequest: { - encode(message: _58.QueryVoteRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _58.QueryVoteRequest; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - voter?: string; - }): _58.QueryVoteRequest; - }; - QueryVoteResponse: { - encode(message: _58.QueryVoteResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _58.QueryVoteResponse; - fromPartial(object: { - vote?: { - proposalId?: string | number | import("long").Long; - voter?: string; - option?: _57.VoteOption; - options?: { - option?: _57.VoteOption; - weight?: string; - }[]; - }; - }): _58.QueryVoteResponse; - }; - QueryVotesRequest: { - encode(message: _58.QueryVotesRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _58.QueryVotesRequest; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _58.QueryVotesRequest; - }; - QueryVotesResponse: { - encode(message: _58.QueryVotesResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _58.QueryVotesResponse; - fromPartial(object: { - votes?: { - proposalId?: string | number | import("long").Long; - voter?: string; - option?: _57.VoteOption; - options?: { - option?: _57.VoteOption; - weight?: string; - }[]; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _58.QueryVotesResponse; - }; - QueryParamsRequest: { - encode(message: _58.QueryParamsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _58.QueryParamsRequest; - fromPartial(object: { - paramsType?: string; - }): _58.QueryParamsRequest; - }; - QueryParamsResponse: { - encode(message: _58.QueryParamsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _58.QueryParamsResponse; - fromPartial(object: { - votingParams?: { - votingPeriod?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - }; - depositParams?: { - minDeposit?: { - denom?: string; - amount?: string; - }[]; - maxDepositPeriod?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - }; - tallyParams?: { - quorum?: Uint8Array; - threshold?: Uint8Array; - vetoThreshold?: Uint8Array; - }; - }): _58.QueryParamsResponse; - }; - QueryDepositRequest: { - encode(message: _58.QueryDepositRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _58.QueryDepositRequest; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - depositor?: string; - }): _58.QueryDepositRequest; - }; - QueryDepositResponse: { - encode(message: _58.QueryDepositResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _58.QueryDepositResponse; - fromPartial(object: { - deposit?: { - proposalId?: string | number | import("long").Long; - depositor?: string; - amount?: { - denom?: string; - amount?: string; - }[]; - }; - }): _58.QueryDepositResponse; - }; - QueryDepositsRequest: { - encode(message: _58.QueryDepositsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _58.QueryDepositsRequest; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _58.QueryDepositsRequest; - }; - QueryDepositsResponse: { - encode(message: _58.QueryDepositsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _58.QueryDepositsResponse; - fromPartial(object: { - deposits?: { - proposalId?: string | number | import("long").Long; - depositor?: string; - amount?: { - denom?: string; - amount?: string; - }[]; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _58.QueryDepositsResponse; - }; - QueryTallyResultRequest: { - encode(message: _58.QueryTallyResultRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _58.QueryTallyResultRequest; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - }): _58.QueryTallyResultRequest; - }; - QueryTallyResultResponse: { - encode(message: _58.QueryTallyResultResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _58.QueryTallyResultResponse; - fromPartial(object: { - tally?: { - yes?: string; - abstain?: string; - no?: string; - noWithVeto?: string; - }; - }): _58.QueryTallyResultResponse; - }; - voteOptionFromJSON(object: any): _57.VoteOption; - voteOptionToJSON(object: _57.VoteOption): string; - proposalStatusFromJSON(object: any): _57.ProposalStatus; - proposalStatusToJSON(object: _57.ProposalStatus): string; - VoteOption: typeof _57.VoteOption; - VoteOptionSDKType: typeof _57.VoteOption; - ProposalStatus: typeof _57.ProposalStatus; - ProposalStatusSDKType: typeof _57.ProposalStatus; - WeightedVoteOption: { - encode(message: _57.WeightedVoteOption, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _57.WeightedVoteOption; - fromPartial(object: { - option?: _57.VoteOption; - weight?: string; - }): _57.WeightedVoteOption; - }; - TextProposal: { - encode(message: _57.TextProposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _57.TextProposal; - fromPartial(object: { - title?: string; - description?: string; - }): _57.TextProposal; - }; - Deposit: { - encode(message: _57.Deposit, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _57.Deposit; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - depositor?: string; - amount?: { - denom?: string; - amount?: string; - }[]; - }): _57.Deposit; - }; - Proposal: { - encode(message: _57.Proposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _57.Proposal; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - content?: { - typeUrl?: string; - value?: Uint8Array; - }; - status?: _57.ProposalStatus; - finalTallyResult?: { - yes?: string; - abstain?: string; - no?: string; - noWithVeto?: string; - }; - submitTime?: Date; - depositEndTime?: Date; - totalDeposit?: { - denom?: string; - amount?: string; - }[]; - votingStartTime?: Date; - votingEndTime?: Date; - }): _57.Proposal; - }; - TallyResult: { - encode(message: _57.TallyResult, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _57.TallyResult; - fromPartial(object: { - yes?: string; - abstain?: string; - no?: string; - noWithVeto?: string; - }): _57.TallyResult; - }; - Vote: { - encode(message: _57.Vote, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _57.Vote; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - voter?: string; - option?: _57.VoteOption; - options?: { - option?: _57.VoteOption; - weight?: string; - }[]; - }): _57.Vote; - }; - DepositParams: { - encode(message: _57.DepositParams, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _57.DepositParams; - fromPartial(object: { - minDeposit?: { - denom?: string; - amount?: string; - }[]; - maxDepositPeriod?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - }): _57.DepositParams; - }; - VotingParams: { - encode(message: _57.VotingParams, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _57.VotingParams; - fromPartial(object: { - votingPeriod?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - }): _57.VotingParams; - }; - TallyParams: { - encode(message: _57.TallyParams, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _57.TallyParams; - fromPartial(object: { - quorum?: Uint8Array; - threshold?: Uint8Array; - vetoThreshold?: Uint8Array; - }): _57.TallyParams; - }; - GenesisState: { - encode(message: _56.GenesisState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _56.GenesisState; - fromPartial(object: { - startingProposalId?: string | number | import("long").Long; - deposits?: { - proposalId?: string | number | import("long").Long; - depositor?: string; - amount?: { - denom?: string; - amount?: string; - }[]; - }[]; - votes?: { - proposalId?: string | number | import("long").Long; - voter?: string; - option?: _57.VoteOption; - options?: { - option?: _57.VoteOption; - weight?: string; - }[]; - }[]; - proposals?: { - proposalId?: string | number | import("long").Long; - content?: { - typeUrl?: string; - value?: Uint8Array; - }; - status?: _57.ProposalStatus; - finalTallyResult?: { - yes?: string; - abstain?: string; - no?: string; - noWithVeto?: string; - }; - submitTime?: Date; - depositEndTime?: Date; - totalDeposit?: { - denom?: string; - amount?: string; - }[]; - votingStartTime?: Date; - votingEndTime?: Date; - }[]; - depositParams?: { - minDeposit?: { - denom?: string; - amount?: string; - }[]; - maxDepositPeriod?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - }; - votingParams?: { - votingPeriod?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - }; - tallyParams?: { - quorum?: Uint8Array; - threshold?: Uint8Array; - vetoThreshold?: Uint8Array; - }; - }): _56.GenesisState; - }; - }; - } - namespace group { - const v1: { - MsgClientImpl: typeof _188.MsgClientImpl; - QueryClientImpl: typeof _172.QueryClientImpl; - createRpcQueryExtension: (base: import("@cosmjs/stargate").QueryClient) => { - groupInfo(request: _62.QueryGroupInfoRequest): Promise<_62.QueryGroupInfoResponse>; - groupPolicyInfo(request: _62.QueryGroupPolicyInfoRequest): Promise<_62.QueryGroupPolicyInfoResponse>; - groupMembers(request: _62.QueryGroupMembersRequest): Promise<_62.QueryGroupMembersResponse>; - groupsByAdmin(request: _62.QueryGroupsByAdminRequest): Promise<_62.QueryGroupsByAdminResponse>; - groupPoliciesByGroup(request: _62.QueryGroupPoliciesByGroupRequest): Promise<_62.QueryGroupPoliciesByGroupResponse>; - groupPoliciesByAdmin(request: _62.QueryGroupPoliciesByAdminRequest): Promise<_62.QueryGroupPoliciesByAdminResponse>; - proposal(request: _62.QueryProposalRequest): Promise<_62.QueryProposalResponse>; - proposalsByGroupPolicy(request: _62.QueryProposalsByGroupPolicyRequest): Promise<_62.QueryProposalsByGroupPolicyResponse>; - voteByProposalVoter(request: _62.QueryVoteByProposalVoterRequest): Promise<_62.QueryVoteByProposalVoterResponse>; - votesByProposal(request: _62.QueryVotesByProposalRequest): Promise<_62.QueryVotesByProposalResponse>; - votesByVoter(request: _62.QueryVotesByVoterRequest): Promise<_62.QueryVotesByVoterResponse>; - groupsByMember(request: _62.QueryGroupsByMemberRequest): Promise<_62.QueryGroupsByMemberResponse>; - tallyResult(request: _62.QueryTallyResultRequest): Promise<_62.QueryTallyResultResponse>; - }; - LCDQueryClient: typeof _154.LCDQueryClient; - voteOptionFromJSON(object: any): _64.VoteOption; - voteOptionToJSON(object: _64.VoteOption): string; - proposalStatusFromJSON(object: any): _64.ProposalStatus; - proposalStatusToJSON(object: _64.ProposalStatus): string; - proposalResultFromJSON(object: any): _64.ProposalResult; - proposalResultToJSON(object: _64.ProposalResult): string; - proposalExecutorResultFromJSON(object: any): _64.ProposalExecutorResult; - proposalExecutorResultToJSON(object: _64.ProposalExecutorResult): string; - VoteOption: typeof _64.VoteOption; - VoteOptionSDKType: typeof _64.VoteOption; - ProposalStatus: typeof _64.ProposalStatus; - ProposalStatusSDKType: typeof _64.ProposalStatus; - ProposalResult: typeof _64.ProposalResult; - ProposalResultSDKType: typeof _64.ProposalResult; - ProposalExecutorResult: typeof _64.ProposalExecutorResult; - ProposalExecutorResultSDKType: typeof _64.ProposalExecutorResult; - Member: { - encode(message: _64.Member, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _64.Member; - fromPartial(object: { - address?: string; - weight?: string; - metadata?: string; - addedAt?: Date; - }): _64.Member; - }; - Members: { - encode(message: _64.Members, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _64.Members; - fromPartial(object: { - members?: { - address?: string; - weight?: string; - metadata?: string; - addedAt?: Date; - }[]; - }): _64.Members; - }; - ThresholdDecisionPolicy: { - encode(message: _64.ThresholdDecisionPolicy, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _64.ThresholdDecisionPolicy; - fromPartial(object: { - threshold?: string; - windows?: { - votingPeriod?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - minExecutionPeriod?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - }; - }): _64.ThresholdDecisionPolicy; - }; - PercentageDecisionPolicy: { - encode(message: _64.PercentageDecisionPolicy, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _64.PercentageDecisionPolicy; - fromPartial(object: { - percentage?: string; - windows?: { - votingPeriod?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - minExecutionPeriod?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - }; - }): _64.PercentageDecisionPolicy; - }; - DecisionPolicyWindows: { - encode(message: _64.DecisionPolicyWindows, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _64.DecisionPolicyWindows; - fromPartial(object: { - votingPeriod?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - minExecutionPeriod?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - }): _64.DecisionPolicyWindows; - }; - GroupInfo: { - encode(message: _64.GroupInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _64.GroupInfo; - fromPartial(object: { - id?: string | number | import("long").Long; - admin?: string; - metadata?: string; - version?: string | number | import("long").Long; - totalWeight?: string; - createdAt?: Date; - }): _64.GroupInfo; - }; - GroupMember: { - encode(message: _64.GroupMember, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _64.GroupMember; - fromPartial(object: { - groupId?: string | number | import("long").Long; - member?: { - address?: string; - weight?: string; - metadata?: string; - addedAt?: Date; - }; - }): _64.GroupMember; - }; - GroupPolicyInfo: { - encode(message: _64.GroupPolicyInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _64.GroupPolicyInfo; - fromPartial(object: { - address?: string; - groupId?: string | number | import("long").Long; - admin?: string; - metadata?: string; - version?: string | number | import("long").Long; - decisionPolicy?: { - typeUrl?: string; - value?: Uint8Array; - }; - createdAt?: Date; - }): _64.GroupPolicyInfo; - }; - Proposal: { - encode(message: _64.Proposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _64.Proposal; - fromPartial(object: { - id?: string | number | import("long").Long; - address?: string; - metadata?: string; - proposers?: string[]; - submitTime?: Date; - groupVersion?: string | number | import("long").Long; - groupPolicyVersion?: string | number | import("long").Long; - status?: _64.ProposalStatus; - result?: _64.ProposalResult; - finalTallyResult?: { - yesCount?: string; - abstainCount?: string; - noCount?: string; - noWithVetoCount?: string; - }; - votingPeriodEnd?: Date; - executorResult?: _64.ProposalExecutorResult; - messages?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - }): _64.Proposal; - }; - TallyResult: { - encode(message: _64.TallyResult, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _64.TallyResult; - fromPartial(object: { - yesCount?: string; - abstainCount?: string; - noCount?: string; - noWithVetoCount?: string; - }): _64.TallyResult; - }; - Vote: { - encode(message: _64.Vote, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _64.Vote; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - voter?: string; - option?: _64.VoteOption; - metadata?: string; - submitTime?: Date; - }): _64.Vote; - }; - execFromJSON(object: any): _63.Exec; - execToJSON(object: _63.Exec): string; - Exec: typeof _63.Exec; - ExecSDKType: typeof _63.Exec; - MsgCreateGroup: { - encode(message: _63.MsgCreateGroup, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgCreateGroup; - fromPartial(object: { - admin?: string; - members?: { - address?: string; - weight?: string; - metadata?: string; - addedAt?: Date; - }[]; - metadata?: string; - }): _63.MsgCreateGroup; - }; - MsgCreateGroupResponse: { - encode(message: _63.MsgCreateGroupResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgCreateGroupResponse; - fromPartial(object: { - groupId?: string | number | import("long").Long; - }): _63.MsgCreateGroupResponse; - }; - MsgUpdateGroupMembers: { - encode(message: _63.MsgUpdateGroupMembers, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgUpdateGroupMembers; - fromPartial(object: { - admin?: string; - groupId?: string | number | import("long").Long; - memberUpdates?: { - address?: string; - weight?: string; - metadata?: string; - addedAt?: Date; - }[]; - }): _63.MsgUpdateGroupMembers; - }; - MsgUpdateGroupMembersResponse: { - encode(_: _63.MsgUpdateGroupMembersResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgUpdateGroupMembersResponse; - fromPartial(_: {}): _63.MsgUpdateGroupMembersResponse; - }; - MsgUpdateGroupAdmin: { - encode(message: _63.MsgUpdateGroupAdmin, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgUpdateGroupAdmin; - fromPartial(object: { - admin?: string; - groupId?: string | number | import("long").Long; - newAdmin?: string; - }): _63.MsgUpdateGroupAdmin; - }; - MsgUpdateGroupAdminResponse: { - encode(_: _63.MsgUpdateGroupAdminResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgUpdateGroupAdminResponse; - fromPartial(_: {}): _63.MsgUpdateGroupAdminResponse; - }; - MsgUpdateGroupMetadata: { - encode(message: _63.MsgUpdateGroupMetadata, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgUpdateGroupMetadata; - fromPartial(object: { - admin?: string; - groupId?: string | number | import("long").Long; - metadata?: string; - }): _63.MsgUpdateGroupMetadata; - }; - MsgUpdateGroupMetadataResponse: { - encode(_: _63.MsgUpdateGroupMetadataResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgUpdateGroupMetadataResponse; - fromPartial(_: {}): _63.MsgUpdateGroupMetadataResponse; - }; - MsgCreateGroupPolicy: { - encode(message: _63.MsgCreateGroupPolicy, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgCreateGroupPolicy; - fromPartial(object: { - admin?: string; - groupId?: string | number | import("long").Long; - metadata?: string; - decisionPolicy?: { - typeUrl?: string; - value?: Uint8Array; - }; - }): _63.MsgCreateGroupPolicy; - }; - MsgCreateGroupPolicyResponse: { - encode(message: _63.MsgCreateGroupPolicyResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgCreateGroupPolicyResponse; - fromPartial(object: { - address?: string; - }): _63.MsgCreateGroupPolicyResponse; - }; - MsgUpdateGroupPolicyAdmin: { - encode(message: _63.MsgUpdateGroupPolicyAdmin, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgUpdateGroupPolicyAdmin; - fromPartial(object: { - admin?: string; - address?: string; - newAdmin?: string; - }): _63.MsgUpdateGroupPolicyAdmin; - }; - MsgCreateGroupWithPolicy: { - encode(message: _63.MsgCreateGroupWithPolicy, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgCreateGroupWithPolicy; - fromPartial(object: { - admin?: string; - members?: { - address?: string; - weight?: string; - metadata?: string; - addedAt?: Date; - }[]; - groupMetadata?: string; - groupPolicyMetadata?: string; - groupPolicyAsAdmin?: boolean; - decisionPolicy?: { - typeUrl?: string; - value?: Uint8Array; - }; - }): _63.MsgCreateGroupWithPolicy; - }; - MsgCreateGroupWithPolicyResponse: { - encode(message: _63.MsgCreateGroupWithPolicyResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgCreateGroupWithPolicyResponse; - fromPartial(object: { - groupId?: string | number | import("long").Long; - groupPolicyAddress?: string; - }): _63.MsgCreateGroupWithPolicyResponse; - }; - MsgUpdateGroupPolicyAdminResponse: { - encode(_: _63.MsgUpdateGroupPolicyAdminResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgUpdateGroupPolicyAdminResponse; - fromPartial(_: {}): _63.MsgUpdateGroupPolicyAdminResponse; - }; - MsgUpdateGroupPolicyDecisionPolicy: { - encode(message: _63.MsgUpdateGroupPolicyDecisionPolicy, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgUpdateGroupPolicyDecisionPolicy; - fromPartial(object: { - admin?: string; - address?: string; - decisionPolicy?: { - typeUrl?: string; - value?: Uint8Array; - }; - }): _63.MsgUpdateGroupPolicyDecisionPolicy; - }; - MsgUpdateGroupPolicyDecisionPolicyResponse: { - encode(_: _63.MsgUpdateGroupPolicyDecisionPolicyResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgUpdateGroupPolicyDecisionPolicyResponse; - fromPartial(_: {}): _63.MsgUpdateGroupPolicyDecisionPolicyResponse; - }; - MsgUpdateGroupPolicyMetadata: { - encode(message: _63.MsgUpdateGroupPolicyMetadata, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgUpdateGroupPolicyMetadata; - fromPartial(object: { - admin?: string; - address?: string; - metadata?: string; - }): _63.MsgUpdateGroupPolicyMetadata; - }; - MsgUpdateGroupPolicyMetadataResponse: { - encode(_: _63.MsgUpdateGroupPolicyMetadataResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgUpdateGroupPolicyMetadataResponse; - fromPartial(_: {}): _63.MsgUpdateGroupPolicyMetadataResponse; - }; - MsgSubmitProposal: { - encode(message: _63.MsgSubmitProposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgSubmitProposal; - fromPartial(object: { - address?: string; - proposers?: string[]; - metadata?: string; - messages?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - exec?: _63.Exec; - }): _63.MsgSubmitProposal; - }; - MsgSubmitProposalResponse: { - encode(message: _63.MsgSubmitProposalResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgSubmitProposalResponse; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - }): _63.MsgSubmitProposalResponse; - }; - MsgWithdrawProposal: { - encode(message: _63.MsgWithdrawProposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgWithdrawProposal; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - address?: string; - }): _63.MsgWithdrawProposal; - }; - MsgWithdrawProposalResponse: { - encode(_: _63.MsgWithdrawProposalResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgWithdrawProposalResponse; - fromPartial(_: {}): _63.MsgWithdrawProposalResponse; - }; - MsgVote: { - encode(message: _63.MsgVote, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgVote; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - voter?: string; - option?: _64.VoteOption; - metadata?: string; - exec?: _63.Exec; - }): _63.MsgVote; - }; - MsgVoteResponse: { - encode(_: _63.MsgVoteResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgVoteResponse; - fromPartial(_: {}): _63.MsgVoteResponse; - }; - MsgExec: { - encode(message: _63.MsgExec, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgExec; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - signer?: string; - }): _63.MsgExec; - }; - MsgExecResponse: { - encode(_: _63.MsgExecResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgExecResponse; - fromPartial(_: {}): _63.MsgExecResponse; - }; - MsgLeaveGroup: { - encode(message: _63.MsgLeaveGroup, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgLeaveGroup; - fromPartial(object: { - address?: string; - groupId?: string | number | import("long").Long; - }): _63.MsgLeaveGroup; - }; - MsgLeaveGroupResponse: { - encode(_: _63.MsgLeaveGroupResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _63.MsgLeaveGroupResponse; - fromPartial(_: {}): _63.MsgLeaveGroupResponse; - }; - QueryGroupInfoRequest: { - encode(message: _62.QueryGroupInfoRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryGroupInfoRequest; - fromPartial(object: { - groupId?: string | number | import("long").Long; - }): _62.QueryGroupInfoRequest; - }; - QueryGroupInfoResponse: { - encode(message: _62.QueryGroupInfoResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryGroupInfoResponse; - fromPartial(object: { - info?: { - id?: string | number | import("long").Long; - admin?: string; - metadata?: string; - version?: string | number | import("long").Long; - totalWeight?: string; - createdAt?: Date; - }; - }): _62.QueryGroupInfoResponse; - }; - QueryGroupPolicyInfoRequest: { - encode(message: _62.QueryGroupPolicyInfoRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryGroupPolicyInfoRequest; - fromPartial(object: { - address?: string; - }): _62.QueryGroupPolicyInfoRequest; - }; - QueryGroupPolicyInfoResponse: { - encode(message: _62.QueryGroupPolicyInfoResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryGroupPolicyInfoResponse; - fromPartial(object: { - info?: { - address?: string; - groupId?: string | number | import("long").Long; - admin?: string; - metadata?: string; - version?: string | number | import("long").Long; - decisionPolicy?: { - typeUrl?: string; - value?: Uint8Array; - }; - createdAt?: Date; - }; - }): _62.QueryGroupPolicyInfoResponse; - }; - QueryGroupMembersRequest: { - encode(message: _62.QueryGroupMembersRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryGroupMembersRequest; - fromPartial(object: { - groupId?: string | number | import("long").Long; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _62.QueryGroupMembersRequest; - }; - QueryGroupMembersResponse: { - encode(message: _62.QueryGroupMembersResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryGroupMembersResponse; - fromPartial(object: { - members?: { - groupId?: string | number | import("long").Long; - member?: { - address?: string; - weight?: string; - metadata?: string; - addedAt?: Date; - }; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _62.QueryGroupMembersResponse; - }; - QueryGroupsByAdminRequest: { - encode(message: _62.QueryGroupsByAdminRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryGroupsByAdminRequest; - fromPartial(object: { - admin?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _62.QueryGroupsByAdminRequest; - }; - QueryGroupsByAdminResponse: { - encode(message: _62.QueryGroupsByAdminResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryGroupsByAdminResponse; - fromPartial(object: { - groups?: { - id?: string | number | import("long").Long; - admin?: string; - metadata?: string; - version?: string | number | import("long").Long; - totalWeight?: string; - createdAt?: Date; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _62.QueryGroupsByAdminResponse; - }; - QueryGroupPoliciesByGroupRequest: { - encode(message: _62.QueryGroupPoliciesByGroupRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryGroupPoliciesByGroupRequest; - fromPartial(object: { - groupId?: string | number | import("long").Long; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _62.QueryGroupPoliciesByGroupRequest; - }; - QueryGroupPoliciesByGroupResponse: { - encode(message: _62.QueryGroupPoliciesByGroupResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryGroupPoliciesByGroupResponse; - fromPartial(object: { - groupPolicies?: { - address?: string; - groupId?: string | number | import("long").Long; - admin?: string; - metadata?: string; - version?: string | number | import("long").Long; - decisionPolicy?: { - typeUrl?: string; - value?: Uint8Array; - }; - createdAt?: Date; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _62.QueryGroupPoliciesByGroupResponse; - }; - QueryGroupPoliciesByAdminRequest: { - encode(message: _62.QueryGroupPoliciesByAdminRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryGroupPoliciesByAdminRequest; - fromPartial(object: { - admin?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _62.QueryGroupPoliciesByAdminRequest; - }; - QueryGroupPoliciesByAdminResponse: { - encode(message: _62.QueryGroupPoliciesByAdminResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryGroupPoliciesByAdminResponse; - fromPartial(object: { - groupPolicies?: { - address?: string; - groupId?: string | number | import("long").Long; - admin?: string; - metadata?: string; - version?: string | number | import("long").Long; - decisionPolicy?: { - typeUrl?: string; - value?: Uint8Array; - }; - createdAt?: Date; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _62.QueryGroupPoliciesByAdminResponse; - }; - QueryProposalRequest: { - encode(message: _62.QueryProposalRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryProposalRequest; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - }): _62.QueryProposalRequest; - }; - QueryProposalResponse: { - encode(message: _62.QueryProposalResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryProposalResponse; - fromPartial(object: { - proposal?: { - id?: string | number | import("long").Long; - address?: string; - metadata?: string; - proposers?: string[]; - submitTime?: Date; - groupVersion?: string | number | import("long").Long; - groupPolicyVersion?: string | number | import("long").Long; - status?: _64.ProposalStatus; - result?: _64.ProposalResult; - finalTallyResult?: { - yesCount?: string; - abstainCount?: string; - noCount?: string; - noWithVetoCount?: string; - }; - votingPeriodEnd?: Date; - executorResult?: _64.ProposalExecutorResult; - messages?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - }; - }): _62.QueryProposalResponse; - }; - QueryProposalsByGroupPolicyRequest: { - encode(message: _62.QueryProposalsByGroupPolicyRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryProposalsByGroupPolicyRequest; - fromPartial(object: { - address?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _62.QueryProposalsByGroupPolicyRequest; - }; - QueryProposalsByGroupPolicyResponse: { - encode(message: _62.QueryProposalsByGroupPolicyResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryProposalsByGroupPolicyResponse; - fromPartial(object: { - proposals?: { - id?: string | number | import("long").Long; - address?: string; - metadata?: string; - proposers?: string[]; - submitTime?: Date; - groupVersion?: string | number | import("long").Long; - groupPolicyVersion?: string | number | import("long").Long; - status?: _64.ProposalStatus; - result?: _64.ProposalResult; - finalTallyResult?: { - yesCount?: string; - abstainCount?: string; - noCount?: string; - noWithVetoCount?: string; - }; - votingPeriodEnd?: Date; - executorResult?: _64.ProposalExecutorResult; - messages?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _62.QueryProposalsByGroupPolicyResponse; - }; - QueryVoteByProposalVoterRequest: { - encode(message: _62.QueryVoteByProposalVoterRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryVoteByProposalVoterRequest; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - voter?: string; - }): _62.QueryVoteByProposalVoterRequest; - }; - QueryVoteByProposalVoterResponse: { - encode(message: _62.QueryVoteByProposalVoterResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryVoteByProposalVoterResponse; - fromPartial(object: { - vote?: { - proposalId?: string | number | import("long").Long; - voter?: string; - option?: _64.VoteOption; - metadata?: string; - submitTime?: Date; - }; - }): _62.QueryVoteByProposalVoterResponse; - }; - QueryVotesByProposalRequest: { - encode(message: _62.QueryVotesByProposalRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryVotesByProposalRequest; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _62.QueryVotesByProposalRequest; - }; - QueryVotesByProposalResponse: { - encode(message: _62.QueryVotesByProposalResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryVotesByProposalResponse; - fromPartial(object: { - votes?: { - proposalId?: string | number | import("long").Long; - voter?: string; - option?: _64.VoteOption; - metadata?: string; - submitTime?: Date; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _62.QueryVotesByProposalResponse; - }; - QueryVotesByVoterRequest: { - encode(message: _62.QueryVotesByVoterRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryVotesByVoterRequest; - fromPartial(object: { - voter?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _62.QueryVotesByVoterRequest; - }; - QueryVotesByVoterResponse: { - encode(message: _62.QueryVotesByVoterResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryVotesByVoterResponse; - fromPartial(object: { - votes?: { - proposalId?: string | number | import("long").Long; - voter?: string; - option?: _64.VoteOption; - metadata?: string; - submitTime?: Date; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _62.QueryVotesByVoterResponse; - }; - QueryGroupsByMemberRequest: { - encode(message: _62.QueryGroupsByMemberRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryGroupsByMemberRequest; - fromPartial(object: { - address?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _62.QueryGroupsByMemberRequest; - }; - QueryGroupsByMemberResponse: { - encode(message: _62.QueryGroupsByMemberResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryGroupsByMemberResponse; - fromPartial(object: { - groups?: { - id?: string | number | import("long").Long; - admin?: string; - metadata?: string; - version?: string | number | import("long").Long; - totalWeight?: string; - createdAt?: Date; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _62.QueryGroupsByMemberResponse; - }; - QueryTallyResultRequest: { - encode(message: _62.QueryTallyResultRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryTallyResultRequest; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - }): _62.QueryTallyResultRequest; - }; - QueryTallyResultResponse: { - encode(message: _62.QueryTallyResultResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _62.QueryTallyResultResponse; - fromPartial(object: { - tally?: { - yesCount?: string; - abstainCount?: string; - noCount?: string; - noWithVetoCount?: string; - }; - }): _62.QueryTallyResultResponse; - }; - GenesisState: { - encode(message: _61.GenesisState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _61.GenesisState; - fromPartial(object: { - groupSeq?: string | number | import("long").Long; - groups?: { - id?: string | number | import("long").Long; - admin?: string; - metadata?: string; - version?: string | number | import("long").Long; - totalWeight?: string; - createdAt?: Date; - }[]; - groupMembers?: { - groupId?: string | number | import("long").Long; - member?: { - address?: string; - weight?: string; - metadata?: string; - addedAt?: Date; - }; - }[]; - groupPolicySeq?: string | number | import("long").Long; - groupPolicies?: { - address?: string; - groupId?: string | number | import("long").Long; - admin?: string; - metadata?: string; - version?: string | number | import("long").Long; - decisionPolicy?: { - typeUrl?: string; - value?: Uint8Array; - }; - createdAt?: Date; - }[]; - proposalSeq?: string | number | import("long").Long; - proposals?: { - id?: string | number | import("long").Long; - address?: string; - metadata?: string; - proposers?: string[]; - submitTime?: Date; - groupVersion?: string | number | import("long").Long; - groupPolicyVersion?: string | number | import("long").Long; - status?: _64.ProposalStatus; - result?: _64.ProposalResult; - finalTallyResult?: { - yesCount?: string; - abstainCount?: string; - noCount?: string; - noWithVetoCount?: string; - }; - votingPeriodEnd?: Date; - executorResult?: _64.ProposalExecutorResult; - messages?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - }[]; - votes?: { - proposalId?: string | number | import("long").Long; - voter?: string; - option?: _64.VoteOption; - metadata?: string; - submitTime?: Date; - }[]; - }): _61.GenesisState; - }; - EventCreateGroup: { - encode(message: _60.EventCreateGroup, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _60.EventCreateGroup; - fromPartial(object: { - groupId?: string | number | import("long").Long; - }): _60.EventCreateGroup; - }; - EventUpdateGroup: { - encode(message: _60.EventUpdateGroup, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _60.EventUpdateGroup; - fromPartial(object: { - groupId?: string | number | import("long").Long; - }): _60.EventUpdateGroup; - }; - EventCreateGroupPolicy: { - encode(message: _60.EventCreateGroupPolicy, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _60.EventCreateGroupPolicy; - fromPartial(object: { - address?: string; - }): _60.EventCreateGroupPolicy; - }; - EventUpdateGroupPolicy: { - encode(message: _60.EventUpdateGroupPolicy, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _60.EventUpdateGroupPolicy; - fromPartial(object: { - address?: string; - }): _60.EventUpdateGroupPolicy; - }; - EventSubmitProposal: { - encode(message: _60.EventSubmitProposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _60.EventSubmitProposal; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - }): _60.EventSubmitProposal; - }; - EventWithdrawProposal: { - encode(message: _60.EventWithdrawProposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _60.EventWithdrawProposal; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - }): _60.EventWithdrawProposal; - }; - EventVote: { - encode(message: _60.EventVote, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _60.EventVote; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - }): _60.EventVote; - }; - EventExec: { - encode(message: _60.EventExec, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _60.EventExec; - fromPartial(object: { - proposalId?: string | number | import("long").Long; - result?: _64.ProposalExecutorResult; - }): _60.EventExec; - }; - EventLeaveGroup: { - encode(message: _60.EventLeaveGroup, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _60.EventLeaveGroup; - fromPartial(object: { - groupId?: string | number | import("long").Long; - address?: string; - }): _60.EventLeaveGroup; - }; - }; - } - namespace mint { - const v1beta1: { - QueryClientImpl: typeof _173.QueryClientImpl; - createRpcQueryExtension: (base: import("@cosmjs/stargate").QueryClient) => { - params(request?: _67.QueryParamsRequest): Promise<_67.QueryParamsResponse>; - inflation(request?: _67.QueryInflationRequest): Promise<_67.QueryInflationResponse>; - annualProvisions(request?: _67.QueryAnnualProvisionsRequest): Promise<_67.QueryAnnualProvisionsResponse>; - }; - LCDQueryClient: typeof _155.LCDQueryClient; - QueryParamsRequest: { - encode(_: _67.QueryParamsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _67.QueryParamsRequest; - fromPartial(_: {}): _67.QueryParamsRequest; - }; - QueryParamsResponse: { - encode(message: _67.QueryParamsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _67.QueryParamsResponse; - fromPartial(object: { - params?: { - mintDenom?: string; - inflationRateChange?: string; - inflationMax?: string; - inflationMin?: string; - goalBonded?: string; - blocksPerYear?: string | number | import("long").Long; - }; - }): _67.QueryParamsResponse; - }; - QueryInflationRequest: { - encode(_: _67.QueryInflationRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _67.QueryInflationRequest; - fromPartial(_: {}): _67.QueryInflationRequest; - }; - QueryInflationResponse: { - encode(message: _67.QueryInflationResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _67.QueryInflationResponse; - fromPartial(object: { - inflation?: Uint8Array; - }): _67.QueryInflationResponse; - }; - QueryAnnualProvisionsRequest: { - encode(_: _67.QueryAnnualProvisionsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _67.QueryAnnualProvisionsRequest; - fromPartial(_: {}): _67.QueryAnnualProvisionsRequest; - }; - QueryAnnualProvisionsResponse: { - encode(message: _67.QueryAnnualProvisionsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _67.QueryAnnualProvisionsResponse; - fromPartial(object: { - annualProvisions?: Uint8Array; - }): _67.QueryAnnualProvisionsResponse; - }; - Minter: { - encode(message: _66.Minter, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _66.Minter; - fromPartial(object: { - inflation?: string; - annualProvisions?: string; - }): _66.Minter; - }; - Params: { - encode(message: _66.Params, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _66.Params; - fromPartial(object: { - mintDenom?: string; - inflationRateChange?: string; - inflationMax?: string; - inflationMin?: string; - goalBonded?: string; - blocksPerYear?: string | number | import("long").Long; - }): _66.Params; - }; - GenesisState: { - encode(message: _65.GenesisState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _65.GenesisState; - fromPartial(object: { - minter?: { - inflation?: string; - annualProvisions?: string; - }; - params?: { - mintDenom?: string; - inflationRateChange?: string; - inflationMax?: string; - inflationMin?: string; - goalBonded?: string; - blocksPerYear?: string | number | import("long").Long; - }; - }): _65.GenesisState; - }; - }; - } - namespace msg { - const v1: {}; - } - namespace nft { - const v1beta1: { - MsgClientImpl: typeof _189.MsgClientImpl; - QueryClientImpl: typeof _174.QueryClientImpl; - createRpcQueryExtension: (base: import("@cosmjs/stargate").QueryClient) => { - balance(request: _72.QueryBalanceRequest): Promise<_72.QueryBalanceResponse>; - owner(request: _72.QueryOwnerRequest): Promise<_72.QueryOwnerResponse>; - supply(request: _72.QuerySupplyRequest): Promise<_72.QuerySupplyResponse>; - nFTs(request: _72.QueryNFTsRequest): Promise<_72.QueryNFTsResponse>; - nFT(request: _72.QueryNFTRequest): Promise<_72.QueryNFTResponse>; - class(request: _72.QueryClassRequest): Promise<_72.QueryClassResponse>; - classes(request?: _72.QueryClassesRequest): Promise<_72.QueryClassesResponse>; - }; - LCDQueryClient: typeof _156.LCDQueryClient; - MsgSend: { - encode(message: _73.MsgSend, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _73.MsgSend; - fromPartial(object: { - classId?: string; - id?: string; - sender?: string; - receiver?: string; - }): _73.MsgSend; - }; - MsgSendResponse: { - encode(_: _73.MsgSendResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _73.MsgSendResponse; - fromPartial(_: {}): _73.MsgSendResponse; - }; - QueryBalanceRequest: { - encode(message: _72.QueryBalanceRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _72.QueryBalanceRequest; - fromPartial(object: { - classId?: string; - owner?: string; - }): _72.QueryBalanceRequest; - }; - QueryBalanceResponse: { - encode(message: _72.QueryBalanceResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _72.QueryBalanceResponse; - fromPartial(object: { - amount?: string | number | import("long").Long; - }): _72.QueryBalanceResponse; - }; - QueryOwnerRequest: { - encode(message: _72.QueryOwnerRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _72.QueryOwnerRequest; - fromPartial(object: { - classId?: string; - id?: string; - }): _72.QueryOwnerRequest; - }; - QueryOwnerResponse: { - encode(message: _72.QueryOwnerResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _72.QueryOwnerResponse; - fromPartial(object: { - owner?: string; - }): _72.QueryOwnerResponse; - }; - QuerySupplyRequest: { - encode(message: _72.QuerySupplyRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _72.QuerySupplyRequest; - fromPartial(object: { - classId?: string; - }): _72.QuerySupplyRequest; - }; - QuerySupplyResponse: { - encode(message: _72.QuerySupplyResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _72.QuerySupplyResponse; - fromPartial(object: { - amount?: string | number | import("long").Long; - }): _72.QuerySupplyResponse; - }; - QueryNFTsRequest: { - encode(message: _72.QueryNFTsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _72.QueryNFTsRequest; - fromPartial(object: { - classId?: string; - owner?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _72.QueryNFTsRequest; - }; - QueryNFTsResponse: { - encode(message: _72.QueryNFTsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _72.QueryNFTsResponse; - fromPartial(object: { - nfts?: { - classId?: string; - id?: string; - uri?: string; - uriHash?: string; - data?: { - typeUrl?: string; - value?: Uint8Array; - }; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _72.QueryNFTsResponse; - }; - QueryNFTRequest: { - encode(message: _72.QueryNFTRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _72.QueryNFTRequest; - fromPartial(object: { - classId?: string; - id?: string; - }): _72.QueryNFTRequest; - }; - QueryNFTResponse: { - encode(message: _72.QueryNFTResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _72.QueryNFTResponse; - fromPartial(object: { - nft?: { - classId?: string; - id?: string; - uri?: string; - uriHash?: string; - data?: { - typeUrl?: string; - value?: Uint8Array; - }; - }; - }): _72.QueryNFTResponse; - }; - QueryClassRequest: { - encode(message: _72.QueryClassRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _72.QueryClassRequest; - fromPartial(object: { - classId?: string; - }): _72.QueryClassRequest; - }; - QueryClassResponse: { - encode(message: _72.QueryClassResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _72.QueryClassResponse; - fromPartial(object: { - class?: { - id?: string; - name?: string; - symbol?: string; - description?: string; - uri?: string; - uriHash?: string; - data?: { - typeUrl?: string; - value?: Uint8Array; - }; - }; - }): _72.QueryClassResponse; - }; - QueryClassesRequest: { - encode(message: _72.QueryClassesRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _72.QueryClassesRequest; - fromPartial(object: { - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _72.QueryClassesRequest; - }; - QueryClassesResponse: { - encode(message: _72.QueryClassesResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _72.QueryClassesResponse; - fromPartial(object: { - classes?: { - id?: string; - name?: string; - symbol?: string; - description?: string; - uri?: string; - uriHash?: string; - data?: { - typeUrl?: string; - value?: Uint8Array; - }; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _72.QueryClassesResponse; - }; - Class: { - encode(message: _71.Class, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _71.Class; - fromPartial(object: { - id?: string; - name?: string; - symbol?: string; - description?: string; - uri?: string; - uriHash?: string; - data?: { - typeUrl?: string; - value?: Uint8Array; - }; - }): _71.Class; - }; - NFT: { - encode(message: _71.NFT, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _71.NFT; - fromPartial(object: { - classId?: string; - id?: string; - uri?: string; - uriHash?: string; - data?: { - typeUrl?: string; - value?: Uint8Array; - }; - }): _71.NFT; - }; - GenesisState: { - encode(message: _70.GenesisState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _70.GenesisState; - fromPartial(object: { - classes?: { - id?: string; - name?: string; - symbol?: string; - description?: string; - uri?: string; - uriHash?: string; - data?: { - typeUrl?: string; - value?: Uint8Array; - }; - }[]; - entries?: { - owner?: string; - nfts?: { - classId?: string; - id?: string; - uri?: string; - uriHash?: string; - data?: { - typeUrl?: string; - value?: Uint8Array; - }; - }[]; - }[]; - }): _70.GenesisState; - }; - Entry: { - encode(message: _70.Entry, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _70.Entry; - fromPartial(object: { - owner?: string; - nfts?: { - classId?: string; - id?: string; - uri?: string; - uriHash?: string; - data?: { - typeUrl?: string; - value?: Uint8Array; - }; - }[]; - }): _70.Entry; - }; - EventSend: { - encode(message: _69.EventSend, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _69.EventSend; - fromPartial(object: { - classId?: string; - id?: string; - sender?: string; - receiver?: string; - }): _69.EventSend; - }; - EventMint: { - encode(message: _69.EventMint, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _69.EventMint; - fromPartial(object: { - classId?: string; - id?: string; - owner?: string; - }): _69.EventMint; - }; - EventBurn: { - encode(message: _69.EventBurn, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _69.EventBurn; - fromPartial(object: { - classId?: string; - id?: string; - owner?: string; - }): _69.EventBurn; - }; - }; - } - namespace orm { - const v1: { - TableDescriptor: { - encode(message: _74.TableDescriptor, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _74.TableDescriptor; - fromPartial(object: { - primaryKey?: { - fields?: string; - autoIncrement?: boolean; - }; - index?: { - fields?: string; - id?: number; - unique?: boolean; - }[]; - id?: number; - }): _74.TableDescriptor; - }; - PrimaryKeyDescriptor: { - encode(message: _74.PrimaryKeyDescriptor, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _74.PrimaryKeyDescriptor; - fromPartial(object: { - fields?: string; - autoIncrement?: boolean; - }): _74.PrimaryKeyDescriptor; - }; - SecondaryIndexDescriptor: { - encode(message: _74.SecondaryIndexDescriptor, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _74.SecondaryIndexDescriptor; - fromPartial(object: { - fields?: string; - id?: number; - unique?: boolean; - }): _74.SecondaryIndexDescriptor; - }; - SingletonDescriptor: { - encode(message: _74.SingletonDescriptor, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _74.SingletonDescriptor; - fromPartial(object: { - id?: number; - }): _74.SingletonDescriptor; - }; - }; - const v1alpha1: { - storageTypeFromJSON(object: any): _75.StorageType; - storageTypeToJSON(object: _75.StorageType): string; - StorageType: typeof _75.StorageType; - StorageTypeSDKType: typeof _75.StorageType; - ModuleSchemaDescriptor: { - encode(message: _75.ModuleSchemaDescriptor, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _75.ModuleSchemaDescriptor; - fromPartial(object: { - schemaFile?: { - id?: number; - protoFileName?: string; - storageType?: _75.StorageType; - }[]; - prefix?: Uint8Array; - }): _75.ModuleSchemaDescriptor; - }; - ModuleSchemaDescriptor_FileEntry: { - encode(message: _75.ModuleSchemaDescriptor_FileEntry, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _75.ModuleSchemaDescriptor_FileEntry; - fromPartial(object: { - id?: number; - protoFileName?: string; - storageType?: _75.StorageType; - }): _75.ModuleSchemaDescriptor_FileEntry; - }; - }; - } - namespace params { - const v1beta1: { - QueryClientImpl: typeof _175.QueryClientImpl; - createRpcQueryExtension: (base: import("@cosmjs/stargate").QueryClient) => { - params(request: _77.QueryParamsRequest): Promise<_77.QueryParamsResponse>; - subspaces(request?: _77.QuerySubspacesRequest): Promise<_77.QuerySubspacesResponse>; - }; - LCDQueryClient: typeof _157.LCDQueryClient; - QueryParamsRequest: { - encode(message: _77.QueryParamsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _77.QueryParamsRequest; - fromPartial(object: { - subspace?: string; - key?: string; - }): _77.QueryParamsRequest; - }; - QueryParamsResponse: { - encode(message: _77.QueryParamsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _77.QueryParamsResponse; - fromPartial(object: { - param?: { - subspace?: string; - key?: string; - value?: string; - }; - }): _77.QueryParamsResponse; - }; - QuerySubspacesRequest: { - encode(_: _77.QuerySubspacesRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _77.QuerySubspacesRequest; - fromPartial(_: {}): _77.QuerySubspacesRequest; - }; - QuerySubspacesResponse: { - encode(message: _77.QuerySubspacesResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _77.QuerySubspacesResponse; - fromPartial(object: { - subspaces?: { - subspace?: string; - keys?: string[]; - }[]; - }): _77.QuerySubspacesResponse; - }; - Subspace: { - encode(message: _77.Subspace, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _77.Subspace; - fromPartial(object: { - subspace?: string; - keys?: string[]; - }): _77.Subspace; - }; - ParameterChangeProposal: { - encode(message: _76.ParameterChangeProposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _76.ParameterChangeProposal; - fromPartial(object: { - title?: string; - description?: string; - changes?: { - subspace?: string; - key?: string; - value?: string; - }[]; - }): _76.ParameterChangeProposal; - }; - ParamChange: { - encode(message: _76.ParamChange, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _76.ParamChange; - fromPartial(object: { - subspace?: string; - key?: string; - value?: string; - }): _76.ParamChange; - }; - }; - } - namespace slashing { - const v1beta1: { - MsgClientImpl: typeof _190.MsgClientImpl; - QueryClientImpl: typeof _176.QueryClientImpl; - createRpcQueryExtension: (base: import("@cosmjs/stargate").QueryClient) => { - params(request?: _79.QueryParamsRequest): Promise<_79.QueryParamsResponse>; - signingInfo(request: _79.QuerySigningInfoRequest): Promise<_79.QuerySigningInfoResponse>; - signingInfos(request?: _79.QuerySigningInfosRequest): Promise<_79.QuerySigningInfosResponse>; - }; - LCDQueryClient: typeof _158.LCDQueryClient; - MsgUnjail: { - encode(message: _81.MsgUnjail, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _81.MsgUnjail; - fromPartial(object: { - validatorAddr?: string; - }): _81.MsgUnjail; - }; - MsgUnjailResponse: { - encode(_: _81.MsgUnjailResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _81.MsgUnjailResponse; - fromPartial(_: {}): _81.MsgUnjailResponse; - }; - ValidatorSigningInfo: { - encode(message: _80.ValidatorSigningInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _80.ValidatorSigningInfo; - fromPartial(object: { - address?: string; - startHeight?: string | number | import("long").Long; - indexOffset?: string | number | import("long").Long; - jailedUntil?: Date; - tombstoned?: boolean; - missedBlocksCounter?: string | number | import("long").Long; - }): _80.ValidatorSigningInfo; - }; - Params: { - encode(message: _80.Params, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _80.Params; - fromPartial(object: { - signedBlocksWindow?: string | number | import("long").Long; - minSignedPerWindow?: Uint8Array; - downtimeJailDuration?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - slashFractionDoubleSign?: Uint8Array; - slashFractionDowntime?: Uint8Array; - }): _80.Params; - }; - QueryParamsRequest: { - encode(_: _79.QueryParamsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _79.QueryParamsRequest; - fromPartial(_: {}): _79.QueryParamsRequest; - }; - QueryParamsResponse: { - encode(message: _79.QueryParamsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _79.QueryParamsResponse; - fromPartial(object: { - params?: { - signedBlocksWindow?: string | number | import("long").Long; - minSignedPerWindow?: Uint8Array; - downtimeJailDuration?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - slashFractionDoubleSign?: Uint8Array; - slashFractionDowntime?: Uint8Array; - }; - }): _79.QueryParamsResponse; - }; - QuerySigningInfoRequest: { - encode(message: _79.QuerySigningInfoRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _79.QuerySigningInfoRequest; - fromPartial(object: { - consAddress?: string; - }): _79.QuerySigningInfoRequest; - }; - QuerySigningInfoResponse: { - encode(message: _79.QuerySigningInfoResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _79.QuerySigningInfoResponse; - fromPartial(object: { - valSigningInfo?: { - address?: string; - startHeight?: string | number | import("long").Long; - indexOffset?: string | number | import("long").Long; - jailedUntil?: Date; - tombstoned?: boolean; - missedBlocksCounter?: string | number | import("long").Long; - }; - }): _79.QuerySigningInfoResponse; - }; - QuerySigningInfosRequest: { - encode(message: _79.QuerySigningInfosRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _79.QuerySigningInfosRequest; - fromPartial(object: { - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _79.QuerySigningInfosRequest; - }; - QuerySigningInfosResponse: { - encode(message: _79.QuerySigningInfosResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _79.QuerySigningInfosResponse; - fromPartial(object: { - info?: { - address?: string; - startHeight?: string | number | import("long").Long; - indexOffset?: string | number | import("long").Long; - jailedUntil?: Date; - tombstoned?: boolean; - missedBlocksCounter?: string | number | import("long").Long; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _79.QuerySigningInfosResponse; - }; - GenesisState: { - encode(message: _78.GenesisState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _78.GenesisState; - fromPartial(object: { - params?: { - signedBlocksWindow?: string | number | import("long").Long; - minSignedPerWindow?: Uint8Array; - downtimeJailDuration?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - slashFractionDoubleSign?: Uint8Array; - slashFractionDowntime?: Uint8Array; - }; - signingInfos?: { - address?: string; - validatorSigningInfo?: { - address?: string; - startHeight?: string | number | import("long").Long; - indexOffset?: string | number | import("long").Long; - jailedUntil?: Date; - tombstoned?: boolean; - missedBlocksCounter?: string | number | import("long").Long; - }; - }[]; - missedBlocks?: { - address?: string; - missedBlocks?: { - index?: string | number | import("long").Long; - missed?: boolean; - }[]; - }[]; - }): _78.GenesisState; - }; - SigningInfo: { - encode(message: _78.SigningInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _78.SigningInfo; - fromPartial(object: { - address?: string; - validatorSigningInfo?: { - address?: string; - startHeight?: string | number | import("long").Long; - indexOffset?: string | number | import("long").Long; - jailedUntil?: Date; - tombstoned?: boolean; - missedBlocksCounter?: string | number | import("long").Long; - }; - }): _78.SigningInfo; - }; - ValidatorMissedBlocks: { - encode(message: _78.ValidatorMissedBlocks, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _78.ValidatorMissedBlocks; - fromPartial(object: { - address?: string; - missedBlocks?: { - index?: string | number | import("long").Long; - missed?: boolean; - }[]; - }): _78.ValidatorMissedBlocks; - }; - MissedBlock: { - encode(message: _78.MissedBlock, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _78.MissedBlock; - fromPartial(object: { - index?: string | number | import("long").Long; - missed?: boolean; - }): _78.MissedBlock; - }; - }; - } - namespace staking { - const v1beta1: { - MsgClientImpl: typeof _191.MsgClientImpl; - QueryClientImpl: typeof _177.QueryClientImpl; - createRpcQueryExtension: (base: import("@cosmjs/stargate").QueryClient) => { - validators(request: _84.QueryValidatorsRequest): Promise<_84.QueryValidatorsResponse>; - validator(request: _84.QueryValidatorRequest): Promise<_84.QueryValidatorResponse>; - validatorDelegations(request: _84.QueryValidatorDelegationsRequest): Promise<_84.QueryValidatorDelegationsResponse>; - validatorUnbondingDelegations(request: _84.QueryValidatorUnbondingDelegationsRequest): Promise<_84.QueryValidatorUnbondingDelegationsResponse>; - delegation(request: _84.QueryDelegationRequest): Promise<_84.QueryDelegationResponse>; - unbondingDelegation(request: _84.QueryUnbondingDelegationRequest): Promise<_84.QueryUnbondingDelegationResponse>; - delegatorDelegations(request: _84.QueryDelegatorDelegationsRequest): Promise<_84.QueryDelegatorDelegationsResponse>; - delegatorUnbondingDelegations(request: _84.QueryDelegatorUnbondingDelegationsRequest): Promise<_84.QueryDelegatorUnbondingDelegationsResponse>; - redelegations(request: _84.QueryRedelegationsRequest): Promise<_84.QueryRedelegationsResponse>; - delegatorValidators(request: _84.QueryDelegatorValidatorsRequest): Promise<_84.QueryDelegatorValidatorsResponse>; - delegatorValidator(request: _84.QueryDelegatorValidatorRequest): Promise<_84.QueryDelegatorValidatorResponse>; - historicalInfo(request: _84.QueryHistoricalInfoRequest): Promise<_84.QueryHistoricalInfoResponse>; - pool(request?: _84.QueryPoolRequest): Promise<_84.QueryPoolResponse>; - params(request?: _84.QueryParamsRequest): Promise<_84.QueryParamsResponse>; - }; - LCDQueryClient: typeof _159.LCDQueryClient; - MsgCreateValidator: { - encode(message: _86.MsgCreateValidator, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _86.MsgCreateValidator; - fromPartial(object: { - description?: { - moniker?: string; - identity?: string; - website?: string; - securityContact?: string; - details?: string; - }; - commission?: { - rate?: string; - maxRate?: string; - maxChangeRate?: string; - }; - minSelfDelegation?: string; - delegatorAddress?: string; - validatorAddress?: string; - pubkey?: { - typeUrl?: string; - value?: Uint8Array; - }; - value?: { - denom?: string; - amount?: string; - }; - }): _86.MsgCreateValidator; - }; - MsgCreateValidatorResponse: { - encode(_: _86.MsgCreateValidatorResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _86.MsgCreateValidatorResponse; - fromPartial(_: {}): _86.MsgCreateValidatorResponse; - }; - MsgEditValidator: { - encode(message: _86.MsgEditValidator, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _86.MsgEditValidator; - fromPartial(object: { - description?: { - moniker?: string; - identity?: string; - website?: string; - securityContact?: string; - details?: string; - }; - validatorAddress?: string; - commissionRate?: string; - minSelfDelegation?: string; - }): _86.MsgEditValidator; - }; - MsgEditValidatorResponse: { - encode(_: _86.MsgEditValidatorResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _86.MsgEditValidatorResponse; - fromPartial(_: {}): _86.MsgEditValidatorResponse; - }; - MsgDelegate: { - encode(message: _86.MsgDelegate, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _86.MsgDelegate; - fromPartial(object: { - delegatorAddress?: string; - validatorAddress?: string; - amount?: { - denom?: string; - amount?: string; - }; - }): _86.MsgDelegate; - }; - MsgDelegateResponse: { - encode(_: _86.MsgDelegateResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _86.MsgDelegateResponse; - fromPartial(_: {}): _86.MsgDelegateResponse; - }; - MsgBeginRedelegate: { - encode(message: _86.MsgBeginRedelegate, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _86.MsgBeginRedelegate; - fromPartial(object: { - delegatorAddress?: string; - validatorSrcAddress?: string; - validatorDstAddress?: string; - amount?: { - denom?: string; - amount?: string; - }; - }): _86.MsgBeginRedelegate; - }; - MsgBeginRedelegateResponse: { - encode(message: _86.MsgBeginRedelegateResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _86.MsgBeginRedelegateResponse; - fromPartial(object: { - completionTime?: Date; - }): _86.MsgBeginRedelegateResponse; - }; - MsgUndelegate: { - encode(message: _86.MsgUndelegate, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _86.MsgUndelegate; - fromPartial(object: { - delegatorAddress?: string; - validatorAddress?: string; - amount?: { - denom?: string; - amount?: string; - }; - }): _86.MsgUndelegate; - }; - MsgUndelegateResponse: { - encode(message: _86.MsgUndelegateResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _86.MsgUndelegateResponse; - fromPartial(object: { - completionTime?: Date; - }): _86.MsgUndelegateResponse; - }; - bondStatusFromJSON(object: any): _85.BondStatus; - bondStatusToJSON(object: _85.BondStatus): string; - BondStatus: typeof _85.BondStatus; - BondStatusSDKType: typeof _85.BondStatus; - HistoricalInfo: { - encode(message: _85.HistoricalInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _85.HistoricalInfo; - fromPartial(object: { - header?: { - version?: { - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }; - chainId?: string; - height?: string | number | import("long").Long; - time?: Date; - lastBlockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - lastCommitHash?: Uint8Array; - dataHash?: Uint8Array; - validatorsHash?: Uint8Array; - nextValidatorsHash?: Uint8Array; - consensusHash?: Uint8Array; - appHash?: Uint8Array; - lastResultsHash?: Uint8Array; - evidenceHash?: Uint8Array; - proposerAddress?: Uint8Array; - }; - valset?: { - operatorAddress?: string; - consensusPubkey?: { - typeUrl?: string; - value?: Uint8Array; - }; - jailed?: boolean; - status?: _85.BondStatus; - tokens?: string; - delegatorShares?: string; - description?: { - moniker?: string; - identity?: string; - website?: string; - securityContact?: string; - details?: string; - }; - unbondingHeight?: string | number | import("long").Long; - unbondingTime?: Date; - commission?: { - commissionRates?: { - rate?: string; - maxRate?: string; - maxChangeRate?: string; - }; - updateTime?: Date; - }; - minSelfDelegation?: string; - }[]; - }): _85.HistoricalInfo; - }; - CommissionRates: { - encode(message: _85.CommissionRates, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _85.CommissionRates; - fromPartial(object: { - rate?: string; - maxRate?: string; - maxChangeRate?: string; - }): _85.CommissionRates; - }; - Commission: { - encode(message: _85.Commission, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _85.Commission; - fromPartial(object: { - commissionRates?: { - rate?: string; - maxRate?: string; - maxChangeRate?: string; - }; - updateTime?: Date; - }): _85.Commission; - }; - Description: { - encode(message: _85.Description, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _85.Description; - fromPartial(object: { - moniker?: string; - identity?: string; - website?: string; - securityContact?: string; - details?: string; - }): _85.Description; - }; - Validator: { - encode(message: _85.Validator, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _85.Validator; - fromPartial(object: { - operatorAddress?: string; - consensusPubkey?: { - typeUrl?: string; - value?: Uint8Array; - }; - jailed?: boolean; - status?: _85.BondStatus; - tokens?: string; - delegatorShares?: string; - description?: { - moniker?: string; - identity?: string; - website?: string; - securityContact?: string; - details?: string; - }; - unbondingHeight?: string | number | import("long").Long; - unbondingTime?: Date; - commission?: { - commissionRates?: { - rate?: string; - maxRate?: string; - maxChangeRate?: string; - }; - updateTime?: Date; - }; - minSelfDelegation?: string; - }): _85.Validator; - }; - ValAddresses: { - encode(message: _85.ValAddresses, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _85.ValAddresses; - fromPartial(object: { - addresses?: string[]; - }): _85.ValAddresses; - }; - DVPair: { - encode(message: _85.DVPair, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _85.DVPair; - fromPartial(object: { - delegatorAddress?: string; - validatorAddress?: string; - }): _85.DVPair; - }; - DVPairs: { - encode(message: _85.DVPairs, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _85.DVPairs; - fromPartial(object: { - pairs?: { - delegatorAddress?: string; - validatorAddress?: string; - }[]; - }): _85.DVPairs; - }; - DVVTriplet: { - encode(message: _85.DVVTriplet, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _85.DVVTriplet; - fromPartial(object: { - delegatorAddress?: string; - validatorSrcAddress?: string; - validatorDstAddress?: string; - }): _85.DVVTriplet; - }; - DVVTriplets: { - encode(message: _85.DVVTriplets, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _85.DVVTriplets; - fromPartial(object: { - triplets?: { - delegatorAddress?: string; - validatorSrcAddress?: string; - validatorDstAddress?: string; - }[]; - }): _85.DVVTriplets; - }; - Delegation: { - encode(message: _85.Delegation, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _85.Delegation; - fromPartial(object: { - delegatorAddress?: string; - validatorAddress?: string; - shares?: string; - }): _85.Delegation; - }; - UnbondingDelegation: { - encode(message: _85.UnbondingDelegation, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _85.UnbondingDelegation; - fromPartial(object: { - delegatorAddress?: string; - validatorAddress?: string; - entries?: { - creationHeight?: string | number | import("long").Long; - completionTime?: Date; - initialBalance?: string; - balance?: string; - }[]; - }): _85.UnbondingDelegation; - }; - UnbondingDelegationEntry: { - encode(message: _85.UnbondingDelegationEntry, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _85.UnbondingDelegationEntry; - fromPartial(object: { - creationHeight?: string | number | import("long").Long; - completionTime?: Date; - initialBalance?: string; - balance?: string; - }): _85.UnbondingDelegationEntry; - }; - RedelegationEntry: { - encode(message: _85.RedelegationEntry, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _85.RedelegationEntry; - fromPartial(object: { - creationHeight?: string | number | import("long").Long; - completionTime?: Date; - initialBalance?: string; - sharesDst?: string; - }): _85.RedelegationEntry; - }; - Redelegation: { - encode(message: _85.Redelegation, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _85.Redelegation; - fromPartial(object: { - delegatorAddress?: string; - validatorSrcAddress?: string; - validatorDstAddress?: string; - entries?: { - creationHeight?: string | number | import("long").Long; - completionTime?: Date; - initialBalance?: string; - sharesDst?: string; - }[]; - }): _85.Redelegation; - }; - Params: { - encode(message: _85.Params, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _85.Params; - fromPartial(object: { - unbondingTime?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - maxValidators?: number; - maxEntries?: number; - historicalEntries?: number; - bondDenom?: string; - minCommissionRate?: string; - }): _85.Params; - }; - DelegationResponse: { - encode(message: _85.DelegationResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _85.DelegationResponse; - fromPartial(object: { - delegation?: { - delegatorAddress?: string; - validatorAddress?: string; - shares?: string; - }; - balance?: { - denom?: string; - amount?: string; - }; - }): _85.DelegationResponse; - }; - RedelegationEntryResponse: { - encode(message: _85.RedelegationEntryResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _85.RedelegationEntryResponse; - fromPartial(object: { - redelegationEntry?: { - creationHeight?: string | number | import("long").Long; - completionTime?: Date; - initialBalance?: string; - sharesDst?: string; - }; - balance?: string; - }): _85.RedelegationEntryResponse; - }; - RedelegationResponse: { - encode(message: _85.RedelegationResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _85.RedelegationResponse; - fromPartial(object: { - redelegation?: { - delegatorAddress?: string; - validatorSrcAddress?: string; - validatorDstAddress?: string; - entries?: { - creationHeight?: string | number | import("long").Long; - completionTime?: Date; - initialBalance?: string; - sharesDst?: string; - }[]; - }; - entries?: { - redelegationEntry?: { - creationHeight?: string | number | import("long").Long; - completionTime?: Date; - initialBalance?: string; - sharesDst?: string; - }; - balance?: string; - }[]; - }): _85.RedelegationResponse; - }; - Pool: { - encode(message: _85.Pool, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _85.Pool; - fromPartial(object: { - notBondedTokens?: string; - bondedTokens?: string; - }): _85.Pool; - }; - QueryValidatorsRequest: { - encode(message: _84.QueryValidatorsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryValidatorsRequest; - fromPartial(object: { - status?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _84.QueryValidatorsRequest; - }; - QueryValidatorsResponse: { - encode(message: _84.QueryValidatorsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryValidatorsResponse; - fromPartial(object: { - validators?: { - operatorAddress?: string; - consensusPubkey?: { - typeUrl?: string; - value?: Uint8Array; - }; - jailed?: boolean; - status?: _85.BondStatus; - tokens?: string; - delegatorShares?: string; - description?: { - moniker?: string; - identity?: string; - website?: string; - securityContact?: string; - details?: string; - }; - unbondingHeight?: string | number | import("long").Long; - unbondingTime?: Date; - commission?: { - commissionRates?: { - rate?: string; - maxRate?: string; - maxChangeRate?: string; - }; - updateTime?: Date; - }; - minSelfDelegation?: string; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _84.QueryValidatorsResponse; - }; - QueryValidatorRequest: { - encode(message: _84.QueryValidatorRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryValidatorRequest; - fromPartial(object: { - validatorAddr?: string; - }): _84.QueryValidatorRequest; - }; - QueryValidatorResponse: { - encode(message: _84.QueryValidatorResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryValidatorResponse; - fromPartial(object: { - validator?: { - operatorAddress?: string; - consensusPubkey?: { - typeUrl?: string; - value?: Uint8Array; - }; - jailed?: boolean; - status?: _85.BondStatus; - tokens?: string; - delegatorShares?: string; - description?: { - moniker?: string; - identity?: string; - website?: string; - securityContact?: string; - details?: string; - }; - unbondingHeight?: string | number | import("long").Long; - unbondingTime?: Date; - commission?: { - commissionRates?: { - rate?: string; - maxRate?: string; - maxChangeRate?: string; - }; - updateTime?: Date; - }; - minSelfDelegation?: string; - }; - }): _84.QueryValidatorResponse; - }; - QueryValidatorDelegationsRequest: { - encode(message: _84.QueryValidatorDelegationsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryValidatorDelegationsRequest; - fromPartial(object: { - validatorAddr?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _84.QueryValidatorDelegationsRequest; - }; - QueryValidatorDelegationsResponse: { - encode(message: _84.QueryValidatorDelegationsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryValidatorDelegationsResponse; - fromPartial(object: { - delegationResponses?: { - delegation?: { - delegatorAddress?: string; - validatorAddress?: string; - shares?: string; - }; - balance?: { - denom?: string; - amount?: string; - }; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _84.QueryValidatorDelegationsResponse; - }; - QueryValidatorUnbondingDelegationsRequest: { - encode(message: _84.QueryValidatorUnbondingDelegationsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryValidatorUnbondingDelegationsRequest; - fromPartial(object: { - validatorAddr?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _84.QueryValidatorUnbondingDelegationsRequest; - }; - QueryValidatorUnbondingDelegationsResponse: { - encode(message: _84.QueryValidatorUnbondingDelegationsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryValidatorUnbondingDelegationsResponse; - fromPartial(object: { - unbondingResponses?: { - delegatorAddress?: string; - validatorAddress?: string; - entries?: { - creationHeight?: string | number | import("long").Long; - completionTime?: Date; - initialBalance?: string; - balance?: string; - }[]; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _84.QueryValidatorUnbondingDelegationsResponse; - }; - QueryDelegationRequest: { - encode(message: _84.QueryDelegationRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryDelegationRequest; - fromPartial(object: { - delegatorAddr?: string; - validatorAddr?: string; - }): _84.QueryDelegationRequest; - }; - QueryDelegationResponse: { - encode(message: _84.QueryDelegationResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryDelegationResponse; - fromPartial(object: { - delegationResponse?: { - delegation?: { - delegatorAddress?: string; - validatorAddress?: string; - shares?: string; - }; - balance?: { - denom?: string; - amount?: string; - }; - }; - }): _84.QueryDelegationResponse; - }; - QueryUnbondingDelegationRequest: { - encode(message: _84.QueryUnbondingDelegationRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryUnbondingDelegationRequest; - fromPartial(object: { - delegatorAddr?: string; - validatorAddr?: string; - }): _84.QueryUnbondingDelegationRequest; - }; - QueryUnbondingDelegationResponse: { - encode(message: _84.QueryUnbondingDelegationResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryUnbondingDelegationResponse; - fromPartial(object: { - unbond?: { - delegatorAddress?: string; - validatorAddress?: string; - entries?: { - creationHeight?: string | number | import("long").Long; - completionTime?: Date; - initialBalance?: string; - balance?: string; - }[]; - }; - }): _84.QueryUnbondingDelegationResponse; - }; - QueryDelegatorDelegationsRequest: { - encode(message: _84.QueryDelegatorDelegationsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryDelegatorDelegationsRequest; - fromPartial(object: { - delegatorAddr?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _84.QueryDelegatorDelegationsRequest; - }; - QueryDelegatorDelegationsResponse: { - encode(message: _84.QueryDelegatorDelegationsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryDelegatorDelegationsResponse; - fromPartial(object: { - delegationResponses?: { - delegation?: { - delegatorAddress?: string; - validatorAddress?: string; - shares?: string; - }; - balance?: { - denom?: string; - amount?: string; - }; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _84.QueryDelegatorDelegationsResponse; - }; - QueryDelegatorUnbondingDelegationsRequest: { - encode(message: _84.QueryDelegatorUnbondingDelegationsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryDelegatorUnbondingDelegationsRequest; - fromPartial(object: { - delegatorAddr?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _84.QueryDelegatorUnbondingDelegationsRequest; - }; - QueryDelegatorUnbondingDelegationsResponse: { - encode(message: _84.QueryDelegatorUnbondingDelegationsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryDelegatorUnbondingDelegationsResponse; - fromPartial(object: { - unbondingResponses?: { - delegatorAddress?: string; - validatorAddress?: string; - entries?: { - creationHeight?: string | number | import("long").Long; - completionTime?: Date; - initialBalance?: string; - balance?: string; - }[]; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _84.QueryDelegatorUnbondingDelegationsResponse; - }; - QueryRedelegationsRequest: { - encode(message: _84.QueryRedelegationsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryRedelegationsRequest; - fromPartial(object: { - delegatorAddr?: string; - srcValidatorAddr?: string; - dstValidatorAddr?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _84.QueryRedelegationsRequest; - }; - QueryRedelegationsResponse: { - encode(message: _84.QueryRedelegationsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryRedelegationsResponse; - fromPartial(object: { - redelegationResponses?: { - redelegation?: { - delegatorAddress?: string; - validatorSrcAddress?: string; - validatorDstAddress?: string; - entries?: { - creationHeight?: string | number | import("long").Long; - completionTime?: Date; - initialBalance?: string; - sharesDst?: string; - }[]; - }; - entries?: { - redelegationEntry?: { - creationHeight?: string | number | import("long").Long; - completionTime?: Date; - initialBalance?: string; - sharesDst?: string; - }; - balance?: string; - }[]; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _84.QueryRedelegationsResponse; - }; - QueryDelegatorValidatorsRequest: { - encode(message: _84.QueryDelegatorValidatorsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryDelegatorValidatorsRequest; - fromPartial(object: { - delegatorAddr?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _84.QueryDelegatorValidatorsRequest; - }; - QueryDelegatorValidatorsResponse: { - encode(message: _84.QueryDelegatorValidatorsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryDelegatorValidatorsResponse; - fromPartial(object: { - validators?: { - operatorAddress?: string; - consensusPubkey?: { - typeUrl?: string; - value?: Uint8Array; - }; - jailed?: boolean; - status?: _85.BondStatus; - tokens?: string; - delegatorShares?: string; - description?: { - moniker?: string; - identity?: string; - website?: string; - securityContact?: string; - details?: string; - }; - unbondingHeight?: string | number | import("long").Long; - unbondingTime?: Date; - commission?: { - commissionRates?: { - rate?: string; - maxRate?: string; - maxChangeRate?: string; - }; - updateTime?: Date; - }; - minSelfDelegation?: string; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _84.QueryDelegatorValidatorsResponse; - }; - QueryDelegatorValidatorRequest: { - encode(message: _84.QueryDelegatorValidatorRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryDelegatorValidatorRequest; - fromPartial(object: { - delegatorAddr?: string; - validatorAddr?: string; - }): _84.QueryDelegatorValidatorRequest; - }; - QueryDelegatorValidatorResponse: { - encode(message: _84.QueryDelegatorValidatorResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryDelegatorValidatorResponse; - fromPartial(object: { - validator?: { - operatorAddress?: string; - consensusPubkey?: { - typeUrl?: string; - value?: Uint8Array; - }; - jailed?: boolean; - status?: _85.BondStatus; - tokens?: string; - delegatorShares?: string; - description?: { - moniker?: string; - identity?: string; - website?: string; - securityContact?: string; - details?: string; - }; - unbondingHeight?: string | number | import("long").Long; - unbondingTime?: Date; - commission?: { - commissionRates?: { - rate?: string; - maxRate?: string; - maxChangeRate?: string; - }; - updateTime?: Date; - }; - minSelfDelegation?: string; - }; - }): _84.QueryDelegatorValidatorResponse; - }; - QueryHistoricalInfoRequest: { - encode(message: _84.QueryHistoricalInfoRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryHistoricalInfoRequest; - fromPartial(object: { - height?: string | number | import("long").Long; - }): _84.QueryHistoricalInfoRequest; - }; - QueryHistoricalInfoResponse: { - encode(message: _84.QueryHistoricalInfoResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryHistoricalInfoResponse; - fromPartial(object: { - hist?: { - header?: { - version?: { - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }; - chainId?: string; - height?: string | number | import("long").Long; - time?: Date; - lastBlockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - lastCommitHash?: Uint8Array; - dataHash?: Uint8Array; - validatorsHash?: Uint8Array; - nextValidatorsHash?: Uint8Array; - consensusHash?: Uint8Array; - appHash?: Uint8Array; - lastResultsHash?: Uint8Array; - evidenceHash?: Uint8Array; - proposerAddress?: Uint8Array; - }; - valset?: { - operatorAddress?: string; - consensusPubkey?: { - typeUrl?: string; - value?: Uint8Array; - }; - jailed?: boolean; - status?: _85.BondStatus; - tokens?: string; - delegatorShares?: string; - description?: { - moniker?: string; - identity?: string; - website?: string; - securityContact?: string; - details?: string; - }; - unbondingHeight?: string | number | import("long").Long; - unbondingTime?: Date; - commission?: { - commissionRates?: { - rate?: string; - maxRate?: string; - maxChangeRate?: string; - }; - updateTime?: Date; - }; - minSelfDelegation?: string; - }[]; - }; - }): _84.QueryHistoricalInfoResponse; - }; - QueryPoolRequest: { - encode(_: _84.QueryPoolRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryPoolRequest; - fromPartial(_: {}): _84.QueryPoolRequest; - }; - QueryPoolResponse: { - encode(message: _84.QueryPoolResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryPoolResponse; - fromPartial(object: { - pool?: { - notBondedTokens?: string; - bondedTokens?: string; - }; - }): _84.QueryPoolResponse; - }; - QueryParamsRequest: { - encode(_: _84.QueryParamsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryParamsRequest; - fromPartial(_: {}): _84.QueryParamsRequest; - }; - QueryParamsResponse: { - encode(message: _84.QueryParamsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _84.QueryParamsResponse; - fromPartial(object: { - params?: { - unbondingTime?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - maxValidators?: number; - maxEntries?: number; - historicalEntries?: number; - bondDenom?: string; - minCommissionRate?: string; - }; - }): _84.QueryParamsResponse; - }; - GenesisState: { - encode(message: _83.GenesisState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _83.GenesisState; - fromPartial(object: { - params?: { - unbondingTime?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - maxValidators?: number; - maxEntries?: number; - historicalEntries?: number; - bondDenom?: string; - minCommissionRate?: string; - }; - lastTotalPower?: Uint8Array; - lastValidatorPowers?: { - address?: string; - power?: string | number | import("long").Long; - }[]; - validators?: { - operatorAddress?: string; - consensusPubkey?: { - typeUrl?: string; - value?: Uint8Array; - }; - jailed?: boolean; - status?: _85.BondStatus; - tokens?: string; - delegatorShares?: string; - description?: { - moniker?: string; - identity?: string; - website?: string; - securityContact?: string; - details?: string; - }; - unbondingHeight?: string | number | import("long").Long; - unbondingTime?: Date; - commission?: { - commissionRates?: { - rate?: string; - maxRate?: string; - maxChangeRate?: string; - }; - updateTime?: Date; - }; - minSelfDelegation?: string; - }[]; - delegations?: { - delegatorAddress?: string; - validatorAddress?: string; - shares?: string; - }[]; - unbondingDelegations?: { - delegatorAddress?: string; - validatorAddress?: string; - entries?: { - creationHeight?: string | number | import("long").Long; - completionTime?: Date; - initialBalance?: string; - balance?: string; - }[]; - }[]; - redelegations?: { - delegatorAddress?: string; - validatorSrcAddress?: string; - validatorDstAddress?: string; - entries?: { - creationHeight?: string | number | import("long").Long; - completionTime?: Date; - initialBalance?: string; - sharesDst?: string; - }[]; - }[]; - exported?: boolean; - }): _83.GenesisState; - }; - LastValidatorPower: { - encode(message: _83.LastValidatorPower, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _83.LastValidatorPower; - fromPartial(object: { - address?: string; - power?: string | number | import("long").Long; - }): _83.LastValidatorPower; - }; - authorizationTypeFromJSON(object: any): _82.AuthorizationType; - authorizationTypeToJSON(object: _82.AuthorizationType): string; - AuthorizationType: typeof _82.AuthorizationType; - AuthorizationTypeSDKType: typeof _82.AuthorizationType; - StakeAuthorization: { - encode(message: _82.StakeAuthorization, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _82.StakeAuthorization; - fromPartial(object: { - maxTokens?: { - denom?: string; - amount?: string; - }; - allowList?: { - address?: string[]; - }; - denyList?: { - address?: string[]; - }; - authorizationType?: _82.AuthorizationType; - }): _82.StakeAuthorization; - }; - StakeAuthorization_Validators: { - encode(message: _82.StakeAuthorization_Validators, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _82.StakeAuthorization_Validators; - fromPartial(object: { - address?: string[]; - }): _82.StakeAuthorization_Validators; - }; - }; - } - namespace tx { - namespace signing { - const v1beta1: { - signModeFromJSON(object: any): _87.SignMode; - signModeToJSON(object: _87.SignMode): string; - SignMode: typeof _87.SignMode; - SignModeSDKType: typeof _87.SignMode; - SignatureDescriptors: { - encode(message: _87.SignatureDescriptors, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _87.SignatureDescriptors; - fromPartial(object: { - signatures?: { - publicKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - data?: { - single?: { - mode?: _87.SignMode; - signature?: Uint8Array; - }; - multi?: { - bitarray?: { - extraBitsStored?: number; - elems?: Uint8Array; - }; - signatures?: any[]; - }; - }; - sequence?: string | number | import("long").Long; - }[]; - }): _87.SignatureDescriptors; - }; - SignatureDescriptor: { - encode(message: _87.SignatureDescriptor, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _87.SignatureDescriptor; - fromPartial(object: { - publicKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - data?: { - single?: { - mode?: _87.SignMode; - signature?: Uint8Array; - }; - multi?: { - bitarray?: { - extraBitsStored?: number; - elems?: Uint8Array; - }; - signatures?: any[]; - }; - }; - sequence?: string | number | import("long").Long; - }): _87.SignatureDescriptor; - }; - SignatureDescriptor_Data: { - encode(message: _87.SignatureDescriptor_Data, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _87.SignatureDescriptor_Data; - fromPartial(object: { - single?: { - mode?: _87.SignMode; - signature?: Uint8Array; - }; - multi?: { - bitarray?: { - extraBitsStored?: number; - elems?: Uint8Array; - }; - signatures?: any[]; - }; - }): _87.SignatureDescriptor_Data; - }; - SignatureDescriptor_Data_Single: { - encode(message: _87.SignatureDescriptor_Data_Single, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _87.SignatureDescriptor_Data_Single; - fromPartial(object: { - mode?: _87.SignMode; - signature?: Uint8Array; - }): _87.SignatureDescriptor_Data_Single; - }; - SignatureDescriptor_Data_Multi: { - encode(message: _87.SignatureDescriptor_Data_Multi, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _87.SignatureDescriptor_Data_Multi; - fromPartial(object: { - bitarray?: { - extraBitsStored?: number; - elems?: Uint8Array; - }; - signatures?: any[]; - }): _87.SignatureDescriptor_Data_Multi; - }; - }; - } - const v1beta1: { - ServiceClientImpl: typeof _178.ServiceClientImpl; - createRpcQueryExtension: (base: import("@cosmjs/stargate").QueryClient) => { - simulate(request: _88.SimulateRequest): Promise<_88.SimulateResponse>; - getTx(request: _88.GetTxRequest): Promise<_88.GetTxResponse>; - broadcastTx(request: _88.BroadcastTxRequest): Promise<_88.BroadcastTxResponse>; - getTxsEvent(request: _88.GetTxsEventRequest): Promise<_88.GetTxsEventResponse>; - getBlockWithTxs(request: _88.GetBlockWithTxsRequest): Promise<_88.GetBlockWithTxsResponse>; - }; - LCDQueryClient: typeof _160.LCDQueryClient; - Tx: { - encode(message: _89.Tx, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _89.Tx; - fromPartial(object: { - body?: { - messages?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - memo?: string; - timeoutHeight?: string | number | import("long").Long; - extensionOptions?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - nonCriticalExtensionOptions?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - }; - authInfo?: { - signerInfos?: { - publicKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - modeInfo?: { - single?: { - mode?: _87.SignMode; - }; - multi?: { - bitarray?: { - extraBitsStored?: number; - elems?: Uint8Array; - }; - modeInfos?: any[]; - }; - }; - sequence?: string | number | import("long").Long; - }[]; - fee?: { - amount?: { - denom?: string; - amount?: string; - }[]; - gasLimit?: string | number | import("long").Long; - payer?: string; - granter?: string; - }; - tip?: { - amount?: { - denom?: string; - amount?: string; - }[]; - tipper?: string; - }; - }; - signatures?: Uint8Array[]; - }): _89.Tx; - }; - TxRaw: { - encode(message: _89.TxRaw, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _89.TxRaw; - fromPartial(object: { - bodyBytes?: Uint8Array; - authInfoBytes?: Uint8Array; - signatures?: Uint8Array[]; - }): _89.TxRaw; - }; - SignDoc: { - encode(message: _89.SignDoc, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _89.SignDoc; - fromPartial(object: { - bodyBytes?: Uint8Array; - authInfoBytes?: Uint8Array; - chainId?: string; - accountNumber?: string | number | import("long").Long; - }): _89.SignDoc; - }; - SignDocDirectAux: { - encode(message: _89.SignDocDirectAux, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _89.SignDocDirectAux; - fromPartial(object: { - bodyBytes?: Uint8Array; - publicKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - chainId?: string; - accountNumber?: string | number | import("long").Long; - sequence?: string | number | import("long").Long; - tip?: { - amount?: { - denom?: string; - amount?: string; - }[]; - tipper?: string; - }; - }): _89.SignDocDirectAux; - }; - TxBody: { - encode(message: _89.TxBody, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _89.TxBody; - fromPartial(object: { - messages?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - memo?: string; - timeoutHeight?: string | number | import("long").Long; - extensionOptions?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - nonCriticalExtensionOptions?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - }): _89.TxBody; - }; - AuthInfo: { - encode(message: _89.AuthInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _89.AuthInfo; - fromPartial(object: { - signerInfos?: { - publicKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - modeInfo?: { - single?: { - mode?: _87.SignMode; - }; - multi?: { - bitarray?: { - extraBitsStored?: number; - elems?: Uint8Array; - }; - modeInfos?: any[]; - }; - }; - sequence?: string | number | import("long").Long; - }[]; - fee?: { - amount?: { - denom?: string; - amount?: string; - }[]; - gasLimit?: string | number | import("long").Long; - payer?: string; - granter?: string; - }; - tip?: { - amount?: { - denom?: string; - amount?: string; - }[]; - tipper?: string; - }; - }): _89.AuthInfo; - }; - SignerInfo: { - encode(message: _89.SignerInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _89.SignerInfo; - fromPartial(object: { - publicKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - modeInfo?: { - single?: { - mode?: _87.SignMode; - }; - multi?: { - bitarray?: { - extraBitsStored?: number; - elems?: Uint8Array; - }; - modeInfos?: any[]; - }; - }; - sequence?: string | number | import("long").Long; - }): _89.SignerInfo; - }; - ModeInfo: { - encode(message: _89.ModeInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _89.ModeInfo; - fromPartial(object: { - single?: { - mode?: _87.SignMode; - }; - multi?: { - bitarray?: { - extraBitsStored?: number; - elems?: Uint8Array; - }; - modeInfos?: any[]; - }; - }): _89.ModeInfo; - }; - ModeInfo_Single: { - encode(message: _89.ModeInfo_Single, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _89.ModeInfo_Single; - fromPartial(object: { - mode?: _87.SignMode; - }): _89.ModeInfo_Single; - }; - ModeInfo_Multi: { - encode(message: _89.ModeInfo_Multi, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _89.ModeInfo_Multi; - fromPartial(object: { - bitarray?: { - extraBitsStored?: number; - elems?: Uint8Array; - }; - modeInfos?: any[]; - }): _89.ModeInfo_Multi; - }; - Fee: { - encode(message: _89.Fee, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _89.Fee; - fromPartial(object: { - amount?: { - denom?: string; - amount?: string; - }[]; - gasLimit?: string | number | import("long").Long; - payer?: string; - granter?: string; - }): _89.Fee; - }; - Tip: { - encode(message: _89.Tip, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _89.Tip; - fromPartial(object: { - amount?: { - denom?: string; - amount?: string; - }[]; - tipper?: string; - }): _89.Tip; - }; - AuxSignerData: { - encode(message: _89.AuxSignerData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _89.AuxSignerData; - fromPartial(object: { - address?: string; - signDoc?: { - bodyBytes?: Uint8Array; - publicKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - chainId?: string; - accountNumber?: string | number | import("long").Long; - sequence?: string | number | import("long").Long; - tip?: { - amount?: { - denom?: string; - amount?: string; - }[]; - tipper?: string; - }; - }; - mode?: _87.SignMode; - sig?: Uint8Array; - }): _89.AuxSignerData; - }; - orderByFromJSON(object: any): _88.OrderBy; - orderByToJSON(object: _88.OrderBy): string; - broadcastModeFromJSON(object: any): _88.BroadcastMode; - broadcastModeToJSON(object: _88.BroadcastMode): string; - OrderBy: typeof _88.OrderBy; - OrderBySDKType: typeof _88.OrderBy; - BroadcastMode: typeof _88.BroadcastMode; - BroadcastModeSDKType: typeof _88.BroadcastMode; - GetTxsEventRequest: { - encode(message: _88.GetTxsEventRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _88.GetTxsEventRequest; - fromPartial(object: { - events?: string[]; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - orderBy?: _88.OrderBy; - }): _88.GetTxsEventRequest; - }; - GetTxsEventResponse: { - encode(message: _88.GetTxsEventResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _88.GetTxsEventResponse; - fromPartial(object: { - txs?: { - body?: { - messages?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - memo?: string; - timeoutHeight?: string | number | import("long").Long; - extensionOptions?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - nonCriticalExtensionOptions?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - }; - authInfo?: { - signerInfos?: { - publicKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - modeInfo?: { - single?: { - mode?: _87.SignMode; - }; - multi?: { - bitarray?: { - extraBitsStored?: number; - elems?: Uint8Array; - }; - modeInfos?: any[]; - }; - }; - sequence?: string | number | import("long").Long; - }[]; - fee?: { - amount?: { - denom?: string; - amount?: string; - }[]; - gasLimit?: string | number | import("long").Long; - payer?: string; - granter?: string; - }; - tip?: { - amount?: { - denom?: string; - amount?: string; - }[]; - tipper?: string; - }; - }; - signatures?: Uint8Array[]; - }[]; - txResponses?: { - height?: string | number | import("long").Long; - txhash?: string; - codespace?: string; - code?: number; - data?: string; - rawLog?: string; - logs?: { - msgIndex?: number; - log?: string; - events?: { - type?: string; - attributes?: { - key?: string; - value?: string; - }[]; - }[]; - }[]; - info?: string; - gasWanted?: string | number | import("long").Long; - gasUsed?: string | number | import("long").Long; - tx?: { - typeUrl?: string; - value?: Uint8Array; - }; - timestamp?: string; - events?: { - type?: string; - attributes?: { - key?: Uint8Array; - value?: Uint8Array; - index?: boolean; - }[]; - }[]; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _88.GetTxsEventResponse; - }; - BroadcastTxRequest: { - encode(message: _88.BroadcastTxRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _88.BroadcastTxRequest; - fromPartial(object: { - txBytes?: Uint8Array; - mode?: _88.BroadcastMode; - }): _88.BroadcastTxRequest; - }; - BroadcastTxResponse: { - encode(message: _88.BroadcastTxResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _88.BroadcastTxResponse; - fromPartial(object: { - txResponse?: { - height?: string | number | import("long").Long; - txhash?: string; - codespace?: string; - code?: number; - data?: string; - rawLog?: string; - logs?: { - msgIndex?: number; - log?: string; - events?: { - type?: string; - attributes?: { - key?: string; - value?: string; - }[]; - }[]; - }[]; - info?: string; - gasWanted?: string | number | import("long").Long; - gasUsed?: string | number | import("long").Long; - tx?: { - typeUrl?: string; - value?: Uint8Array; - }; - timestamp?: string; - events?: { - type?: string; - attributes?: { - key?: Uint8Array; - value?: Uint8Array; - index?: boolean; - }[]; - }[]; - }; - }): _88.BroadcastTxResponse; - }; - SimulateRequest: { - encode(message: _88.SimulateRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _88.SimulateRequest; - fromPartial(object: { - tx?: { - body?: { - messages?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - memo?: string; - timeoutHeight?: string | number | import("long").Long; - extensionOptions?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - nonCriticalExtensionOptions?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - }; - authInfo?: { - signerInfos?: { - publicKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - modeInfo?: { - single?: { - mode?: _87.SignMode; - }; - multi?: { - bitarray?: { - extraBitsStored?: number; - elems?: Uint8Array; - }; - modeInfos?: any[]; - }; - }; - sequence?: string | number | import("long").Long; - }[]; - fee?: { - amount?: { - denom?: string; - amount?: string; - }[]; - gasLimit?: string | number | import("long").Long; - payer?: string; - granter?: string; - }; - tip?: { - amount?: { - denom?: string; - amount?: string; - }[]; - tipper?: string; - }; - }; - signatures?: Uint8Array[]; - }; - txBytes?: Uint8Array; - }): _88.SimulateRequest; - }; - SimulateResponse: { - encode(message: _88.SimulateResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _88.SimulateResponse; - fromPartial(object: { - gasInfo?: { - gasWanted?: string | number | import("long").Long; - gasUsed?: string | number | import("long").Long; - }; - result?: { - data?: Uint8Array; - log?: string; - events?: { - type?: string; - attributes?: { - key?: Uint8Array; - value?: Uint8Array; - index?: boolean; - }[]; - }[]; - msgResponses?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - }; - }): _88.SimulateResponse; - }; - GetTxRequest: { - encode(message: _88.GetTxRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _88.GetTxRequest; - fromPartial(object: { - hash?: string; - }): _88.GetTxRequest; - }; - GetTxResponse: { - encode(message: _88.GetTxResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _88.GetTxResponse; - fromPartial(object: { - tx?: { - body?: { - messages?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - memo?: string; - timeoutHeight?: string | number | import("long").Long; - extensionOptions?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - nonCriticalExtensionOptions?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - }; - authInfo?: { - signerInfos?: { - publicKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - modeInfo?: { - single?: { - mode?: _87.SignMode; - }; - multi?: { - bitarray?: { - extraBitsStored?: number; - elems?: Uint8Array; - }; - modeInfos?: any[]; - }; - }; - sequence?: string | number | import("long").Long; - }[]; - fee?: { - amount?: { - denom?: string; - amount?: string; - }[]; - gasLimit?: string | number | import("long").Long; - payer?: string; - granter?: string; - }; - tip?: { - amount?: { - denom?: string; - amount?: string; - }[]; - tipper?: string; - }; - }; - signatures?: Uint8Array[]; - }; - txResponse?: { - height?: string | number | import("long").Long; - txhash?: string; - codespace?: string; - code?: number; - data?: string; - rawLog?: string; - logs?: { - msgIndex?: number; - log?: string; - events?: { - type?: string; - attributes?: { - key?: string; - value?: string; - }[]; - }[]; - }[]; - info?: string; - gasWanted?: string | number | import("long").Long; - gasUsed?: string | number | import("long").Long; - tx?: { - typeUrl?: string; - value?: Uint8Array; - }; - timestamp?: string; - events?: { - type?: string; - attributes?: { - key?: Uint8Array; - value?: Uint8Array; - index?: boolean; - }[]; - }[]; - }; - }): _88.GetTxResponse; - }; - GetBlockWithTxsRequest: { - encode(message: _88.GetBlockWithTxsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _88.GetBlockWithTxsRequest; - fromPartial(object: { - height?: string | number | import("long").Long; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _88.GetBlockWithTxsRequest; - }; - GetBlockWithTxsResponse: { - encode(message: _88.GetBlockWithTxsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _88.GetBlockWithTxsResponse; - fromPartial(object: { - txs?: { - body?: { - messages?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - memo?: string; - timeoutHeight?: string | number | import("long").Long; - extensionOptions?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - nonCriticalExtensionOptions?: { - typeUrl?: string; - value?: Uint8Array; - }[]; - }; - authInfo?: { - signerInfos?: { - publicKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - modeInfo?: { - single?: { - mode?: _87.SignMode; - }; - multi?: { - bitarray?: { - extraBitsStored?: number; - elems?: Uint8Array; - }; - modeInfos?: any[]; - }; - }; - sequence?: string | number | import("long").Long; - }[]; - fee?: { - amount?: { - denom?: string; - amount?: string; - }[]; - gasLimit?: string | number | import("long").Long; - payer?: string; - granter?: string; - }; - tip?: { - amount?: { - denom?: string; - amount?: string; - }[]; - tipper?: string; - }; - }; - signatures?: Uint8Array[]; - }[]; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - block?: { - header?: { - version?: { - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }; - chainId?: string; - height?: string | number | import("long").Long; - time?: Date; - lastBlockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - lastCommitHash?: Uint8Array; - dataHash?: Uint8Array; - validatorsHash?: Uint8Array; - nextValidatorsHash?: Uint8Array; - consensusHash?: Uint8Array; - appHash?: Uint8Array; - lastResultsHash?: Uint8Array; - evidenceHash?: Uint8Array; - proposerAddress?: Uint8Array; - }; - data?: { - txs?: Uint8Array[]; - }; - evidence?: { - evidence?: { - duplicateVoteEvidence?: { - voteA?: { - type?: import("../tendermint/types/types").SignedMsgType; - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - timestamp?: Date; - validatorAddress?: Uint8Array; - validatorIndex?: number; - signature?: Uint8Array; - }; - voteB?: { - type?: import("../tendermint/types/types").SignedMsgType; - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - timestamp?: Date; - validatorAddress?: Uint8Array; - validatorIndex?: number; - signature?: Uint8Array; - }; - totalVotingPower?: string | number | import("long").Long; - validatorPower?: string | number | import("long").Long; - timestamp?: Date; - }; - lightClientAttackEvidence?: { - conflictingBlock?: { - signedHeader?: { - header?: { - version?: { - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }; - chainId?: string; - height?: string | number | import("long").Long; - time?: Date; - lastBlockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - lastCommitHash?: Uint8Array; - dataHash?: Uint8Array; - validatorsHash?: Uint8Array; - nextValidatorsHash?: Uint8Array; - consensusHash?: Uint8Array; - appHash?: Uint8Array; - lastResultsHash?: Uint8Array; - evidenceHash?: Uint8Array; - proposerAddress?: Uint8Array; - }; - commit?: { - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - signatures?: { - blockIdFlag?: import("../tendermint/types/types").BlockIDFlag; - validatorAddress?: Uint8Array; - timestamp?: Date; - signature?: Uint8Array; - }[]; - }; - }; - validatorSet?: { - validators?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }[]; - proposer?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }; - totalVotingPower?: string | number | import("long").Long; - }; - }; - commonHeight?: string | number | import("long").Long; - byzantineValidators?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }[]; - totalVotingPower?: string | number | import("long").Long; - timestamp?: Date; - }; - }[]; - }; - lastCommit?: { - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - signatures?: { - blockIdFlag?: import("../tendermint/types/types").BlockIDFlag; - validatorAddress?: Uint8Array; - timestamp?: Date; - signature?: Uint8Array; - }[]; - }; - }; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _88.GetBlockWithTxsResponse; - }; - }; - } - namespace upgrade { - const v1beta1: { - MsgClientImpl: typeof _192.MsgClientImpl; - QueryClientImpl: typeof _179.QueryClientImpl; - createRpcQueryExtension: (base: import("@cosmjs/stargate").QueryClient) => { - currentPlan(request?: _90.QueryCurrentPlanRequest): Promise<_90.QueryCurrentPlanResponse>; - appliedPlan(request: _90.QueryAppliedPlanRequest): Promise<_90.QueryAppliedPlanResponse>; - upgradedConsensusState(request: _90.QueryUpgradedConsensusStateRequest): Promise<_90.QueryUpgradedConsensusStateResponse>; - moduleVersions(request: _90.QueryModuleVersionsRequest): Promise<_90.QueryModuleVersionsResponse>; - authority(request?: _90.QueryAuthorityRequest): Promise<_90.QueryAuthorityResponse>; - }; - LCDQueryClient: typeof _161.LCDQueryClient; - Plan: { - encode(message: _92.Plan, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _92.Plan; - fromPartial(object: { - name?: string; - time?: Date; - height?: string | number | import("long").Long; - info?: string; - upgradedClientState?: { - typeUrl?: string; - value?: Uint8Array; - }; - }): _92.Plan; - }; - SoftwareUpgradeProposal: { - encode(message: _92.SoftwareUpgradeProposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _92.SoftwareUpgradeProposal; - fromPartial(object: { - title?: string; - description?: string; - plan?: { - name?: string; - time?: Date; - height?: string | number | import("long").Long; - info?: string; - upgradedClientState?: { - typeUrl?: string; - value?: Uint8Array; - }; - }; - }): _92.SoftwareUpgradeProposal; - }; - CancelSoftwareUpgradeProposal: { - encode(message: _92.CancelSoftwareUpgradeProposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _92.CancelSoftwareUpgradeProposal; - fromPartial(object: { - title?: string; - description?: string; - }): _92.CancelSoftwareUpgradeProposal; - }; - ModuleVersion: { - encode(message: _92.ModuleVersion, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _92.ModuleVersion; - fromPartial(object: { - name?: string; - version?: string | number | import("long").Long; - }): _92.ModuleVersion; - }; - MsgSoftwareUpgrade: { - encode(message: _91.MsgSoftwareUpgrade, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _91.MsgSoftwareUpgrade; - fromPartial(object: { - authority?: string; - plan?: { - name?: string; - time?: Date; - height?: string | number | import("long").Long; - info?: string; - upgradedClientState?: { - typeUrl?: string; - value?: Uint8Array; - }; - }; - }): _91.MsgSoftwareUpgrade; - }; - MsgSoftwareUpgradeResponse: { - encode(_: _91.MsgSoftwareUpgradeResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _91.MsgSoftwareUpgradeResponse; - fromPartial(_: {}): _91.MsgSoftwareUpgradeResponse; - }; - MsgCancelUpgrade: { - encode(message: _91.MsgCancelUpgrade, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _91.MsgCancelUpgrade; - fromPartial(object: { - authority?: string; - }): _91.MsgCancelUpgrade; - }; - MsgCancelUpgradeResponse: { - encode(_: _91.MsgCancelUpgradeResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _91.MsgCancelUpgradeResponse; - fromPartial(_: {}): _91.MsgCancelUpgradeResponse; - }; - QueryCurrentPlanRequest: { - encode(_: _90.QueryCurrentPlanRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _90.QueryCurrentPlanRequest; - fromPartial(_: {}): _90.QueryCurrentPlanRequest; - }; - QueryCurrentPlanResponse: { - encode(message: _90.QueryCurrentPlanResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _90.QueryCurrentPlanResponse; - fromPartial(object: { - plan?: { - name?: string; - time?: Date; - height?: string | number | import("long").Long; - info?: string; - upgradedClientState?: { - typeUrl?: string; - value?: Uint8Array; - }; - }; - }): _90.QueryCurrentPlanResponse; - }; - QueryAppliedPlanRequest: { - encode(message: _90.QueryAppliedPlanRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _90.QueryAppliedPlanRequest; - fromPartial(object: { - name?: string; - }): _90.QueryAppliedPlanRequest; - }; - QueryAppliedPlanResponse: { - encode(message: _90.QueryAppliedPlanResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _90.QueryAppliedPlanResponse; - fromPartial(object: { - height?: string | number | import("long").Long; - }): _90.QueryAppliedPlanResponse; - }; - QueryUpgradedConsensusStateRequest: { - encode(message: _90.QueryUpgradedConsensusStateRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _90.QueryUpgradedConsensusStateRequest; - fromPartial(object: { - lastHeight?: string | number | import("long").Long; - }): _90.QueryUpgradedConsensusStateRequest; - }; - QueryUpgradedConsensusStateResponse: { - encode(message: _90.QueryUpgradedConsensusStateResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _90.QueryUpgradedConsensusStateResponse; - fromPartial(object: { - upgradedConsensusState?: Uint8Array; - }): _90.QueryUpgradedConsensusStateResponse; - }; - QueryModuleVersionsRequest: { - encode(message: _90.QueryModuleVersionsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _90.QueryModuleVersionsRequest; - fromPartial(object: { - moduleName?: string; - }): _90.QueryModuleVersionsRequest; - }; - QueryModuleVersionsResponse: { - encode(message: _90.QueryModuleVersionsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _90.QueryModuleVersionsResponse; - fromPartial(object: { - moduleVersions?: { - name?: string; - version?: string | number | import("long").Long; - }[]; - }): _90.QueryModuleVersionsResponse; - }; - QueryAuthorityRequest: { - encode(_: _90.QueryAuthorityRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _90.QueryAuthorityRequest; - fromPartial(_: {}): _90.QueryAuthorityRequest; - }; - QueryAuthorityResponse: { - encode(message: _90.QueryAuthorityResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _90.QueryAuthorityResponse; - fromPartial(object: { - address?: string; - }): _90.QueryAuthorityResponse; - }; - }; - } - namespace vesting { - const v1beta1: { - MsgClientImpl: typeof _193.MsgClientImpl; - BaseVestingAccount: { - encode(message: _94.BaseVestingAccount, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _94.BaseVestingAccount; - fromPartial(object: { - baseAccount?: { - address?: string; - pubKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - accountNumber?: string | number | import("long").Long; - sequence?: string | number | import("long").Long; - }; - originalVesting?: { - denom?: string; - amount?: string; - }[]; - delegatedFree?: { - denom?: string; - amount?: string; - }[]; - delegatedVesting?: { - denom?: string; - amount?: string; - }[]; - endTime?: string | number | import("long").Long; - }): _94.BaseVestingAccount; - }; - ContinuousVestingAccount: { - encode(message: _94.ContinuousVestingAccount, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _94.ContinuousVestingAccount; - fromPartial(object: { - baseVestingAccount?: { - baseAccount?: { - address?: string; - pubKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - accountNumber?: string | number | import("long").Long; - sequence?: string | number | import("long").Long; - }; - originalVesting?: { - denom?: string; - amount?: string; - }[]; - delegatedFree?: { - denom?: string; - amount?: string; - }[]; - delegatedVesting?: { - denom?: string; - amount?: string; - }[]; - endTime?: string | number | import("long").Long; - }; - startTime?: string | number | import("long").Long; - }): _94.ContinuousVestingAccount; - }; - DelayedVestingAccount: { - encode(message: _94.DelayedVestingAccount, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _94.DelayedVestingAccount; - fromPartial(object: { - baseVestingAccount?: { - baseAccount?: { - address?: string; - pubKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - accountNumber?: string | number | import("long").Long; - sequence?: string | number | import("long").Long; - }; - originalVesting?: { - denom?: string; - amount?: string; - }[]; - delegatedFree?: { - denom?: string; - amount?: string; - }[]; - delegatedVesting?: { - denom?: string; - amount?: string; - }[]; - endTime?: string | number | import("long").Long; - }; - }): _94.DelayedVestingAccount; - }; - Period: { - encode(message: _94.Period, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _94.Period; - fromPartial(object: { - length?: string | number | import("long").Long; - amount?: { - denom?: string; - amount?: string; - }[]; - }): _94.Period; - }; - PeriodicVestingAccount: { - encode(message: _94.PeriodicVestingAccount, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _94.PeriodicVestingAccount; - fromPartial(object: { - baseVestingAccount?: { - baseAccount?: { - address?: string; - pubKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - accountNumber?: string | number | import("long").Long; - sequence?: string | number | import("long").Long; - }; - originalVesting?: { - denom?: string; - amount?: string; - }[]; - delegatedFree?: { - denom?: string; - amount?: string; - }[]; - delegatedVesting?: { - denom?: string; - amount?: string; - }[]; - endTime?: string | number | import("long").Long; - }; - startTime?: string | number | import("long").Long; - vestingPeriods?: { - length?: string | number | import("long").Long; - amount?: { - denom?: string; - amount?: string; - }[]; - }[]; - }): _94.PeriodicVestingAccount; - }; - PermanentLockedAccount: { - encode(message: _94.PermanentLockedAccount, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _94.PermanentLockedAccount; - fromPartial(object: { - baseVestingAccount?: { - baseAccount?: { - address?: string; - pubKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - accountNumber?: string | number | import("long").Long; - sequence?: string | number | import("long").Long; - }; - originalVesting?: { - denom?: string; - amount?: string; - }[]; - delegatedFree?: { - denom?: string; - amount?: string; - }[]; - delegatedVesting?: { - denom?: string; - amount?: string; - }[]; - endTime?: string | number | import("long").Long; - }; - }): _94.PermanentLockedAccount; - }; - MsgCreateVestingAccount: { - encode(message: _93.MsgCreateVestingAccount, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _93.MsgCreateVestingAccount; - fromPartial(object: { - fromAddress?: string; - toAddress?: string; - amount?: { - denom?: string; - amount?: string; - }[]; - endTime?: string | number | import("long").Long; - delayed?: boolean; - }): _93.MsgCreateVestingAccount; - }; - MsgCreateVestingAccountResponse: { - encode(_: _93.MsgCreateVestingAccountResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _93.MsgCreateVestingAccountResponse; - fromPartial(_: {}): _93.MsgCreateVestingAccountResponse; - }; - MsgCreatePermanentLockedAccount: { - encode(message: _93.MsgCreatePermanentLockedAccount, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _93.MsgCreatePermanentLockedAccount; - fromPartial(object: { - fromAddress?: string; - toAddress?: string; - amount?: { - denom?: string; - amount?: string; - }[]; - }): _93.MsgCreatePermanentLockedAccount; - }; - MsgCreatePermanentLockedAccountResponse: { - encode(_: _93.MsgCreatePermanentLockedAccountResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _93.MsgCreatePermanentLockedAccountResponse; - fromPartial(_: {}): _93.MsgCreatePermanentLockedAccountResponse; - }; - MsgCreatePeriodicVestingAccount: { - encode(message: _93.MsgCreatePeriodicVestingAccount, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _93.MsgCreatePeriodicVestingAccount; - fromPartial(object: { - fromAddress?: string; - toAddress?: string; - startTime?: string | number | import("long").Long; - vestingPeriods?: { - length?: string | number | import("long").Long; - amount?: { - denom?: string; - amount?: string; - }[]; - }[]; - }): _93.MsgCreatePeriodicVestingAccount; - }; - MsgCreatePeriodicVestingAccountResponse: { - encode(_: _93.MsgCreatePeriodicVestingAccountResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _93.MsgCreatePeriodicVestingAccountResponse; - fromPartial(_: {}): _93.MsgCreatePeriodicVestingAccountResponse; - }; - }; - } - const ClientFactory: { - createRPCMsgClient: ({ rpc }: { - rpc: import("../helpers").Rpc; - }) => Promise<{ - cosmos: { - authz: { - v1beta1: _180.MsgClientImpl; - }; - bank: { - v1beta1: _181.MsgClientImpl; - }; - crisis: { - v1beta1: _182.MsgClientImpl; - }; - distribution: { - v1beta1: _183.MsgClientImpl; - }; - evidence: { - v1beta1: _184.MsgClientImpl; - }; - feegrant: { - v1beta1: _185.MsgClientImpl; - }; - gov: { - v1: _186.MsgClientImpl; - v1beta1: _187.MsgClientImpl; - }; - group: { - v1: _188.MsgClientImpl; - }; - nft: { - v1beta1: _189.MsgClientImpl; - }; - slashing: { - v1beta1: _190.MsgClientImpl; - }; - staking: { - v1beta1: _191.MsgClientImpl; - }; - upgrade: { - v1beta1: _192.MsgClientImpl; - }; - vesting: { - v1beta1: _193.MsgClientImpl; - }; - }; - }>; - createRPCQueryClient: ({ rpcEndpoint }: { - rpcEndpoint: string | import("@cosmjs/tendermint-rpc").HttpEndpoint; - }) => Promise<{ - cosmos: { - app: { - v1alpha1: { - config(request?: _5.QueryConfigRequest): Promise<_5.QueryConfigResponse>; - }; - }; - auth: { - v1beta1: { - accounts(request?: _8.QueryAccountsRequest): Promise<_8.QueryAccountsResponse>; - account(request: _8.QueryAccountRequest): Promise<_8.QueryAccountResponse>; - params(request?: _8.QueryParamsRequest): Promise<_8.QueryParamsResponse>; - moduleAccounts(request?: _8.QueryModuleAccountsRequest): Promise<_8.QueryModuleAccountsResponse>; - bech32Prefix(request?: _8.Bech32PrefixRequest): Promise<_8.Bech32PrefixResponse>; - addressBytesToString(request: _8.AddressBytesToStringRequest): Promise<_8.AddressBytesToStringResponse>; - addressStringToBytes(request: _8.AddressStringToBytesRequest): Promise<_8.AddressStringToBytesResponse>; - }; - }; - authz: { - v1beta1: { - grants(request: _12.QueryGrantsRequest): Promise<_12.QueryGrantsResponse>; - granterGrants(request: _12.QueryGranterGrantsRequest): Promise<_12.QueryGranterGrantsResponse>; - granteeGrants(request: _12.QueryGranteeGrantsRequest): Promise<_12.QueryGranteeGrantsResponse>; - }; - }; - bank: { - v1beta1: { - balance(request: _17.QueryBalanceRequest): Promise<_17.QueryBalanceResponse>; - allBalances(request: _17.QueryAllBalancesRequest): Promise<_17.QueryAllBalancesResponse>; - spendableBalances(request: _17.QuerySpendableBalancesRequest): Promise<_17.QuerySpendableBalancesResponse>; - totalSupply(request?: _17.QueryTotalSupplyRequest): Promise<_17.QueryTotalSupplyResponse>; - supplyOf(request: _17.QuerySupplyOfRequest): Promise<_17.QuerySupplyOfResponse>; - params(request?: _17.QueryParamsRequest): Promise<_17.QueryParamsResponse>; - denomMetadata(request: _17.QueryDenomMetadataRequest): Promise<_17.QueryDenomMetadataResponse>; - denomsMetadata(request?: _17.QueryDenomsMetadataRequest): Promise<_17.QueryDenomsMetadataResponse>; - denomOwners(request: _17.QueryDenomOwnersRequest): Promise<_17.QueryDenomOwnersResponse>; - }; - }; - base: { - tendermint: { - v1beta1: { - getNodeInfo(request?: _27.GetNodeInfoRequest): Promise<_27.GetNodeInfoResponse>; - getSyncing(request?: _27.GetSyncingRequest): Promise<_27.GetSyncingResponse>; - getLatestBlock(request?: _27.GetLatestBlockRequest): Promise<_27.GetLatestBlockResponse>; - getBlockByHeight(request: _27.GetBlockByHeightRequest): Promise<_27.GetBlockByHeightResponse>; - getLatestValidatorSet(request?: _27.GetLatestValidatorSetRequest): Promise<_27.GetLatestValidatorSetResponse>; - getValidatorSetByHeight(request: _27.GetValidatorSetByHeightRequest): Promise<_27.GetValidatorSetByHeightResponse>; - }; - }; - }; - distribution: { - v1beta1: { - params(request?: _41.QueryParamsRequest): Promise<_41.QueryParamsResponse>; - validatorOutstandingRewards(request: _41.QueryValidatorOutstandingRewardsRequest): Promise<_41.QueryValidatorOutstandingRewardsResponse>; - validatorCommission(request: _41.QueryValidatorCommissionRequest): Promise<_41.QueryValidatorCommissionResponse>; - validatorSlashes(request: _41.QueryValidatorSlashesRequest): Promise<_41.QueryValidatorSlashesResponse>; - delegationRewards(request: _41.QueryDelegationRewardsRequest): Promise<_41.QueryDelegationRewardsResponse>; - delegationTotalRewards(request: _41.QueryDelegationTotalRewardsRequest): Promise<_41.QueryDelegationTotalRewardsResponse>; - delegatorValidators(request: _41.QueryDelegatorValidatorsRequest): Promise<_41.QueryDelegatorValidatorsResponse>; - delegatorWithdrawAddress(request: _41.QueryDelegatorWithdrawAddressRequest): Promise<_41.QueryDelegatorWithdrawAddressResponse>; - communityPool(request?: _41.QueryCommunityPoolRequest): Promise<_41.QueryCommunityPoolResponse>; - }; - }; - evidence: { - v1beta1: { - evidence(request: _45.QueryEvidenceRequest): Promise<_45.QueryEvidenceResponse>; - allEvidence(request?: _45.QueryAllEvidenceRequest): Promise<_45.QueryAllEvidenceResponse>; - }; - }; - feegrant: { - v1beta1: { - allowance(request: _49.QueryAllowanceRequest): Promise<_49.QueryAllowanceResponse>; - allowances(request: _49.QueryAllowancesRequest): Promise<_49.QueryAllowancesResponse>; - allowancesByGranter(request: _49.QueryAllowancesByGranterRequest): Promise<_49.QueryAllowancesByGranterResponse>; - }; - }; - gov: { - v1: { - proposal(request: _54.QueryProposalRequest): Promise<_54.QueryProposalResponse>; - proposals(request: _54.QueryProposalsRequest): Promise<_54.QueryProposalsResponse>; - vote(request: _54.QueryVoteRequest): Promise<_54.QueryVoteResponse>; - votes(request: _54.QueryVotesRequest): Promise<_54.QueryVotesResponse>; - params(request: _54.QueryParamsRequest): Promise<_54.QueryParamsResponse>; - deposit(request: _54.QueryDepositRequest): Promise<_54.QueryDepositResponse>; - deposits(request: _54.QueryDepositsRequest): Promise<_54.QueryDepositsResponse>; - tallyResult(request: _54.QueryTallyResultRequest): Promise<_54.QueryTallyResultResponse>; - }; - v1beta1: { - proposal(request: _58.QueryProposalRequest): Promise<_58.QueryProposalResponse>; - proposals(request: _58.QueryProposalsRequest): Promise<_58.QueryProposalsResponse>; - vote(request: _58.QueryVoteRequest): Promise<_58.QueryVoteResponse>; - votes(request: _58.QueryVotesRequest): Promise<_58.QueryVotesResponse>; - params(request: _58.QueryParamsRequest): Promise<_58.QueryParamsResponse>; - deposit(request: _58.QueryDepositRequest): Promise<_58.QueryDepositResponse>; - deposits(request: _58.QueryDepositsRequest): Promise<_58.QueryDepositsResponse>; - tallyResult(request: _58.QueryTallyResultRequest): Promise<_58.QueryTallyResultResponse>; - }; - }; - group: { - v1: { - groupInfo(request: _62.QueryGroupInfoRequest): Promise<_62.QueryGroupInfoResponse>; - groupPolicyInfo(request: _62.QueryGroupPolicyInfoRequest): Promise<_62.QueryGroupPolicyInfoResponse>; - groupMembers(request: _62.QueryGroupMembersRequest): Promise<_62.QueryGroupMembersResponse>; - groupsByAdmin(request: _62.QueryGroupsByAdminRequest): Promise<_62.QueryGroupsByAdminResponse>; - groupPoliciesByGroup(request: _62.QueryGroupPoliciesByGroupRequest): Promise<_62.QueryGroupPoliciesByGroupResponse>; - groupPoliciesByAdmin(request: _62.QueryGroupPoliciesByAdminRequest): Promise<_62.QueryGroupPoliciesByAdminResponse>; - proposal(request: _62.QueryProposalRequest): Promise<_62.QueryProposalResponse>; - proposalsByGroupPolicy(request: _62.QueryProposalsByGroupPolicyRequest): Promise<_62.QueryProposalsByGroupPolicyResponse>; - voteByProposalVoter(request: _62.QueryVoteByProposalVoterRequest): Promise<_62.QueryVoteByProposalVoterResponse>; - votesByProposal(request: _62.QueryVotesByProposalRequest): Promise<_62.QueryVotesByProposalResponse>; - votesByVoter(request: _62.QueryVotesByVoterRequest): Promise<_62.QueryVotesByVoterResponse>; - groupsByMember(request: _62.QueryGroupsByMemberRequest): Promise<_62.QueryGroupsByMemberResponse>; - tallyResult(request: _62.QueryTallyResultRequest): Promise<_62.QueryTallyResultResponse>; - }; - }; - mint: { - v1beta1: { - params(request?: _67.QueryParamsRequest): Promise<_67.QueryParamsResponse>; - inflation(request?: _67.QueryInflationRequest): Promise<_67.QueryInflationResponse>; - annualProvisions(request?: _67.QueryAnnualProvisionsRequest): Promise<_67.QueryAnnualProvisionsResponse>; - }; - }; - nft: { - v1beta1: { - balance(request: _72.QueryBalanceRequest): Promise<_72.QueryBalanceResponse>; - owner(request: _72.QueryOwnerRequest): Promise<_72.QueryOwnerResponse>; - supply(request: _72.QuerySupplyRequest): Promise<_72.QuerySupplyResponse>; - nFTs(request: _72.QueryNFTsRequest): Promise<_72.QueryNFTsResponse>; - nFT(request: _72.QueryNFTRequest): Promise<_72.QueryNFTResponse>; - class(request: _72.QueryClassRequest): Promise<_72.QueryClassResponse>; - classes(request?: _72.QueryClassesRequest): Promise<_72.QueryClassesResponse>; - }; - }; - params: { - v1beta1: { - params(request: _77.QueryParamsRequest): Promise<_77.QueryParamsResponse>; - subspaces(request?: _77.QuerySubspacesRequest): Promise<_77.QuerySubspacesResponse>; - }; - }; - slashing: { - v1beta1: { - params(request?: _79.QueryParamsRequest): Promise<_79.QueryParamsResponse>; - signingInfo(request: _79.QuerySigningInfoRequest): Promise<_79.QuerySigningInfoResponse>; - signingInfos(request?: _79.QuerySigningInfosRequest): Promise<_79.QuerySigningInfosResponse>; - }; - }; - staking: { - v1beta1: { - validators(request: _84.QueryValidatorsRequest): Promise<_84.QueryValidatorsResponse>; - validator(request: _84.QueryValidatorRequest): Promise<_84.QueryValidatorResponse>; - validatorDelegations(request: _84.QueryValidatorDelegationsRequest): Promise<_84.QueryValidatorDelegationsResponse>; - validatorUnbondingDelegations(request: _84.QueryValidatorUnbondingDelegationsRequest): Promise<_84.QueryValidatorUnbondingDelegationsResponse>; - delegation(request: _84.QueryDelegationRequest): Promise<_84.QueryDelegationResponse>; - unbondingDelegation(request: _84.QueryUnbondingDelegationRequest): Promise<_84.QueryUnbondingDelegationResponse>; - delegatorDelegations(request: _84.QueryDelegatorDelegationsRequest): Promise<_84.QueryDelegatorDelegationsResponse>; - delegatorUnbondingDelegations(request: _84.QueryDelegatorUnbondingDelegationsRequest): Promise<_84.QueryDelegatorUnbondingDelegationsResponse>; - redelegations(request: _84.QueryRedelegationsRequest): Promise<_84.QueryRedelegationsResponse>; - delegatorValidators(request: _84.QueryDelegatorValidatorsRequest): Promise<_84.QueryDelegatorValidatorsResponse>; - delegatorValidator(request: _84.QueryDelegatorValidatorRequest): Promise<_84.QueryDelegatorValidatorResponse>; - historicalInfo(request: _84.QueryHistoricalInfoRequest): Promise<_84.QueryHistoricalInfoResponse>; - pool(request?: _84.QueryPoolRequest): Promise<_84.QueryPoolResponse>; - params(request?: _84.QueryParamsRequest): Promise<_84.QueryParamsResponse>; - }; - }; - tx: { - v1beta1: { - simulate(request: _88.SimulateRequest): Promise<_88.SimulateResponse>; - getTx(request: _88.GetTxRequest): Promise<_88.GetTxResponse>; - broadcastTx(request: _88.BroadcastTxRequest): Promise<_88.BroadcastTxResponse>; - getTxsEvent(request: _88.GetTxsEventRequest): Promise<_88.GetTxsEventResponse>; - getBlockWithTxs(request: _88.GetBlockWithTxsRequest): Promise<_88.GetBlockWithTxsResponse>; - }; - }; - upgrade: { - v1beta1: { - currentPlan(request?: _90.QueryCurrentPlanRequest): Promise<_90.QueryCurrentPlanResponse>; - appliedPlan(request: _90.QueryAppliedPlanRequest): Promise<_90.QueryAppliedPlanResponse>; - upgradedConsensusState(request: _90.QueryUpgradedConsensusStateRequest): Promise<_90.QueryUpgradedConsensusStateResponse>; - moduleVersions(request: _90.QueryModuleVersionsRequest): Promise<_90.QueryModuleVersionsResponse>; - authority(request?: _90.QueryAuthorityRequest): Promise<_90.QueryAuthorityResponse>; - }; - }; - }; - }>; - createLCDClient: ({ restEndpoint }: { - restEndpoint: string; - }) => Promise<{ - cosmos: { - auth: { - v1beta1: _145.LCDQueryClient; - }; - authz: { - v1beta1: _146.LCDQueryClient; - }; - bank: { - v1beta1: _147.LCDQueryClient; - }; - base: { - tendermint: { - v1beta1: _148.LCDQueryClient; - }; - }; - distribution: { - v1beta1: _149.LCDQueryClient; - }; - evidence: { - v1beta1: _150.LCDQueryClient; - }; - feegrant: { - v1beta1: _151.LCDQueryClient; - }; - gov: { - v1: _152.LCDQueryClient; - v1beta1: _153.LCDQueryClient; - }; - group: { - v1: _154.LCDQueryClient; - }; - mint: { - v1beta1: _155.LCDQueryClient; - }; - nft: { - v1beta1: _156.LCDQueryClient; - }; - params: { - v1beta1: _157.LCDQueryClient; - }; - slashing: { - v1beta1: _158.LCDQueryClient; - }; - staking: { - v1beta1: _159.LCDQueryClient; - }; - tx: { - v1beta1: _160.LCDQueryClient; - }; - upgrade: { - v1beta1: _161.LCDQueryClient; - }; - }; - }>; - }; -} diff --git a/packages/codegen/dist/cosmos/capability/v1beta1/capability.d.ts b/packages/codegen/dist/cosmos/capability/v1beta1/capability.d.ts deleted file mode 100644 index cef4338d..00000000 --- a/packages/codegen/dist/cosmos/capability/v1beta1/capability.d.ts +++ /dev/null @@ -1,62 +0,0 @@ -/// -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * Capability defines an implementation of an object capability. The index - * provided to a Capability must be globally unique. - */ -export interface Capability { - index: Long; -} -/** - * Capability defines an implementation of an object capability. The index - * provided to a Capability must be globally unique. - */ -export interface CapabilitySDKType { - index: Long; -} -/** - * Owner defines a single capability owner. An owner is defined by the name of - * capability and the module name. - */ -export interface Owner { - module: string; - name: string; -} -/** - * Owner defines a single capability owner. An owner is defined by the name of - * capability and the module name. - */ -export interface OwnerSDKType { - module: string; - name: string; -} -/** - * CapabilityOwners defines a set of owners of a single Capability. The set of - * owners must be unique. - */ -export interface CapabilityOwners { - owners: Owner[]; -} -/** - * CapabilityOwners defines a set of owners of a single Capability. The set of - * owners must be unique. - */ -export interface CapabilityOwnersSDKType { - owners: OwnerSDKType[]; -} -export declare const Capability: { - encode(message: Capability, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Capability; - fromPartial(object: DeepPartial): Capability; -}; -export declare const Owner: { - encode(message: Owner, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Owner; - fromPartial(object: DeepPartial): Owner; -}; -export declare const CapabilityOwners: { - encode(message: CapabilityOwners, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): CapabilityOwners; - fromPartial(object: DeepPartial): CapabilityOwners; -}; diff --git a/packages/codegen/dist/cosmos/capability/v1beta1/genesis.d.ts b/packages/codegen/dist/cosmos/capability/v1beta1/genesis.d.ts deleted file mode 100644 index 80ed85bb..00000000 --- a/packages/codegen/dist/cosmos/capability/v1beta1/genesis.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -/// -import { CapabilityOwners, CapabilityOwnersSDKType } from "./capability"; -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** GenesisOwners defines the capability owners with their corresponding index. */ -export interface GenesisOwners { - /** index is the index of the capability owner. */ - index: Long; - /** index_owners are the owners at the given index. */ - indexOwners?: CapabilityOwners; -} -/** GenesisOwners defines the capability owners with their corresponding index. */ -export interface GenesisOwnersSDKType { - index: Long; - index_owners?: CapabilityOwnersSDKType; -} -/** GenesisState defines the capability module's genesis state. */ -export interface GenesisState { - /** index is the capability global index. */ - index: Long; - /** - * owners represents a map from index to owners of the capability index - * index key is string to allow amino marshalling. - */ - owners: GenesisOwners[]; -} -/** GenesisState defines the capability module's genesis state. */ -export interface GenesisStateSDKType { - index: Long; - owners: GenesisOwnersSDKType[]; -} -export declare const GenesisOwners: { - encode(message: GenesisOwners, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisOwners; - fromPartial(object: DeepPartial): GenesisOwners; -}; -export declare const GenesisState: { - encode(message: GenesisState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState; - fromPartial(object: DeepPartial): GenesisState; -}; diff --git a/packages/codegen/dist/cosmos/crisis/v1beta1/genesis.d.ts b/packages/codegen/dist/cosmos/crisis/v1beta1/genesis.d.ts deleted file mode 100644 index fd05fea6..00000000 --- a/packages/codegen/dist/cosmos/crisis/v1beta1/genesis.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** GenesisState defines the crisis module's genesis state. */ -export interface GenesisState { - /** - * constant_fee is the fee used to verify the invariant in the crisis - * module. - */ - constantFee?: Coin; -} -/** GenesisState defines the crisis module's genesis state. */ -export interface GenesisStateSDKType { - constant_fee?: CoinSDKType; -} -export declare const GenesisState: { - encode(message: GenesisState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState; - fromPartial(object: DeepPartial): GenesisState; -}; diff --git a/packages/codegen/dist/cosmos/crisis/v1beta1/tx.d.ts b/packages/codegen/dist/cosmos/crisis/v1beta1/tx.d.ts deleted file mode 100644 index 5da6e1f5..00000000 --- a/packages/codegen/dist/cosmos/crisis/v1beta1/tx.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** MsgVerifyInvariant represents a message to verify a particular invariance. */ -export interface MsgVerifyInvariant { - sender: string; - invariantModuleName: string; - invariantRoute: string; -} -/** MsgVerifyInvariant represents a message to verify a particular invariance. */ -export interface MsgVerifyInvariantSDKType { - sender: string; - invariant_module_name: string; - invariant_route: string; -} -/** MsgVerifyInvariantResponse defines the Msg/VerifyInvariant response type. */ -export interface MsgVerifyInvariantResponse { -} -/** MsgVerifyInvariantResponse defines the Msg/VerifyInvariant response type. */ -export interface MsgVerifyInvariantResponseSDKType { -} -export declare const MsgVerifyInvariant: { - encode(message: MsgVerifyInvariant, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgVerifyInvariant; - fromPartial(object: DeepPartial): MsgVerifyInvariant; -}; -export declare const MsgVerifyInvariantResponse: { - encode(_: MsgVerifyInvariantResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgVerifyInvariantResponse; - fromPartial(_: DeepPartial): MsgVerifyInvariantResponse; -}; diff --git a/packages/codegen/dist/cosmos/crisis/v1beta1/tx.rpc.msg.d.ts b/packages/codegen/dist/cosmos/crisis/v1beta1/tx.rpc.msg.d.ts deleted file mode 100644 index bce7eac0..00000000 --- a/packages/codegen/dist/cosmos/crisis/v1beta1/tx.rpc.msg.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { MsgVerifyInvariant, MsgVerifyInvariantResponse } from "./tx"; -/** Msg defines the bank Msg service. */ -export interface Msg { - /** VerifyInvariant defines a method to verify a particular invariance. */ - verifyInvariant(request: MsgVerifyInvariant): Promise; -} -export declare class MsgClientImpl implements Msg { - private readonly rpc; - constructor(rpc: Rpc); - verifyInvariant(request: MsgVerifyInvariant): Promise; -} diff --git a/packages/codegen/dist/cosmos/crypto/ed25519/keys.d.ts b/packages/codegen/dist/cosmos/crypto/ed25519/keys.d.ts deleted file mode 100644 index e48fc896..00000000 --- a/packages/codegen/dist/cosmos/crypto/ed25519/keys.d.ts +++ /dev/null @@ -1,46 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * 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. - */ -export interface PubKey { - key: Uint8Array; -} -/** - * 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. - */ -export interface PubKeySDKType { - key: Uint8Array; -} -/** - * Deprecated: PrivKey defines a ed25519 private key. - * NOTE: ed25519 keys must not be used in SDK apps except in a tendermint validator context. - */ -export interface PrivKey { - key: Uint8Array; -} -/** - * Deprecated: PrivKey defines a ed25519 private key. - * NOTE: ed25519 keys must not be used in SDK apps except in a tendermint validator context. - */ -export interface PrivKeySDKType { - key: Uint8Array; -} -export declare const PubKey: { - encode(message: PubKey, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PubKey; - fromPartial(object: DeepPartial): PubKey; -}; -export declare const PrivKey: { - encode(message: PrivKey, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PrivKey; - fromPartial(object: DeepPartial): PrivKey; -}; diff --git a/packages/codegen/dist/cosmos/crypto/hd/v1/hd.d.ts b/packages/codegen/dist/cosmos/crypto/hd/v1/hd.d.ts deleted file mode 100644 index 14fbcc44..00000000 --- a/packages/codegen/dist/cosmos/crypto/hd/v1/hd.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** BIP44Params is used as path field in ledger item in Record. */ -export interface BIP44Params { - /** purpose is a constant set to 44' (or 0x8000002C) following the BIP43 recommendation */ - purpose: number; - /** coin_type is a constant that improves privacy */ - coinType: number; - /** account splits the key space into independent user identities */ - account: number; - /** - * change is a constant used for public derivation. Constant 0 is used for external chain and constant 1 for internal - * chain. - */ - change: boolean; - /** address_index is used as child index in BIP32 derivation */ - addressIndex: number; -} -/** BIP44Params is used as path field in ledger item in Record. */ -export interface BIP44ParamsSDKType { - purpose: number; - coin_type: number; - account: number; - change: boolean; - address_index: number; -} -export declare const BIP44Params: { - encode(message: BIP44Params, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): BIP44Params; - fromPartial(object: DeepPartial): BIP44Params; -}; diff --git a/packages/codegen/dist/cosmos/crypto/keyring/v1/record.d.ts b/packages/codegen/dist/cosmos/crypto/keyring/v1/record.d.ts deleted file mode 100644 index 3455a60e..00000000 --- a/packages/codegen/dist/cosmos/crypto/keyring/v1/record.d.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { Any, AnySDKType } from "../../../../google/protobuf/any"; -import { BIP44Params, BIP44ParamsSDKType } from "../../hd/v1/hd"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** Record is used for representing a key in the keyring. */ -export interface Record { - /** name represents a name of Record */ - name: string; - /** pub_key represents a public key in any format */ - pubKey?: Any; - /** local stores the public information about a locally stored key */ - local?: Record_Local; - /** ledger stores the public information about a Ledger key */ - ledger?: Record_Ledger; - /** Multi does not store any information. */ - multi?: Record_Multi; - /** Offline does not store any information. */ - offline?: Record_Offline; -} -/** Record is used for representing a key in the keyring. */ -export interface RecordSDKType { - name: string; - pub_key?: AnySDKType; - local?: Record_LocalSDKType; - ledger?: Record_LedgerSDKType; - multi?: Record_MultiSDKType; - offline?: Record_OfflineSDKType; -} -/** - * Item is a keyring item stored in a keyring backend. - * Local item - */ -export interface Record_Local { - privKey?: Any; - privKeyType: string; -} -/** - * Item is a keyring item stored in a keyring backend. - * Local item - */ -export interface Record_LocalSDKType { - priv_key?: AnySDKType; - priv_key_type: string; -} -/** Ledger item */ -export interface Record_Ledger { - path?: BIP44Params; -} -/** Ledger item */ -export interface Record_LedgerSDKType { - path?: BIP44ParamsSDKType; -} -/** Multi item */ -export interface Record_Multi { -} -/** Multi item */ -export interface Record_MultiSDKType { -} -/** Offline item */ -export interface Record_Offline { -} -/** Offline item */ -export interface Record_OfflineSDKType { -} -export declare const Record: { - encode(message: Record, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Record; - fromPartial(object: DeepPartial): Record; -}; -export declare const Record_Local: { - encode(message: Record_Local, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Record_Local; - fromPartial(object: DeepPartial): Record_Local; -}; -export declare const Record_Ledger: { - encode(message: Record_Ledger, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Record_Ledger; - fromPartial(object: DeepPartial): Record_Ledger; -}; -export declare const Record_Multi: { - encode(_: Record_Multi, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Record_Multi; - fromPartial(_: DeepPartial): Record_Multi; -}; -export declare const Record_Offline: { - encode(_: Record_Offline, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Record_Offline; - fromPartial(_: DeepPartial): Record_Offline; -}; diff --git a/packages/codegen/dist/cosmos/crypto/multisig/keys.d.ts b/packages/codegen/dist/cosmos/crypto/multisig/keys.d.ts deleted file mode 100644 index e1ee8b57..00000000 --- a/packages/codegen/dist/cosmos/crypto/multisig/keys.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * LegacyAminoPubKey specifies a public key type - * which nests multiple public keys and a threshold, - * it uses legacy amino address rules. - */ -export interface LegacyAminoPubKey { - threshold: number; - publicKeys: Any[]; -} -/** - * LegacyAminoPubKey specifies a public key type - * which nests multiple public keys and a threshold, - * it uses legacy amino address rules. - */ -export interface LegacyAminoPubKeySDKType { - threshold: number; - public_keys: AnySDKType[]; -} -export declare const LegacyAminoPubKey: { - encode(message: LegacyAminoPubKey, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): LegacyAminoPubKey; - fromPartial(object: DeepPartial): LegacyAminoPubKey; -}; diff --git a/packages/codegen/dist/cosmos/crypto/multisig/v1beta1/multisig.d.ts b/packages/codegen/dist/cosmos/crypto/multisig/v1beta1/multisig.d.ts deleted file mode 100644 index db981e96..00000000 --- a/packages/codegen/dist/cosmos/crypto/multisig/v1beta1/multisig.d.ts +++ /dev/null @@ -1,48 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** - * 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. - */ -export interface MultiSignature { - signatures: Uint8Array[]; -} -/** - * 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. - */ -export interface MultiSignatureSDKType { - signatures: Uint8Array[]; -} -/** - * 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. - */ -export interface CompactBitArray { - extraBitsStored: number; - elems: Uint8Array; -} -/** - * 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. - */ -export interface CompactBitArraySDKType { - extra_bits_stored: number; - elems: Uint8Array; -} -export declare const MultiSignature: { - encode(message: MultiSignature, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MultiSignature; - fromPartial(object: DeepPartial): MultiSignature; -}; -export declare const CompactBitArray: { - encode(message: CompactBitArray, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): CompactBitArray; - fromPartial(object: DeepPartial): CompactBitArray; -}; diff --git a/packages/codegen/dist/cosmos/crypto/secp256k1/keys.d.ts b/packages/codegen/dist/cosmos/crypto/secp256k1/keys.d.ts deleted file mode 100644 index 3d87be5a..00000000 --- a/packages/codegen/dist/cosmos/crypto/secp256k1/keys.d.ts +++ /dev/null @@ -1,40 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * 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. - */ -export interface PubKey { - key: Uint8Array; -} -/** - * 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. - */ -export interface PubKeySDKType { - key: Uint8Array; -} -/** PrivKey defines a secp256k1 private key. */ -export interface PrivKey { - key: Uint8Array; -} -/** PrivKey defines a secp256k1 private key. */ -export interface PrivKeySDKType { - key: Uint8Array; -} -export declare const PubKey: { - encode(message: PubKey, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PubKey; - fromPartial(object: DeepPartial): PubKey; -}; -export declare const PrivKey: { - encode(message: PrivKey, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PrivKey; - fromPartial(object: DeepPartial): PrivKey; -}; diff --git a/packages/codegen/dist/cosmos/crypto/secp256r1/keys.d.ts b/packages/codegen/dist/cosmos/crypto/secp256r1/keys.d.ts deleted file mode 100644 index 9a482187..00000000 --- a/packages/codegen/dist/cosmos/crypto/secp256r1/keys.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** PubKey defines a secp256r1 ECDSA public key. */ -export interface 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 - */ - key: Uint8Array; -} -/** PubKey defines a secp256r1 ECDSA public key. */ -export interface PubKeySDKType { - key: Uint8Array; -} -/** PrivKey defines a secp256r1 ECDSA private key. */ -export interface PrivKey { - /** secret number serialized using big-endian encoding */ - secret: Uint8Array; -} -/** PrivKey defines a secp256r1 ECDSA private key. */ -export interface PrivKeySDKType { - secret: Uint8Array; -} -export declare const PubKey: { - encode(message: PubKey, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PubKey; - fromPartial(object: DeepPartial): PubKey; -}; -export declare const PrivKey: { - encode(message: PrivKey, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PrivKey; - fromPartial(object: DeepPartial): PrivKey; -}; diff --git a/packages/codegen/dist/cosmos/distribution/v1beta1/distribution.d.ts b/packages/codegen/dist/cosmos/distribution/v1beta1/distribution.d.ts deleted file mode 100644 index b663d6cd..00000000 --- a/packages/codegen/dist/cosmos/distribution/v1beta1/distribution.d.ts +++ /dev/null @@ -1,282 +0,0 @@ -/// -import { DecCoin, DecCoinSDKType, Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** Params defines the set of params for the distribution module. */ -export interface Params { - communityTax: string; - baseProposerReward: string; - bonusProposerReward: string; - withdrawAddrEnabled: boolean; -} -/** Params defines the set of params for the distribution module. */ -export interface ParamsSDKType { - community_tax: string; - base_proposer_reward: string; - bonus_proposer_reward: string; - withdraw_addr_enabled: boolean; -} -/** - * 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 - */ -export interface ValidatorHistoricalRewards { - cumulativeRewardRatio: DecCoin[]; - referenceCount: number; -} -/** - * 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 - */ -export interface ValidatorHistoricalRewardsSDKType { - cumulative_reward_ratio: DecCoinSDKType[]; - reference_count: number; -} -/** - * 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. - */ -export interface ValidatorCurrentRewards { - rewards: DecCoin[]; - period: Long; -} -/** - * 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. - */ -export interface ValidatorCurrentRewardsSDKType { - rewards: DecCoinSDKType[]; - period: Long; -} -/** - * ValidatorAccumulatedCommission represents accumulated commission - * for a validator kept as a running counter, can be withdrawn at any time. - */ -export interface ValidatorAccumulatedCommission { - commission: DecCoin[]; -} -/** - * ValidatorAccumulatedCommission represents accumulated commission - * for a validator kept as a running counter, can be withdrawn at any time. - */ -export interface ValidatorAccumulatedCommissionSDKType { - commission: DecCoinSDKType[]; -} -/** - * ValidatorOutstandingRewards represents outstanding (un-withdrawn) rewards - * for a validator inexpensive to track, allows simple sanity checks. - */ -export interface ValidatorOutstandingRewards { - rewards: DecCoin[]; -} -/** - * ValidatorOutstandingRewards represents outstanding (un-withdrawn) rewards - * for a validator inexpensive to track, allows simple sanity checks. - */ -export interface ValidatorOutstandingRewardsSDKType { - rewards: DecCoinSDKType[]; -} -/** - * 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. - */ -export interface ValidatorSlashEvent { - validatorPeriod: Long; - fraction: string; -} -/** - * 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. - */ -export interface ValidatorSlashEventSDKType { - validator_period: Long; - fraction: string; -} -/** ValidatorSlashEvents is a collection of ValidatorSlashEvent messages. */ -export interface ValidatorSlashEvents { - validatorSlashEvents: ValidatorSlashEvent[]; -} -/** ValidatorSlashEvents is a collection of ValidatorSlashEvent messages. */ -export interface ValidatorSlashEventsSDKType { - validator_slash_events: ValidatorSlashEventSDKType[]; -} -/** FeePool is the global fee pool for distribution. */ -export interface FeePool { - communityPool: DecCoin[]; -} -/** FeePool is the global fee pool for distribution. */ -export interface FeePoolSDKType { - community_pool: DecCoinSDKType[]; -} -/** - * CommunityPoolSpendProposal details a proposal for use of community funds, - * together with how many coins are proposed to be spent, and to which - * recipient account. - */ -export interface CommunityPoolSpendProposal { - title: string; - description: string; - recipient: string; - amount: Coin[]; -} -/** - * CommunityPoolSpendProposal details a proposal for use of community funds, - * together with how many coins are proposed to be spent, and to which - * recipient account. - */ -export interface CommunityPoolSpendProposalSDKType { - title: string; - description: string; - recipient: string; - amount: CoinSDKType[]; -} -/** - * 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. - */ -export interface DelegatorStartingInfo { - previousPeriod: Long; - stake: string; - height: Long; -} -/** - * 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. - */ -export interface DelegatorStartingInfoSDKType { - previous_period: Long; - stake: string; - height: Long; -} -/** - * DelegationDelegatorReward represents the properties - * of a delegator's delegation reward. - */ -export interface DelegationDelegatorReward { - validatorAddress: string; - reward: DecCoin[]; -} -/** - * DelegationDelegatorReward represents the properties - * of a delegator's delegation reward. - */ -export interface DelegationDelegatorRewardSDKType { - validator_address: string; - reward: DecCoinSDKType[]; -} -/** - * CommunityPoolSpendProposalWithDeposit defines a CommunityPoolSpendProposal - * with a deposit - */ -export interface CommunityPoolSpendProposalWithDeposit { - title: string; - description: string; - recipient: string; - amount: string; - deposit: string; -} -/** - * CommunityPoolSpendProposalWithDeposit defines a CommunityPoolSpendProposal - * with a deposit - */ -export interface CommunityPoolSpendProposalWithDepositSDKType { - title: string; - description: string; - recipient: string; - amount: string; - deposit: string; -} -export declare const Params: { - encode(message: Params, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Params; - fromPartial(object: DeepPartial): Params; -}; -export declare const ValidatorHistoricalRewards: { - encode(message: ValidatorHistoricalRewards, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorHistoricalRewards; - fromPartial(object: DeepPartial): ValidatorHistoricalRewards; -}; -export declare const ValidatorCurrentRewards: { - encode(message: ValidatorCurrentRewards, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorCurrentRewards; - fromPartial(object: DeepPartial): ValidatorCurrentRewards; -}; -export declare const ValidatorAccumulatedCommission: { - encode(message: ValidatorAccumulatedCommission, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorAccumulatedCommission; - fromPartial(object: DeepPartial): ValidatorAccumulatedCommission; -}; -export declare const ValidatorOutstandingRewards: { - encode(message: ValidatorOutstandingRewards, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorOutstandingRewards; - fromPartial(object: DeepPartial): ValidatorOutstandingRewards; -}; -export declare const ValidatorSlashEvent: { - encode(message: ValidatorSlashEvent, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorSlashEvent; - fromPartial(object: DeepPartial): ValidatorSlashEvent; -}; -export declare const ValidatorSlashEvents: { - encode(message: ValidatorSlashEvents, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorSlashEvents; - fromPartial(object: DeepPartial): ValidatorSlashEvents; -}; -export declare const FeePool: { - encode(message: FeePool, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): FeePool; - fromPartial(object: DeepPartial): FeePool; -}; -export declare const CommunityPoolSpendProposal: { - encode(message: CommunityPoolSpendProposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): CommunityPoolSpendProposal; - fromPartial(object: DeepPartial): CommunityPoolSpendProposal; -}; -export declare const DelegatorStartingInfo: { - encode(message: DelegatorStartingInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): DelegatorStartingInfo; - fromPartial(object: DeepPartial): DelegatorStartingInfo; -}; -export declare const DelegationDelegatorReward: { - encode(message: DelegationDelegatorReward, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): DelegationDelegatorReward; - fromPartial(object: DeepPartial): DelegationDelegatorReward; -}; -export declare const CommunityPoolSpendProposalWithDeposit: { - encode(message: CommunityPoolSpendProposalWithDeposit, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): CommunityPoolSpendProposalWithDeposit; - fromPartial(object: DeepPartial): CommunityPoolSpendProposalWithDeposit; -}; diff --git a/packages/codegen/dist/cosmos/distribution/v1beta1/genesis.d.ts b/packages/codegen/dist/cosmos/distribution/v1beta1/genesis.d.ts deleted file mode 100644 index 1eb2cf0b..00000000 --- a/packages/codegen/dist/cosmos/distribution/v1beta1/genesis.d.ts +++ /dev/null @@ -1,197 +0,0 @@ -/// -import { DecCoin, DecCoinSDKType } from "../../base/v1beta1/coin"; -import { ValidatorAccumulatedCommission, ValidatorAccumulatedCommissionSDKType, ValidatorHistoricalRewards, ValidatorHistoricalRewardsSDKType, ValidatorCurrentRewards, ValidatorCurrentRewardsSDKType, DelegatorStartingInfo, DelegatorStartingInfoSDKType, ValidatorSlashEvent, ValidatorSlashEventSDKType, Params, ParamsSDKType, FeePool, FeePoolSDKType } from "./distribution"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** - * 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. - */ -export interface DelegatorWithdrawInfo { - /** delegator_address is the address of the delegator. */ - delegatorAddress: string; - /** withdraw_address is the address to withdraw the delegation rewards to. */ - withdrawAddress: string; -} -/** - * 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. - */ -export interface DelegatorWithdrawInfoSDKType { - delegator_address: string; - withdraw_address: string; -} -/** ValidatorOutstandingRewardsRecord is used for import/export via genesis json. */ -export interface ValidatorOutstandingRewardsRecord { - /** validator_address is the address of the validator. */ - validatorAddress: string; - /** outstanding_rewards represents the oustanding rewards of a validator. */ - outstandingRewards: DecCoin[]; -} -/** ValidatorOutstandingRewardsRecord is used for import/export via genesis json. */ -export interface ValidatorOutstandingRewardsRecordSDKType { - validator_address: string; - outstanding_rewards: DecCoinSDKType[]; -} -/** - * ValidatorAccumulatedCommissionRecord is used for import / export via genesis - * json. - */ -export interface ValidatorAccumulatedCommissionRecord { - /** validator_address is the address of the validator. */ - validatorAddress: string; - /** accumulated is the accumulated commission of a validator. */ - accumulated?: ValidatorAccumulatedCommission; -} -/** - * ValidatorAccumulatedCommissionRecord is used for import / export via genesis - * json. - */ -export interface ValidatorAccumulatedCommissionRecordSDKType { - validator_address: string; - accumulated?: ValidatorAccumulatedCommissionSDKType; -} -/** - * ValidatorHistoricalRewardsRecord is used for import / export via genesis - * json. - */ -export interface ValidatorHistoricalRewardsRecord { - /** validator_address is the address of the validator. */ - validatorAddress: string; - /** period defines the period the historical rewards apply to. */ - period: Long; - /** rewards defines the historical rewards of a validator. */ - rewards?: ValidatorHistoricalRewards; -} -/** - * ValidatorHistoricalRewardsRecord is used for import / export via genesis - * json. - */ -export interface ValidatorHistoricalRewardsRecordSDKType { - validator_address: string; - period: Long; - rewards?: ValidatorHistoricalRewardsSDKType; -} -/** ValidatorCurrentRewardsRecord is used for import / export via genesis json. */ -export interface ValidatorCurrentRewardsRecord { - /** validator_address is the address of the validator. */ - validatorAddress: string; - /** rewards defines the current rewards of a validator. */ - rewards?: ValidatorCurrentRewards; -} -/** ValidatorCurrentRewardsRecord is used for import / export via genesis json. */ -export interface ValidatorCurrentRewardsRecordSDKType { - validator_address: string; - rewards?: ValidatorCurrentRewardsSDKType; -} -/** DelegatorStartingInfoRecord used for import / export via genesis json. */ -export interface DelegatorStartingInfoRecord { - /** delegator_address is the address of the delegator. */ - delegatorAddress: string; - /** validator_address is the address of the validator. */ - validatorAddress: string; - /** starting_info defines the starting info of a delegator. */ - startingInfo?: DelegatorStartingInfo; -} -/** DelegatorStartingInfoRecord used for import / export via genesis json. */ -export interface DelegatorStartingInfoRecordSDKType { - delegator_address: string; - validator_address: string; - starting_info?: DelegatorStartingInfoSDKType; -} -/** ValidatorSlashEventRecord is used for import / export via genesis json. */ -export interface ValidatorSlashEventRecord { - /** validator_address is the address of the validator. */ - validatorAddress: string; - /** height defines the block height at which the slash event occured. */ - height: Long; - /** period is the period of the slash event. */ - period: Long; - /** validator_slash_event describes the slash event. */ - validatorSlashEvent?: ValidatorSlashEvent; -} -/** ValidatorSlashEventRecord is used for import / export via genesis json. */ -export interface ValidatorSlashEventRecordSDKType { - validator_address: string; - height: Long; - period: Long; - validator_slash_event?: ValidatorSlashEventSDKType; -} -/** GenesisState defines the distribution module's genesis state. */ -export interface GenesisState { - /** params defines all the paramaters of the module. */ - params?: Params; - /** fee_pool defines the fee pool at genesis. */ - feePool?: FeePool; - /** fee_pool defines the delegator withdraw infos at genesis. */ - delegatorWithdrawInfos: DelegatorWithdrawInfo[]; - /** fee_pool defines the previous proposer at genesis. */ - previousProposer: string; - /** fee_pool defines the outstanding rewards of all validators at genesis. */ - outstandingRewards: ValidatorOutstandingRewardsRecord[]; - /** fee_pool defines the accumulated commisions of all validators at genesis. */ - validatorAccumulatedCommissions: ValidatorAccumulatedCommissionRecord[]; - /** fee_pool defines the historical rewards of all validators at genesis. */ - validatorHistoricalRewards: ValidatorHistoricalRewardsRecord[]; - /** fee_pool defines the current rewards of all validators at genesis. */ - validatorCurrentRewards: ValidatorCurrentRewardsRecord[]; - /** fee_pool defines the delegator starting infos at genesis. */ - delegatorStartingInfos: DelegatorStartingInfoRecord[]; - /** fee_pool defines the validator slash events at genesis. */ - validatorSlashEvents: ValidatorSlashEventRecord[]; -} -/** GenesisState defines the distribution module's genesis state. */ -export interface GenesisStateSDKType { - params?: ParamsSDKType; - fee_pool?: FeePoolSDKType; - delegator_withdraw_infos: DelegatorWithdrawInfoSDKType[]; - previous_proposer: string; - outstanding_rewards: ValidatorOutstandingRewardsRecordSDKType[]; - validator_accumulated_commissions: ValidatorAccumulatedCommissionRecordSDKType[]; - validator_historical_rewards: ValidatorHistoricalRewardsRecordSDKType[]; - validator_current_rewards: ValidatorCurrentRewardsRecordSDKType[]; - delegator_starting_infos: DelegatorStartingInfoRecordSDKType[]; - validator_slash_events: ValidatorSlashEventRecordSDKType[]; -} -export declare const DelegatorWithdrawInfo: { - encode(message: DelegatorWithdrawInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): DelegatorWithdrawInfo; - fromPartial(object: DeepPartial): DelegatorWithdrawInfo; -}; -export declare const ValidatorOutstandingRewardsRecord: { - encode(message: ValidatorOutstandingRewardsRecord, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorOutstandingRewardsRecord; - fromPartial(object: DeepPartial): ValidatorOutstandingRewardsRecord; -}; -export declare const ValidatorAccumulatedCommissionRecord: { - encode(message: ValidatorAccumulatedCommissionRecord, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorAccumulatedCommissionRecord; - fromPartial(object: DeepPartial): ValidatorAccumulatedCommissionRecord; -}; -export declare const ValidatorHistoricalRewardsRecord: { - encode(message: ValidatorHistoricalRewardsRecord, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorHistoricalRewardsRecord; - fromPartial(object: DeepPartial): ValidatorHistoricalRewardsRecord; -}; -export declare const ValidatorCurrentRewardsRecord: { - encode(message: ValidatorCurrentRewardsRecord, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorCurrentRewardsRecord; - fromPartial(object: DeepPartial): ValidatorCurrentRewardsRecord; -}; -export declare const DelegatorStartingInfoRecord: { - encode(message: DelegatorStartingInfoRecord, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): DelegatorStartingInfoRecord; - fromPartial(object: DeepPartial): DelegatorStartingInfoRecord; -}; -export declare const ValidatorSlashEventRecord: { - encode(message: ValidatorSlashEventRecord, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorSlashEventRecord; - fromPartial(object: DeepPartial): ValidatorSlashEventRecord; -}; -export declare const GenesisState: { - encode(message: GenesisState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState; - fromPartial(object: DeepPartial): GenesisState; -}; diff --git a/packages/codegen/dist/cosmos/distribution/v1beta1/query.d.ts b/packages/codegen/dist/cosmos/distribution/v1beta1/query.d.ts deleted file mode 100644 index ea20f636..00000000 --- a/packages/codegen/dist/cosmos/distribution/v1beta1/query.d.ts +++ /dev/null @@ -1,365 +0,0 @@ -/// -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { Params, ParamsSDKType, ValidatorOutstandingRewards, ValidatorOutstandingRewardsSDKType, ValidatorAccumulatedCommission, ValidatorAccumulatedCommissionSDKType, ValidatorSlashEvent, ValidatorSlashEventSDKType, DelegationDelegatorReward, DelegationDelegatorRewardSDKType } from "./distribution"; -import { DecCoin, DecCoinSDKType } from "../../base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ -export interface QueryParamsRequest { -} -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ -export interface QueryParamsRequestSDKType { -} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ -export interface QueryParamsResponse { - /** params defines the parameters of the module. */ - params?: Params; -} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ -export interface QueryParamsResponseSDKType { - params?: ParamsSDKType; -} -/** - * QueryValidatorOutstandingRewardsRequest is the request type for the - * Query/ValidatorOutstandingRewards RPC method. - */ -export interface QueryValidatorOutstandingRewardsRequest { - /** validator_address defines the validator address to query for. */ - validatorAddress: string; -} -/** - * QueryValidatorOutstandingRewardsRequest is the request type for the - * Query/ValidatorOutstandingRewards RPC method. - */ -export interface QueryValidatorOutstandingRewardsRequestSDKType { - validator_address: string; -} -/** - * QueryValidatorOutstandingRewardsResponse is the response type for the - * Query/ValidatorOutstandingRewards RPC method. - */ -export interface QueryValidatorOutstandingRewardsResponse { - rewards?: ValidatorOutstandingRewards; -} -/** - * QueryValidatorOutstandingRewardsResponse is the response type for the - * Query/ValidatorOutstandingRewards RPC method. - */ -export interface QueryValidatorOutstandingRewardsResponseSDKType { - rewards?: ValidatorOutstandingRewardsSDKType; -} -/** - * QueryValidatorCommissionRequest is the request type for the - * Query/ValidatorCommission RPC method - */ -export interface QueryValidatorCommissionRequest { - /** validator_address defines the validator address to query for. */ - validatorAddress: string; -} -/** - * QueryValidatorCommissionRequest is the request type for the - * Query/ValidatorCommission RPC method - */ -export interface QueryValidatorCommissionRequestSDKType { - validator_address: string; -} -/** - * QueryValidatorCommissionResponse is the response type for the - * Query/ValidatorCommission RPC method - */ -export interface QueryValidatorCommissionResponse { - /** commission defines the commision the validator received. */ - commission?: ValidatorAccumulatedCommission; -} -/** - * QueryValidatorCommissionResponse is the response type for the - * Query/ValidatorCommission RPC method - */ -export interface QueryValidatorCommissionResponseSDKType { - commission?: ValidatorAccumulatedCommissionSDKType; -} -/** - * QueryValidatorSlashesRequest is the request type for the - * Query/ValidatorSlashes RPC method - */ -export interface QueryValidatorSlashesRequest { - /** validator_address defines the validator address to query for. */ - validatorAddress: string; - /** starting_height defines the optional starting height to query the slashes. */ - startingHeight: Long; - /** starting_height defines the optional ending height to query the slashes. */ - endingHeight: Long; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** - * QueryValidatorSlashesRequest is the request type for the - * Query/ValidatorSlashes RPC method - */ -export interface QueryValidatorSlashesRequestSDKType { - validator_address: string; - starting_height: Long; - ending_height: Long; - pagination?: PageRequestSDKType; -} -/** - * QueryValidatorSlashesResponse is the response type for the - * Query/ValidatorSlashes RPC method. - */ -export interface QueryValidatorSlashesResponse { - /** slashes defines the slashes the validator received. */ - slashes: ValidatorSlashEvent[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** - * QueryValidatorSlashesResponse is the response type for the - * Query/ValidatorSlashes RPC method. - */ -export interface QueryValidatorSlashesResponseSDKType { - slashes: ValidatorSlashEventSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * QueryDelegationRewardsRequest is the request type for the - * Query/DelegationRewards RPC method. - */ -export interface QueryDelegationRewardsRequest { - /** delegator_address defines the delegator address to query for. */ - delegatorAddress: string; - /** validator_address defines the validator address to query for. */ - validatorAddress: string; -} -/** - * QueryDelegationRewardsRequest is the request type for the - * Query/DelegationRewards RPC method. - */ -export interface QueryDelegationRewardsRequestSDKType { - delegator_address: string; - validator_address: string; -} -/** - * QueryDelegationRewardsResponse is the response type for the - * Query/DelegationRewards RPC method. - */ -export interface QueryDelegationRewardsResponse { - /** rewards defines the rewards accrued by a delegation. */ - rewards: DecCoin[]; -} -/** - * QueryDelegationRewardsResponse is the response type for the - * Query/DelegationRewards RPC method. - */ -export interface QueryDelegationRewardsResponseSDKType { - rewards: DecCoinSDKType[]; -} -/** - * QueryDelegationTotalRewardsRequest is the request type for the - * Query/DelegationTotalRewards RPC method. - */ -export interface QueryDelegationTotalRewardsRequest { - /** delegator_address defines the delegator address to query for. */ - delegatorAddress: string; -} -/** - * QueryDelegationTotalRewardsRequest is the request type for the - * Query/DelegationTotalRewards RPC method. - */ -export interface QueryDelegationTotalRewardsRequestSDKType { - delegator_address: string; -} -/** - * QueryDelegationTotalRewardsResponse is the response type for the - * Query/DelegationTotalRewards RPC method. - */ -export interface QueryDelegationTotalRewardsResponse { - /** rewards defines all the rewards accrued by a delegator. */ - rewards: DelegationDelegatorReward[]; - /** total defines the sum of all the rewards. */ - total: DecCoin[]; -} -/** - * QueryDelegationTotalRewardsResponse is the response type for the - * Query/DelegationTotalRewards RPC method. - */ -export interface QueryDelegationTotalRewardsResponseSDKType { - rewards: DelegationDelegatorRewardSDKType[]; - total: DecCoinSDKType[]; -} -/** - * QueryDelegatorValidatorsRequest is the request type for the - * Query/DelegatorValidators RPC method. - */ -export interface QueryDelegatorValidatorsRequest { - /** delegator_address defines the delegator address to query for. */ - delegatorAddress: string; -} -/** - * QueryDelegatorValidatorsRequest is the request type for the - * Query/DelegatorValidators RPC method. - */ -export interface QueryDelegatorValidatorsRequestSDKType { - delegator_address: string; -} -/** - * QueryDelegatorValidatorsResponse is the response type for the - * Query/DelegatorValidators RPC method. - */ -export interface QueryDelegatorValidatorsResponse { - /** validators defines the validators a delegator is delegating for. */ - validators: string[]; -} -/** - * QueryDelegatorValidatorsResponse is the response type for the - * Query/DelegatorValidators RPC method. - */ -export interface QueryDelegatorValidatorsResponseSDKType { - validators: string[]; -} -/** - * QueryDelegatorWithdrawAddressRequest is the request type for the - * Query/DelegatorWithdrawAddress RPC method. - */ -export interface QueryDelegatorWithdrawAddressRequest { - /** delegator_address defines the delegator address to query for. */ - delegatorAddress: string; -} -/** - * QueryDelegatorWithdrawAddressRequest is the request type for the - * Query/DelegatorWithdrawAddress RPC method. - */ -export interface QueryDelegatorWithdrawAddressRequestSDKType { - delegator_address: string; -} -/** - * QueryDelegatorWithdrawAddressResponse is the response type for the - * Query/DelegatorWithdrawAddress RPC method. - */ -export interface QueryDelegatorWithdrawAddressResponse { - /** withdraw_address defines the delegator address to query for. */ - withdrawAddress: string; -} -/** - * QueryDelegatorWithdrawAddressResponse is the response type for the - * Query/DelegatorWithdrawAddress RPC method. - */ -export interface QueryDelegatorWithdrawAddressResponseSDKType { - withdraw_address: string; -} -/** - * QueryCommunityPoolRequest is the request type for the Query/CommunityPool RPC - * method. - */ -export interface QueryCommunityPoolRequest { -} -/** - * QueryCommunityPoolRequest is the request type for the Query/CommunityPool RPC - * method. - */ -export interface QueryCommunityPoolRequestSDKType { -} -/** - * QueryCommunityPoolResponse is the response type for the Query/CommunityPool - * RPC method. - */ -export interface QueryCommunityPoolResponse { - /** pool defines community pool's coins. */ - pool: DecCoin[]; -} -/** - * QueryCommunityPoolResponse is the response type for the Query/CommunityPool - * RPC method. - */ -export interface QueryCommunityPoolResponseSDKType { - pool: DecCoinSDKType[]; -} -export declare const QueryParamsRequest: { - encode(_: QueryParamsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest; - fromPartial(_: DeepPartial): QueryParamsRequest; -}; -export declare const QueryParamsResponse: { - encode(message: QueryParamsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse; - fromPartial(object: DeepPartial): QueryParamsResponse; -}; -export declare const QueryValidatorOutstandingRewardsRequest: { - encode(message: QueryValidatorOutstandingRewardsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorOutstandingRewardsRequest; - fromPartial(object: DeepPartial): QueryValidatorOutstandingRewardsRequest; -}; -export declare const QueryValidatorOutstandingRewardsResponse: { - encode(message: QueryValidatorOutstandingRewardsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorOutstandingRewardsResponse; - fromPartial(object: DeepPartial): QueryValidatorOutstandingRewardsResponse; -}; -export declare const QueryValidatorCommissionRequest: { - encode(message: QueryValidatorCommissionRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorCommissionRequest; - fromPartial(object: DeepPartial): QueryValidatorCommissionRequest; -}; -export declare const QueryValidatorCommissionResponse: { - encode(message: QueryValidatorCommissionResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorCommissionResponse; - fromPartial(object: DeepPartial): QueryValidatorCommissionResponse; -}; -export declare const QueryValidatorSlashesRequest: { - encode(message: QueryValidatorSlashesRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorSlashesRequest; - fromPartial(object: DeepPartial): QueryValidatorSlashesRequest; -}; -export declare const QueryValidatorSlashesResponse: { - encode(message: QueryValidatorSlashesResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorSlashesResponse; - fromPartial(object: DeepPartial): QueryValidatorSlashesResponse; -}; -export declare const QueryDelegationRewardsRequest: { - encode(message: QueryDelegationRewardsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegationRewardsRequest; - fromPartial(object: DeepPartial): QueryDelegationRewardsRequest; -}; -export declare const QueryDelegationRewardsResponse: { - encode(message: QueryDelegationRewardsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegationRewardsResponse; - fromPartial(object: DeepPartial): QueryDelegationRewardsResponse; -}; -export declare const QueryDelegationTotalRewardsRequest: { - encode(message: QueryDelegationTotalRewardsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegationTotalRewardsRequest; - fromPartial(object: DeepPartial): QueryDelegationTotalRewardsRequest; -}; -export declare const QueryDelegationTotalRewardsResponse: { - encode(message: QueryDelegationTotalRewardsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegationTotalRewardsResponse; - fromPartial(object: DeepPartial): QueryDelegationTotalRewardsResponse; -}; -export declare const QueryDelegatorValidatorsRequest: { - encode(message: QueryDelegatorValidatorsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegatorValidatorsRequest; - fromPartial(object: DeepPartial): QueryDelegatorValidatorsRequest; -}; -export declare const QueryDelegatorValidatorsResponse: { - encode(message: QueryDelegatorValidatorsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegatorValidatorsResponse; - fromPartial(object: DeepPartial): QueryDelegatorValidatorsResponse; -}; -export declare const QueryDelegatorWithdrawAddressRequest: { - encode(message: QueryDelegatorWithdrawAddressRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegatorWithdrawAddressRequest; - fromPartial(object: DeepPartial): QueryDelegatorWithdrawAddressRequest; -}; -export declare const QueryDelegatorWithdrawAddressResponse: { - encode(message: QueryDelegatorWithdrawAddressResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegatorWithdrawAddressResponse; - fromPartial(object: DeepPartial): QueryDelegatorWithdrawAddressResponse; -}; -export declare const QueryCommunityPoolRequest: { - encode(_: QueryCommunityPoolRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryCommunityPoolRequest; - fromPartial(_: DeepPartial): QueryCommunityPoolRequest; -}; -export declare const QueryCommunityPoolResponse: { - encode(message: QueryCommunityPoolResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryCommunityPoolResponse; - fromPartial(object: DeepPartial): QueryCommunityPoolResponse; -}; diff --git a/packages/codegen/dist/cosmos/distribution/v1beta1/query.lcd.d.ts b/packages/codegen/dist/cosmos/distribution/v1beta1/query.lcd.d.ts deleted file mode 100644 index 1271db0c..00000000 --- a/packages/codegen/dist/cosmos/distribution/v1beta1/query.lcd.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { QueryParamsRequest, QueryParamsResponseSDKType, QueryValidatorOutstandingRewardsRequest, QueryValidatorOutstandingRewardsResponseSDKType, QueryValidatorCommissionRequest, QueryValidatorCommissionResponseSDKType, QueryValidatorSlashesRequest, QueryValidatorSlashesResponseSDKType, QueryDelegationRewardsRequest, QueryDelegationRewardsResponseSDKType, QueryDelegationTotalRewardsRequest, QueryDelegationTotalRewardsResponseSDKType, QueryDelegatorValidatorsRequest, QueryDelegatorValidatorsResponseSDKType, QueryDelegatorWithdrawAddressRequest, QueryDelegatorWithdrawAddressResponseSDKType, QueryCommunityPoolRequest, QueryCommunityPoolResponseSDKType } from "./query"; -export declare class LCDQueryClient { - req: LCDClient; - constructor({ requestClient }: { - requestClient: LCDClient; - }); - params(_params?: QueryParamsRequest): Promise; - validatorOutstandingRewards(params: QueryValidatorOutstandingRewardsRequest): Promise; - validatorCommission(params: QueryValidatorCommissionRequest): Promise; - validatorSlashes(params: QueryValidatorSlashesRequest): Promise; - delegationRewards(params: QueryDelegationRewardsRequest): Promise; - delegationTotalRewards(params: QueryDelegationTotalRewardsRequest): Promise; - delegatorValidators(params: QueryDelegatorValidatorsRequest): Promise; - delegatorWithdrawAddress(params: QueryDelegatorWithdrawAddressRequest): Promise; - communityPool(_params?: QueryCommunityPoolRequest): Promise; -} diff --git a/packages/codegen/dist/cosmos/distribution/v1beta1/query.rpc.Query.d.ts b/packages/codegen/dist/cosmos/distribution/v1beta1/query.rpc.Query.d.ts deleted file mode 100644 index be0d7a15..00000000 --- a/packages/codegen/dist/cosmos/distribution/v1beta1/query.rpc.Query.d.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { QueryClient } from "@cosmjs/stargate"; -import { QueryParamsRequest, QueryParamsResponse, QueryValidatorOutstandingRewardsRequest, QueryValidatorOutstandingRewardsResponse, QueryValidatorCommissionRequest, QueryValidatorCommissionResponse, QueryValidatorSlashesRequest, QueryValidatorSlashesResponse, QueryDelegationRewardsRequest, QueryDelegationRewardsResponse, QueryDelegationTotalRewardsRequest, QueryDelegationTotalRewardsResponse, QueryDelegatorValidatorsRequest, QueryDelegatorValidatorsResponse, QueryDelegatorWithdrawAddressRequest, QueryDelegatorWithdrawAddressResponse, QueryCommunityPoolRequest, QueryCommunityPoolResponse } from "./query"; -/** Query defines the gRPC querier service for distribution module. */ -export interface Query { - /** Params queries params of the distribution module. */ - params(request?: QueryParamsRequest): Promise; - /** ValidatorOutstandingRewards queries rewards of a validator address. */ - validatorOutstandingRewards(request: QueryValidatorOutstandingRewardsRequest): Promise; - /** ValidatorCommission queries accumulated commission for a validator. */ - validatorCommission(request: QueryValidatorCommissionRequest): Promise; - /** ValidatorSlashes queries slash events of a validator. */ - validatorSlashes(request: QueryValidatorSlashesRequest): Promise; - /** DelegationRewards queries the total rewards accrued by a delegation. */ - delegationRewards(request: QueryDelegationRewardsRequest): Promise; - /** - * DelegationTotalRewards queries the total rewards accrued by a each - * validator. - */ - delegationTotalRewards(request: QueryDelegationTotalRewardsRequest): Promise; - /** DelegatorValidators queries the validators of a delegator. */ - delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise; - /** DelegatorWithdrawAddress queries withdraw address of a delegator. */ - delegatorWithdrawAddress(request: QueryDelegatorWithdrawAddressRequest): Promise; - /** CommunityPool queries the community pool coins. */ - communityPool(request?: QueryCommunityPoolRequest): Promise; -} -export declare class QueryClientImpl implements Query { - private readonly rpc; - constructor(rpc: Rpc); - params(request?: QueryParamsRequest): Promise; - validatorOutstandingRewards(request: QueryValidatorOutstandingRewardsRequest): Promise; - validatorCommission(request: QueryValidatorCommissionRequest): Promise; - validatorSlashes(request: QueryValidatorSlashesRequest): Promise; - delegationRewards(request: QueryDelegationRewardsRequest): Promise; - delegationTotalRewards(request: QueryDelegationTotalRewardsRequest): Promise; - delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise; - delegatorWithdrawAddress(request: QueryDelegatorWithdrawAddressRequest): Promise; - communityPool(request?: QueryCommunityPoolRequest): Promise; -} -export declare const createRpcQueryExtension: (base: QueryClient) => { - params(request?: QueryParamsRequest): Promise; - validatorOutstandingRewards(request: QueryValidatorOutstandingRewardsRequest): Promise; - validatorCommission(request: QueryValidatorCommissionRequest): Promise; - validatorSlashes(request: QueryValidatorSlashesRequest): Promise; - delegationRewards(request: QueryDelegationRewardsRequest): Promise; - delegationTotalRewards(request: QueryDelegationTotalRewardsRequest): Promise; - delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise; - delegatorWithdrawAddress(request: QueryDelegatorWithdrawAddressRequest): Promise; - communityPool(request?: QueryCommunityPoolRequest): Promise; -}; diff --git a/packages/codegen/dist/cosmos/distribution/v1beta1/tx.d.ts b/packages/codegen/dist/cosmos/distribution/v1beta1/tx.d.ts deleted file mode 100644 index 244496e5..00000000 --- a/packages/codegen/dist/cosmos/distribution/v1beta1/tx.d.ts +++ /dev/null @@ -1,133 +0,0 @@ -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * MsgSetWithdrawAddress sets the withdraw address for - * a delegator (or validator self-delegation). - */ -export interface MsgSetWithdrawAddress { - delegatorAddress: string; - withdrawAddress: string; -} -/** - * MsgSetWithdrawAddress sets the withdraw address for - * a delegator (or validator self-delegation). - */ -export interface MsgSetWithdrawAddressSDKType { - delegator_address: string; - withdraw_address: string; -} -/** MsgSetWithdrawAddressResponse defines the Msg/SetWithdrawAddress response type. */ -export interface MsgSetWithdrawAddressResponse { -} -/** MsgSetWithdrawAddressResponse defines the Msg/SetWithdrawAddress response type. */ -export interface MsgSetWithdrawAddressResponseSDKType { -} -/** - * MsgWithdrawDelegatorReward represents delegation withdrawal to a delegator - * from a single validator. - */ -export interface MsgWithdrawDelegatorReward { - delegatorAddress: string; - validatorAddress: string; -} -/** - * MsgWithdrawDelegatorReward represents delegation withdrawal to a delegator - * from a single validator. - */ -export interface MsgWithdrawDelegatorRewardSDKType { - delegator_address: string; - validator_address: string; -} -/** MsgWithdrawDelegatorRewardResponse defines the Msg/WithdrawDelegatorReward response type. */ -export interface MsgWithdrawDelegatorRewardResponse { - amount: Coin[]; -} -/** MsgWithdrawDelegatorRewardResponse defines the Msg/WithdrawDelegatorReward response type. */ -export interface MsgWithdrawDelegatorRewardResponseSDKType { - amount: CoinSDKType[]; -} -/** - * MsgWithdrawValidatorCommission withdraws the full commission to the validator - * address. - */ -export interface MsgWithdrawValidatorCommission { - validatorAddress: string; -} -/** - * MsgWithdrawValidatorCommission withdraws the full commission to the validator - * address. - */ -export interface MsgWithdrawValidatorCommissionSDKType { - validator_address: string; -} -/** MsgWithdrawValidatorCommissionResponse defines the Msg/WithdrawValidatorCommission response type. */ -export interface MsgWithdrawValidatorCommissionResponse { - amount: Coin[]; -} -/** MsgWithdrawValidatorCommissionResponse defines the Msg/WithdrawValidatorCommission response type. */ -export interface MsgWithdrawValidatorCommissionResponseSDKType { - amount: CoinSDKType[]; -} -/** - * MsgFundCommunityPool allows an account to directly - * fund the community pool. - */ -export interface MsgFundCommunityPool { - amount: Coin[]; - depositor: string; -} -/** - * MsgFundCommunityPool allows an account to directly - * fund the community pool. - */ -export interface MsgFundCommunityPoolSDKType { - amount: CoinSDKType[]; - depositor: string; -} -/** MsgFundCommunityPoolResponse defines the Msg/FundCommunityPool response type. */ -export interface MsgFundCommunityPoolResponse { -} -/** MsgFundCommunityPoolResponse defines the Msg/FundCommunityPool response type. */ -export interface MsgFundCommunityPoolResponseSDKType { -} -export declare const MsgSetWithdrawAddress: { - encode(message: MsgSetWithdrawAddress, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSetWithdrawAddress; - fromPartial(object: DeepPartial): MsgSetWithdrawAddress; -}; -export declare const MsgSetWithdrawAddressResponse: { - encode(_: MsgSetWithdrawAddressResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSetWithdrawAddressResponse; - fromPartial(_: DeepPartial): MsgSetWithdrawAddressResponse; -}; -export declare const MsgWithdrawDelegatorReward: { - encode(message: MsgWithdrawDelegatorReward, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgWithdrawDelegatorReward; - fromPartial(object: DeepPartial): MsgWithdrawDelegatorReward; -}; -export declare const MsgWithdrawDelegatorRewardResponse: { - encode(message: MsgWithdrawDelegatorRewardResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgWithdrawDelegatorRewardResponse; - fromPartial(object: DeepPartial): MsgWithdrawDelegatorRewardResponse; -}; -export declare const MsgWithdrawValidatorCommission: { - encode(message: MsgWithdrawValidatorCommission, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgWithdrawValidatorCommission; - fromPartial(object: DeepPartial): MsgWithdrawValidatorCommission; -}; -export declare const MsgWithdrawValidatorCommissionResponse: { - encode(message: MsgWithdrawValidatorCommissionResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgWithdrawValidatorCommissionResponse; - fromPartial(object: DeepPartial): MsgWithdrawValidatorCommissionResponse; -}; -export declare const MsgFundCommunityPool: { - encode(message: MsgFundCommunityPool, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgFundCommunityPool; - fromPartial(object: DeepPartial): MsgFundCommunityPool; -}; -export declare const MsgFundCommunityPoolResponse: { - encode(_: MsgFundCommunityPoolResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgFundCommunityPoolResponse; - fromPartial(_: DeepPartial): MsgFundCommunityPoolResponse; -}; diff --git a/packages/codegen/dist/cosmos/distribution/v1beta1/tx.rpc.msg.d.ts b/packages/codegen/dist/cosmos/distribution/v1beta1/tx.rpc.msg.d.ts deleted file mode 100644 index 38723e88..00000000 --- a/packages/codegen/dist/cosmos/distribution/v1beta1/tx.rpc.msg.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { MsgSetWithdrawAddress, MsgSetWithdrawAddressResponse, MsgWithdrawDelegatorReward, MsgWithdrawDelegatorRewardResponse, MsgWithdrawValidatorCommission, MsgWithdrawValidatorCommissionResponse, MsgFundCommunityPool, MsgFundCommunityPoolResponse } from "./tx"; -/** Msg defines the distribution Msg service. */ -export interface Msg { - /** - * SetWithdrawAddress defines a method to change the withdraw address - * for a delegator (or validator self-delegation). - */ - setWithdrawAddress(request: MsgSetWithdrawAddress): Promise; - /** - * WithdrawDelegatorReward defines a method to withdraw rewards of delegator - * from a single validator. - */ - withdrawDelegatorReward(request: MsgWithdrawDelegatorReward): Promise; - /** - * WithdrawValidatorCommission defines a method to withdraw the - * full commission to the validator address. - */ - withdrawValidatorCommission(request: MsgWithdrawValidatorCommission): Promise; - /** - * FundCommunityPool defines a method to allow an account to directly - * fund the community pool. - */ - fundCommunityPool(request: MsgFundCommunityPool): Promise; -} -export declare class MsgClientImpl implements Msg { - private readonly rpc; - constructor(rpc: Rpc); - setWithdrawAddress(request: MsgSetWithdrawAddress): Promise; - withdrawDelegatorReward(request: MsgWithdrawDelegatorReward): Promise; - withdrawValidatorCommission(request: MsgWithdrawValidatorCommission): Promise; - fundCommunityPool(request: MsgFundCommunityPool): Promise; -} diff --git a/packages/codegen/dist/cosmos/evidence/v1beta1/evidence.d.ts b/packages/codegen/dist/cosmos/evidence/v1beta1/evidence.d.ts deleted file mode 100644 index 68beee4f..00000000 --- a/packages/codegen/dist/cosmos/evidence/v1beta1/evidence.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -/// -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * Equivocation implements the Evidence interface and defines evidence of double - * signing misbehavior. - */ -export interface Equivocation { - height: Long; - time?: Date; - power: Long; - consensusAddress: string; -} -/** - * Equivocation implements the Evidence interface and defines evidence of double - * signing misbehavior. - */ -export interface EquivocationSDKType { - height: Long; - time?: Date; - power: Long; - consensus_address: string; -} -export declare const Equivocation: { - encode(message: Equivocation, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Equivocation; - fromPartial(object: DeepPartial): Equivocation; -}; diff --git a/packages/codegen/dist/cosmos/evidence/v1beta1/genesis.d.ts b/packages/codegen/dist/cosmos/evidence/v1beta1/genesis.d.ts deleted file mode 100644 index 13c22c80..00000000 --- a/packages/codegen/dist/cosmos/evidence/v1beta1/genesis.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** GenesisState defines the evidence module's genesis state. */ -export interface GenesisState { - /** evidence defines all the evidence at genesis. */ - evidence: Any[]; -} -/** GenesisState defines the evidence module's genesis state. */ -export interface GenesisStateSDKType { - evidence: AnySDKType[]; -} -export declare const GenesisState: { - encode(message: GenesisState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState; - fromPartial(object: DeepPartial): GenesisState; -}; diff --git a/packages/codegen/dist/cosmos/evidence/v1beta1/query.d.ts b/packages/codegen/dist/cosmos/evidence/v1beta1/query.d.ts deleted file mode 100644 index 9607b9c2..00000000 --- a/packages/codegen/dist/cosmos/evidence/v1beta1/query.d.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** QueryEvidenceRequest is the request type for the Query/Evidence RPC method. */ -export interface QueryEvidenceRequest { - /** evidence_hash defines the hash of the requested evidence. */ - evidenceHash: Uint8Array; -} -/** QueryEvidenceRequest is the request type for the Query/Evidence RPC method. */ -export interface QueryEvidenceRequestSDKType { - evidence_hash: Uint8Array; -} -/** QueryEvidenceResponse is the response type for the Query/Evidence RPC method. */ -export interface QueryEvidenceResponse { - /** evidence returns the requested evidence. */ - evidence?: Any; -} -/** QueryEvidenceResponse is the response type for the Query/Evidence RPC method. */ -export interface QueryEvidenceResponseSDKType { - evidence?: AnySDKType; -} -/** - * QueryEvidenceRequest is the request type for the Query/AllEvidence RPC - * method. - */ -export interface QueryAllEvidenceRequest { - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** - * QueryEvidenceRequest is the request type for the Query/AllEvidence RPC - * method. - */ -export interface QueryAllEvidenceRequestSDKType { - pagination?: PageRequestSDKType; -} -/** - * QueryAllEvidenceResponse is the response type for the Query/AllEvidence RPC - * method. - */ -export interface QueryAllEvidenceResponse { - /** evidence returns all evidences. */ - evidence: Any[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** - * QueryAllEvidenceResponse is the response type for the Query/AllEvidence RPC - * method. - */ -export interface QueryAllEvidenceResponseSDKType { - evidence: AnySDKType[]; - pagination?: PageResponseSDKType; -} -export declare const QueryEvidenceRequest: { - encode(message: QueryEvidenceRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryEvidenceRequest; - fromPartial(object: DeepPartial): QueryEvidenceRequest; -}; -export declare const QueryEvidenceResponse: { - encode(message: QueryEvidenceResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryEvidenceResponse; - fromPartial(object: DeepPartial): QueryEvidenceResponse; -}; -export declare const QueryAllEvidenceRequest: { - encode(message: QueryAllEvidenceRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllEvidenceRequest; - fromPartial(object: DeepPartial): QueryAllEvidenceRequest; -}; -export declare const QueryAllEvidenceResponse: { - encode(message: QueryAllEvidenceResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllEvidenceResponse; - fromPartial(object: DeepPartial): QueryAllEvidenceResponse; -}; diff --git a/packages/codegen/dist/cosmos/evidence/v1beta1/query.lcd.d.ts b/packages/codegen/dist/cosmos/evidence/v1beta1/query.lcd.d.ts deleted file mode 100644 index 7bca5ded..00000000 --- a/packages/codegen/dist/cosmos/evidence/v1beta1/query.lcd.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { QueryEvidenceRequest, QueryEvidenceResponseSDKType, QueryAllEvidenceRequest, QueryAllEvidenceResponseSDKType } from "./query"; -export declare class LCDQueryClient { - req: LCDClient; - constructor({ requestClient }: { - requestClient: LCDClient; - }); - evidence(params: QueryEvidenceRequest): Promise; - allEvidence(params?: QueryAllEvidenceRequest): Promise; -} diff --git a/packages/codegen/dist/cosmos/evidence/v1beta1/query.rpc.Query.d.ts b/packages/codegen/dist/cosmos/evidence/v1beta1/query.rpc.Query.d.ts deleted file mode 100644 index 190f6355..00000000 --- a/packages/codegen/dist/cosmos/evidence/v1beta1/query.rpc.Query.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { QueryClient } from "@cosmjs/stargate"; -import { QueryEvidenceRequest, QueryEvidenceResponse, QueryAllEvidenceRequest, QueryAllEvidenceResponse } from "./query"; -/** Query defines the gRPC querier service. */ -export interface Query { - /** Evidence queries evidence based on evidence hash. */ - evidence(request: QueryEvidenceRequest): Promise; - /** AllEvidence queries all evidence. */ - allEvidence(request?: QueryAllEvidenceRequest): Promise; -} -export declare class QueryClientImpl implements Query { - private readonly rpc; - constructor(rpc: Rpc); - evidence(request: QueryEvidenceRequest): Promise; - allEvidence(request?: QueryAllEvidenceRequest): Promise; -} -export declare const createRpcQueryExtension: (base: QueryClient) => { - evidence(request: QueryEvidenceRequest): Promise; - allEvidence(request?: QueryAllEvidenceRequest): Promise; -}; diff --git a/packages/codegen/dist/cosmos/evidence/v1beta1/tx.d.ts b/packages/codegen/dist/cosmos/evidence/v1beta1/tx.d.ts deleted file mode 100644 index 326ec2d2..00000000 --- a/packages/codegen/dist/cosmos/evidence/v1beta1/tx.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * MsgSubmitEvidence represents a message that supports submitting arbitrary - * Evidence of misbehavior such as equivocation or counterfactual signing. - */ -export interface MsgSubmitEvidence { - submitter: string; - evidence?: Any; -} -/** - * MsgSubmitEvidence represents a message that supports submitting arbitrary - * Evidence of misbehavior such as equivocation or counterfactual signing. - */ -export interface MsgSubmitEvidenceSDKType { - submitter: string; - evidence?: AnySDKType; -} -/** MsgSubmitEvidenceResponse defines the Msg/SubmitEvidence response type. */ -export interface MsgSubmitEvidenceResponse { - /** hash defines the hash of the evidence. */ - hash: Uint8Array; -} -/** MsgSubmitEvidenceResponse defines the Msg/SubmitEvidence response type. */ -export interface MsgSubmitEvidenceResponseSDKType { - hash: Uint8Array; -} -export declare const MsgSubmitEvidence: { - encode(message: MsgSubmitEvidence, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSubmitEvidence; - fromPartial(object: DeepPartial): MsgSubmitEvidence; -}; -export declare const MsgSubmitEvidenceResponse: { - encode(message: MsgSubmitEvidenceResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSubmitEvidenceResponse; - fromPartial(object: DeepPartial): MsgSubmitEvidenceResponse; -}; diff --git a/packages/codegen/dist/cosmos/evidence/v1beta1/tx.rpc.msg.d.ts b/packages/codegen/dist/cosmos/evidence/v1beta1/tx.rpc.msg.d.ts deleted file mode 100644 index 5eeace2c..00000000 --- a/packages/codegen/dist/cosmos/evidence/v1beta1/tx.rpc.msg.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { MsgSubmitEvidence, MsgSubmitEvidenceResponse } from "./tx"; -/** Msg defines the evidence Msg service. */ -export interface Msg { - /** - * SubmitEvidence submits an arbitrary Evidence of misbehavior such as equivocation or - * counterfactual signing. - */ - submitEvidence(request: MsgSubmitEvidence): Promise; -} -export declare class MsgClientImpl implements Msg { - private readonly rpc; - constructor(rpc: Rpc); - submitEvidence(request: MsgSubmitEvidence): Promise; -} diff --git a/packages/codegen/dist/cosmos/feegrant/v1beta1/feegrant.d.ts b/packages/codegen/dist/cosmos/feegrant/v1beta1/feegrant.d.ts deleted file mode 100644 index a3333d94..00000000 --- a/packages/codegen/dist/cosmos/feegrant/v1beta1/feegrant.d.ts +++ /dev/null @@ -1,111 +0,0 @@ -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import { Duration, DurationSDKType } from "../../../google/protobuf/duration"; -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * BasicAllowance implements Allowance with a one-time grant of tokens - * that optionally expires. The grantee can use up to SpendLimit to cover fees. - */ -export interface BasicAllowance { - /** - * spend_limit specifies the maximum amount of tokens that can be spent - * by this allowance and will be updated as tokens are spent. If it is - * empty, there is no spend limit and any amount of coins can be spent. - */ - spendLimit: Coin[]; - /** expiration specifies an optional time when this allowance expires */ - expiration?: Date; -} -/** - * BasicAllowance implements Allowance with a one-time grant of tokens - * that optionally expires. The grantee can use up to SpendLimit to cover fees. - */ -export interface BasicAllowanceSDKType { - spend_limit: CoinSDKType[]; - expiration?: Date; -} -/** - * PeriodicAllowance extends Allowance to allow for both a maximum cap, - * as well as a limit per time period. - */ -export interface PeriodicAllowance { - /** basic specifies a struct of `BasicAllowance` */ - basic?: BasicAllowance; - /** - * period specifies the time duration in which period_spend_limit coins can - * be spent before that allowance is reset - */ - period?: Duration; - /** - * period_spend_limit specifies the maximum number of coins that can be spent - * in the period - */ - periodSpendLimit: Coin[]; - /** period_can_spend is the number of coins left to be spent before the period_reset time */ - periodCanSpend: Coin[]; - /** - * 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 - */ - periodReset?: Date; -} -/** - * PeriodicAllowance extends Allowance to allow for both a maximum cap, - * as well as a limit per time period. - */ -export interface PeriodicAllowanceSDKType { - basic?: BasicAllowanceSDKType; - period?: DurationSDKType; - period_spend_limit: CoinSDKType[]; - period_can_spend: CoinSDKType[]; - period_reset?: Date; -} -/** AllowedMsgAllowance creates allowance only for specified message types. */ -export interface AllowedMsgAllowance { - /** allowance can be any of basic and periodic fee allowance. */ - allowance?: Any; - /** allowed_messages are the messages for which the grantee has the access. */ - allowedMessages: string[]; -} -/** AllowedMsgAllowance creates allowance only for specified message types. */ -export interface AllowedMsgAllowanceSDKType { - allowance?: AnySDKType; - allowed_messages: string[]; -} -/** Grant is stored in the KVStore to record a grant with full context */ -export interface Grant { - /** granter is the address of the user granting an allowance of their funds. */ - granter: string; - /** grantee is the address of the user being granted an allowance of another user's funds. */ - grantee: string; - /** allowance can be any of basic, periodic, allowed fee allowance. */ - allowance?: Any; -} -/** Grant is stored in the KVStore to record a grant with full context */ -export interface GrantSDKType { - granter: string; - grantee: string; - allowance?: AnySDKType; -} -export declare const BasicAllowance: { - encode(message: BasicAllowance, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): BasicAllowance; - fromPartial(object: DeepPartial): BasicAllowance; -}; -export declare const PeriodicAllowance: { - encode(message: PeriodicAllowance, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PeriodicAllowance; - fromPartial(object: DeepPartial): PeriodicAllowance; -}; -export declare const AllowedMsgAllowance: { - encode(message: AllowedMsgAllowance, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): AllowedMsgAllowance; - fromPartial(object: DeepPartial): AllowedMsgAllowance; -}; -export declare const Grant: { - encode(message: Grant, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Grant; - fromPartial(object: DeepPartial): Grant; -}; diff --git a/packages/codegen/dist/cosmos/feegrant/v1beta1/genesis.d.ts b/packages/codegen/dist/cosmos/feegrant/v1beta1/genesis.d.ts deleted file mode 100644 index 44faac46..00000000 --- a/packages/codegen/dist/cosmos/feegrant/v1beta1/genesis.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Grant, GrantSDKType } from "./feegrant"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** GenesisState contains a set of fee allowances, persisted from the store */ -export interface GenesisState { - allowances: Grant[]; -} -/** GenesisState contains a set of fee allowances, persisted from the store */ -export interface GenesisStateSDKType { - allowances: GrantSDKType[]; -} -export declare const GenesisState: { - encode(message: GenesisState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState; - fromPartial(object: DeepPartial): GenesisState; -}; diff --git a/packages/codegen/dist/cosmos/feegrant/v1beta1/query.d.ts b/packages/codegen/dist/cosmos/feegrant/v1beta1/query.d.ts deleted file mode 100644 index 8a0a3b58..00000000 --- a/packages/codegen/dist/cosmos/feegrant/v1beta1/query.d.ts +++ /dev/null @@ -1,101 +0,0 @@ -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { Grant, GrantSDKType } from "./feegrant"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** QueryAllowanceRequest is the request type for the Query/Allowance RPC method. */ -export interface QueryAllowanceRequest { - /** granter is the address of the user granting an allowance of their funds. */ - granter: string; - /** grantee is the address of the user being granted an allowance of another user's funds. */ - grantee: string; -} -/** QueryAllowanceRequest is the request type for the Query/Allowance RPC method. */ -export interface QueryAllowanceRequestSDKType { - granter: string; - grantee: string; -} -/** QueryAllowanceResponse is the response type for the Query/Allowance RPC method. */ -export interface QueryAllowanceResponse { - /** allowance is a allowance granted for grantee by granter. */ - allowance?: Grant; -} -/** QueryAllowanceResponse is the response type for the Query/Allowance RPC method. */ -export interface QueryAllowanceResponseSDKType { - allowance?: GrantSDKType; -} -/** QueryAllowancesRequest is the request type for the Query/Allowances RPC method. */ -export interface QueryAllowancesRequest { - grantee: string; - /** pagination defines an pagination for the request. */ - pagination?: PageRequest; -} -/** QueryAllowancesRequest is the request type for the Query/Allowances RPC method. */ -export interface QueryAllowancesRequestSDKType { - grantee: string; - pagination?: PageRequestSDKType; -} -/** QueryAllowancesResponse is the response type for the Query/Allowances RPC method. */ -export interface QueryAllowancesResponse { - /** allowances are allowance's granted for grantee by granter. */ - allowances: Grant[]; - /** pagination defines an pagination for the response. */ - pagination?: PageResponse; -} -/** QueryAllowancesResponse is the response type for the Query/Allowances RPC method. */ -export interface QueryAllowancesResponseSDKType { - allowances: GrantSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryAllowancesByGranterRequest is the request type for the Query/AllowancesByGranter RPC method. */ -export interface QueryAllowancesByGranterRequest { - granter: string; - /** pagination defines an pagination for the request. */ - pagination?: PageRequest; -} -/** QueryAllowancesByGranterRequest is the request type for the Query/AllowancesByGranter RPC method. */ -export interface QueryAllowancesByGranterRequestSDKType { - granter: string; - pagination?: PageRequestSDKType; -} -/** QueryAllowancesByGranterResponse is the response type for the Query/AllowancesByGranter RPC method. */ -export interface QueryAllowancesByGranterResponse { - /** allowances that have been issued by the granter. */ - allowances: Grant[]; - /** pagination defines an pagination for the response. */ - pagination?: PageResponse; -} -/** QueryAllowancesByGranterResponse is the response type for the Query/AllowancesByGranter RPC method. */ -export interface QueryAllowancesByGranterResponseSDKType { - allowances: GrantSDKType[]; - pagination?: PageResponseSDKType; -} -export declare const QueryAllowanceRequest: { - encode(message: QueryAllowanceRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllowanceRequest; - fromPartial(object: DeepPartial): QueryAllowanceRequest; -}; -export declare const QueryAllowanceResponse: { - encode(message: QueryAllowanceResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllowanceResponse; - fromPartial(object: DeepPartial): QueryAllowanceResponse; -}; -export declare const QueryAllowancesRequest: { - encode(message: QueryAllowancesRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllowancesRequest; - fromPartial(object: DeepPartial): QueryAllowancesRequest; -}; -export declare const QueryAllowancesResponse: { - encode(message: QueryAllowancesResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllowancesResponse; - fromPartial(object: DeepPartial): QueryAllowancesResponse; -}; -export declare const QueryAllowancesByGranterRequest: { - encode(message: QueryAllowancesByGranterRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllowancesByGranterRequest; - fromPartial(object: DeepPartial): QueryAllowancesByGranterRequest; -}; -export declare const QueryAllowancesByGranterResponse: { - encode(message: QueryAllowancesByGranterResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllowancesByGranterResponse; - fromPartial(object: DeepPartial): QueryAllowancesByGranterResponse; -}; diff --git a/packages/codegen/dist/cosmos/feegrant/v1beta1/query.lcd.d.ts b/packages/codegen/dist/cosmos/feegrant/v1beta1/query.lcd.d.ts deleted file mode 100644 index 7669c054..00000000 --- a/packages/codegen/dist/cosmos/feegrant/v1beta1/query.lcd.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { QueryAllowanceRequest, QueryAllowanceResponseSDKType, QueryAllowancesRequest, QueryAllowancesResponseSDKType, QueryAllowancesByGranterRequest, QueryAllowancesByGranterResponseSDKType } from "./query"; -export declare class LCDQueryClient { - req: LCDClient; - constructor({ requestClient }: { - requestClient: LCDClient; - }); - allowance(params: QueryAllowanceRequest): Promise; - allowances(params: QueryAllowancesRequest): Promise; - allowancesByGranter(params: QueryAllowancesByGranterRequest): Promise; -} diff --git a/packages/codegen/dist/cosmos/feegrant/v1beta1/query.rpc.Query.d.ts b/packages/codegen/dist/cosmos/feegrant/v1beta1/query.rpc.Query.d.ts deleted file mode 100644 index 07185e44..00000000 --- a/packages/codegen/dist/cosmos/feegrant/v1beta1/query.rpc.Query.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { QueryClient } from "@cosmjs/stargate"; -import { QueryAllowanceRequest, QueryAllowanceResponse, QueryAllowancesRequest, QueryAllowancesResponse, QueryAllowancesByGranterRequest, QueryAllowancesByGranterResponse } from "./query"; -/** Query defines the gRPC querier service. */ -export interface Query { - /** Allowance returns fee granted to the grantee by the granter. */ - allowance(request: QueryAllowanceRequest): Promise; - /** Allowances returns all the grants for address. */ - allowances(request: QueryAllowancesRequest): Promise; - /** - * AllowancesByGranter returns all the grants given by an address - * Since v0.46 - */ - allowancesByGranter(request: QueryAllowancesByGranterRequest): Promise; -} -export declare class QueryClientImpl implements Query { - private readonly rpc; - constructor(rpc: Rpc); - allowance(request: QueryAllowanceRequest): Promise; - allowances(request: QueryAllowancesRequest): Promise; - allowancesByGranter(request: QueryAllowancesByGranterRequest): Promise; -} -export declare const createRpcQueryExtension: (base: QueryClient) => { - allowance(request: QueryAllowanceRequest): Promise; - allowances(request: QueryAllowancesRequest): Promise; - allowancesByGranter(request: QueryAllowancesByGranterRequest): Promise; -}; diff --git a/packages/codegen/dist/cosmos/feegrant/v1beta1/tx.d.ts b/packages/codegen/dist/cosmos/feegrant/v1beta1/tx.d.ts deleted file mode 100644 index 9d6ffe92..00000000 --- a/packages/codegen/dist/cosmos/feegrant/v1beta1/tx.d.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * MsgGrantAllowance adds permission for Grantee to spend up to Allowance - * of fees from the account of Granter. - */ -export interface MsgGrantAllowance { - /** granter is the address of the user granting an allowance of their funds. */ - granter: string; - /** grantee is the address of the user being granted an allowance of another user's funds. */ - grantee: string; - /** allowance can be any of basic, periodic, allowed fee allowance. */ - allowance?: Any; -} -/** - * MsgGrantAllowance adds permission for Grantee to spend up to Allowance - * of fees from the account of Granter. - */ -export interface MsgGrantAllowanceSDKType { - granter: string; - grantee: string; - allowance?: AnySDKType; -} -/** MsgGrantAllowanceResponse defines the Msg/GrantAllowanceResponse response type. */ -export interface MsgGrantAllowanceResponse { -} -/** MsgGrantAllowanceResponse defines the Msg/GrantAllowanceResponse response type. */ -export interface MsgGrantAllowanceResponseSDKType { -} -/** MsgRevokeAllowance removes any existing Allowance from Granter to Grantee. */ -export interface MsgRevokeAllowance { - /** granter is the address of the user granting an allowance of their funds. */ - granter: string; - /** grantee is the address of the user being granted an allowance of another user's funds. */ - grantee: string; -} -/** MsgRevokeAllowance removes any existing Allowance from Granter to Grantee. */ -export interface MsgRevokeAllowanceSDKType { - granter: string; - grantee: string; -} -/** MsgRevokeAllowanceResponse defines the Msg/RevokeAllowanceResponse response type. */ -export interface MsgRevokeAllowanceResponse { -} -/** MsgRevokeAllowanceResponse defines the Msg/RevokeAllowanceResponse response type. */ -export interface MsgRevokeAllowanceResponseSDKType { -} -export declare const MsgGrantAllowance: { - encode(message: MsgGrantAllowance, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgGrantAllowance; - fromPartial(object: DeepPartial): MsgGrantAllowance; -}; -export declare const MsgGrantAllowanceResponse: { - encode(_: MsgGrantAllowanceResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgGrantAllowanceResponse; - fromPartial(_: DeepPartial): MsgGrantAllowanceResponse; -}; -export declare const MsgRevokeAllowance: { - encode(message: MsgRevokeAllowance, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgRevokeAllowance; - fromPartial(object: DeepPartial): MsgRevokeAllowance; -}; -export declare const MsgRevokeAllowanceResponse: { - encode(_: MsgRevokeAllowanceResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgRevokeAllowanceResponse; - fromPartial(_: DeepPartial): MsgRevokeAllowanceResponse; -}; diff --git a/packages/codegen/dist/cosmos/feegrant/v1beta1/tx.rpc.msg.d.ts b/packages/codegen/dist/cosmos/feegrant/v1beta1/tx.rpc.msg.d.ts deleted file mode 100644 index 9ec43a55..00000000 --- a/packages/codegen/dist/cosmos/feegrant/v1beta1/tx.rpc.msg.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { MsgGrantAllowance, MsgGrantAllowanceResponse, MsgRevokeAllowance, MsgRevokeAllowanceResponse } from "./tx"; -/** Msg defines the feegrant msg service. */ -export interface Msg { - /** - * GrantAllowance grants fee allowance to the grantee on the granter's - * account with the provided expiration time. - */ - grantAllowance(request: MsgGrantAllowance): Promise; - /** - * RevokeAllowance revokes any fee allowance of granter's account that - * has been granted to the grantee. - */ - revokeAllowance(request: MsgRevokeAllowance): Promise; -} -export declare class MsgClientImpl implements Msg { - private readonly rpc; - constructor(rpc: Rpc); - grantAllowance(request: MsgGrantAllowance): Promise; - revokeAllowance(request: MsgRevokeAllowance): Promise; -} diff --git a/packages/codegen/dist/cosmos/genutil/v1beta1/genesis.d.ts b/packages/codegen/dist/cosmos/genutil/v1beta1/genesis.d.ts deleted file mode 100644 index a501140a..00000000 --- a/packages/codegen/dist/cosmos/genutil/v1beta1/genesis.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** GenesisState defines the raw genesis transaction in JSON. */ -export interface GenesisState { - /** gen_txs defines the genesis transactions. */ - genTxs: Uint8Array[]; -} -/** GenesisState defines the raw genesis transaction in JSON. */ -export interface GenesisStateSDKType { - gen_txs: Uint8Array[]; -} -export declare const GenesisState: { - encode(message: GenesisState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState; - fromPartial(object: DeepPartial): GenesisState; -}; diff --git a/packages/codegen/dist/cosmos/gov/v1/genesis.d.ts b/packages/codegen/dist/cosmos/gov/v1/genesis.d.ts deleted file mode 100644 index 7d690f57..00000000 --- a/packages/codegen/dist/cosmos/gov/v1/genesis.d.ts +++ /dev/null @@ -1,36 +0,0 @@ -/// -import { Deposit, DepositSDKType, Vote, VoteSDKType, Proposal, ProposalSDKType, DepositParams, DepositParamsSDKType, VotingParams, VotingParamsSDKType, TallyParams, TallyParamsSDKType } from "./gov"; -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** GenesisState defines the gov module's genesis state. */ -export interface GenesisState { - /** starting_proposal_id is the ID of the starting proposal. */ - startingProposalId: Long; - /** deposits defines all the deposits present at genesis. */ - deposits: Deposit[]; - /** votes defines all the votes present at genesis. */ - votes: Vote[]; - /** proposals defines all the proposals present at genesis. */ - proposals: Proposal[]; - /** params defines all the paramaters of related to deposit. */ - depositParams?: DepositParams; - /** params defines all the paramaters of related to voting. */ - votingParams?: VotingParams; - /** params defines all the paramaters of related to tally. */ - tallyParams?: TallyParams; -} -/** GenesisState defines the gov module's genesis state. */ -export interface GenesisStateSDKType { - starting_proposal_id: Long; - deposits: DepositSDKType[]; - votes: VoteSDKType[]; - proposals: ProposalSDKType[]; - deposit_params?: DepositParamsSDKType; - voting_params?: VotingParamsSDKType; - tally_params?: TallyParamsSDKType; -} -export declare const GenesisState: { - encode(message: GenesisState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState; - fromPartial(object: DeepPartial): GenesisState; -}; diff --git a/packages/codegen/dist/cosmos/gov/v1/gov.d.ts b/packages/codegen/dist/cosmos/gov/v1/gov.d.ts deleted file mode 100644 index cd18af32..00000000 --- a/packages/codegen/dist/cosmos/gov/v1/gov.d.ts +++ /dev/null @@ -1,237 +0,0 @@ -/// -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import { Duration, DurationSDKType } from "../../../google/protobuf/duration"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** VoteOption enumerates the valid vote options for a given governance proposal. */ -export declare enum VoteOption { - /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */ - VOTE_OPTION_UNSPECIFIED = 0, - /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */ - VOTE_OPTION_YES = 1, - /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */ - VOTE_OPTION_ABSTAIN = 2, - /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */ - VOTE_OPTION_NO = 3, - /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */ - VOTE_OPTION_NO_WITH_VETO = 4, - UNRECOGNIZED = -1 -} -export declare const VoteOptionSDKType: typeof VoteOption; -export declare function voteOptionFromJSON(object: any): VoteOption; -export declare function voteOptionToJSON(object: VoteOption): string; -/** ProposalStatus enumerates the valid statuses of a proposal. */ -export declare enum ProposalStatus { - /** PROPOSAL_STATUS_UNSPECIFIED - PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. */ - PROPOSAL_STATUS_UNSPECIFIED = 0, - /** - * PROPOSAL_STATUS_DEPOSIT_PERIOD - PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit - * period. - */ - PROPOSAL_STATUS_DEPOSIT_PERIOD = 1, - /** - * PROPOSAL_STATUS_VOTING_PERIOD - PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting - * period. - */ - PROPOSAL_STATUS_VOTING_PERIOD = 2, - /** - * PROPOSAL_STATUS_PASSED - PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has - * passed. - */ - PROPOSAL_STATUS_PASSED = 3, - /** - * PROPOSAL_STATUS_REJECTED - PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has - * been rejected. - */ - PROPOSAL_STATUS_REJECTED = 4, - /** - * PROPOSAL_STATUS_FAILED - PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has - * failed. - */ - PROPOSAL_STATUS_FAILED = 5, - UNRECOGNIZED = -1 -} -export declare const ProposalStatusSDKType: typeof ProposalStatus; -export declare function proposalStatusFromJSON(object: any): ProposalStatus; -export declare function proposalStatusToJSON(object: ProposalStatus): string; -/** WeightedVoteOption defines a unit of vote for vote split. */ -export interface WeightedVoteOption { - option: VoteOption; - weight: string; -} -/** WeightedVoteOption defines a unit of vote for vote split. */ -export interface WeightedVoteOptionSDKType { - option: VoteOption; - weight: string; -} -/** - * Deposit defines an amount deposited by an account address to an active - * proposal. - */ -export interface Deposit { - proposalId: Long; - depositor: string; - amount: Coin[]; -} -/** - * Deposit defines an amount deposited by an account address to an active - * proposal. - */ -export interface DepositSDKType { - proposal_id: Long; - depositor: string; - amount: CoinSDKType[]; -} -/** Proposal defines the core field members of a governance proposal. */ -export interface Proposal { - id: Long; - messages: Any[]; - status: ProposalStatus; - /** - * 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. - */ - finalTallyResult?: TallyResult; - submitTime?: Date; - depositEndTime?: Date; - totalDeposit: Coin[]; - votingStartTime?: Date; - votingEndTime?: Date; - /** metadata is any arbitrary metadata attached to the proposal. */ - metadata: string; -} -/** Proposal defines the core field members of a governance proposal. */ -export interface ProposalSDKType { - id: Long; - messages: AnySDKType[]; - status: ProposalStatus; - final_tally_result?: TallyResultSDKType; - submit_time?: Date; - deposit_end_time?: Date; - total_deposit: CoinSDKType[]; - voting_start_time?: Date; - voting_end_time?: Date; - metadata: string; -} -/** TallyResult defines a standard tally for a governance proposal. */ -export interface TallyResult { - yesCount: string; - abstainCount: string; - noCount: string; - noWithVetoCount: string; -} -/** TallyResult defines a standard tally for a governance proposal. */ -export interface TallyResultSDKType { - yes_count: string; - abstain_count: string; - no_count: string; - no_with_veto_count: string; -} -/** - * Vote defines a vote on a governance proposal. - * A Vote consists of a proposal ID, the voter, and the vote option. - */ -export interface Vote { - proposalId: Long; - voter: string; - options: WeightedVoteOption[]; - /** metadata is any arbitrary metadata to attached to the vote. */ - metadata: string; -} -/** - * Vote defines a vote on a governance proposal. - * A Vote consists of a proposal ID, the voter, and the vote option. - */ -export interface VoteSDKType { - proposal_id: Long; - voter: string; - options: WeightedVoteOptionSDKType[]; - metadata: string; -} -/** DepositParams defines the params for deposits on governance proposals. */ -export interface DepositParams { - /** Minimum deposit for a proposal to enter voting period. */ - minDeposit: Coin[]; - /** - * Maximum period for Atom holders to deposit on a proposal. Initial value: 2 - * months. - */ - maxDepositPeriod?: Duration; -} -/** DepositParams defines the params for deposits on governance proposals. */ -export interface DepositParamsSDKType { - min_deposit: CoinSDKType[]; - max_deposit_period?: DurationSDKType; -} -/** VotingParams defines the params for voting on governance proposals. */ -export interface VotingParams { - /** Length of the voting period. */ - votingPeriod?: Duration; -} -/** VotingParams defines the params for voting on governance proposals. */ -export interface VotingParamsSDKType { - voting_period?: DurationSDKType; -} -/** TallyParams defines the params for tallying votes on governance proposals. */ -export interface TallyParams { - /** - * Minimum percentage of total stake needed to vote for a result to be - * considered valid. - */ - quorum: string; - /** Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. */ - threshold: string; - /** - * Minimum value of Veto votes to Total votes ratio for proposal to be - * vetoed. Default value: 1/3. - */ - vetoThreshold: string; -} -/** TallyParams defines the params for tallying votes on governance proposals. */ -export interface TallyParamsSDKType { - quorum: string; - threshold: string; - veto_threshold: string; -} -export declare const WeightedVoteOption: { - encode(message: WeightedVoteOption, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): WeightedVoteOption; - fromPartial(object: DeepPartial): WeightedVoteOption; -}; -export declare const Deposit: { - encode(message: Deposit, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Deposit; - fromPartial(object: DeepPartial): Deposit; -}; -export declare const Proposal: { - encode(message: Proposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Proposal; - fromPartial(object: DeepPartial): Proposal; -}; -export declare const TallyResult: { - encode(message: TallyResult, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): TallyResult; - fromPartial(object: DeepPartial): TallyResult; -}; -export declare const Vote: { - encode(message: Vote, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Vote; - fromPartial(object: DeepPartial): Vote; -}; -export declare const DepositParams: { - encode(message: DepositParams, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): DepositParams; - fromPartial(object: DeepPartial): DepositParams; -}; -export declare const VotingParams: { - encode(message: VotingParams, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): VotingParams; - fromPartial(object: DeepPartial): VotingParams; -}; -export declare const TallyParams: { - encode(message: TallyParams, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): TallyParams; - fromPartial(object: DeepPartial): TallyParams; -}; diff --git a/packages/codegen/dist/cosmos/gov/v1/query.d.ts b/packages/codegen/dist/cosmos/gov/v1/query.d.ts deleted file mode 100644 index 05747b9a..00000000 --- a/packages/codegen/dist/cosmos/gov/v1/query.d.ts +++ /dev/null @@ -1,271 +0,0 @@ -/// -import { ProposalStatus, Proposal, ProposalSDKType, Vote, VoteSDKType, VotingParams, VotingParamsSDKType, DepositParams, DepositParamsSDKType, TallyParams, TallyParamsSDKType, Deposit, DepositSDKType, TallyResult, TallyResultSDKType } from "./gov"; -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** QueryProposalRequest is the request type for the Query/Proposal RPC method. */ -export interface QueryProposalRequest { - /** proposal_id defines the unique id of the proposal. */ - proposalId: Long; -} -/** QueryProposalRequest is the request type for the Query/Proposal RPC method. */ -export interface QueryProposalRequestSDKType { - proposal_id: Long; -} -/** QueryProposalResponse is the response type for the Query/Proposal RPC method. */ -export interface QueryProposalResponse { - proposal?: Proposal; -} -/** QueryProposalResponse is the response type for the Query/Proposal RPC method. */ -export interface QueryProposalResponseSDKType { - proposal?: ProposalSDKType; -} -/** QueryProposalsRequest is the request type for the Query/Proposals RPC method. */ -export interface QueryProposalsRequest { - /** proposal_status defines the status of the proposals. */ - proposalStatus: ProposalStatus; - /** voter defines the voter address for the proposals. */ - voter: string; - /** depositor defines the deposit addresses from the proposals. */ - depositor: string; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** QueryProposalsRequest is the request type for the Query/Proposals RPC method. */ -export interface QueryProposalsRequestSDKType { - proposal_status: ProposalStatus; - voter: string; - depositor: string; - pagination?: PageRequestSDKType; -} -/** - * QueryProposalsResponse is the response type for the Query/Proposals RPC - * method. - */ -export interface QueryProposalsResponse { - proposals: Proposal[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** - * QueryProposalsResponse is the response type for the Query/Proposals RPC - * method. - */ -export interface QueryProposalsResponseSDKType { - proposals: ProposalSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryVoteRequest is the request type for the Query/Vote RPC method. */ -export interface QueryVoteRequest { - /** proposal_id defines the unique id of the proposal. */ - proposalId: Long; - /** voter defines the oter address for the proposals. */ - voter: string; -} -/** QueryVoteRequest is the request type for the Query/Vote RPC method. */ -export interface QueryVoteRequestSDKType { - proposal_id: Long; - voter: string; -} -/** QueryVoteResponse is the response type for the Query/Vote RPC method. */ -export interface QueryVoteResponse { - /** vote defined the queried vote. */ - vote?: Vote; -} -/** QueryVoteResponse is the response type for the Query/Vote RPC method. */ -export interface QueryVoteResponseSDKType { - vote?: VoteSDKType; -} -/** QueryVotesRequest is the request type for the Query/Votes RPC method. */ -export interface QueryVotesRequest { - /** proposal_id defines the unique id of the proposal. */ - proposalId: Long; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** QueryVotesRequest is the request type for the Query/Votes RPC method. */ -export interface QueryVotesRequestSDKType { - proposal_id: Long; - pagination?: PageRequestSDKType; -} -/** QueryVotesResponse is the response type for the Query/Votes RPC method. */ -export interface QueryVotesResponse { - /** votes defined the queried votes. */ - votes: Vote[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** QueryVotesResponse is the response type for the Query/Votes RPC method. */ -export interface QueryVotesResponseSDKType { - votes: VoteSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ -export interface QueryParamsRequest { - /** - * params_type defines which parameters to query for, can be one of "voting", - * "tallying" or "deposit". - */ - paramsType: string; -} -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ -export interface QueryParamsRequestSDKType { - params_type: string; -} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ -export interface QueryParamsResponse { - /** voting_params defines the parameters related to voting. */ - votingParams?: VotingParams; - /** deposit_params defines the parameters related to deposit. */ - depositParams?: DepositParams; - /** tally_params defines the parameters related to tally. */ - tallyParams?: TallyParams; -} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ -export interface QueryParamsResponseSDKType { - voting_params?: VotingParamsSDKType; - deposit_params?: DepositParamsSDKType; - tally_params?: TallyParamsSDKType; -} -/** QueryDepositRequest is the request type for the Query/Deposit RPC method. */ -export interface QueryDepositRequest { - /** proposal_id defines the unique id of the proposal. */ - proposalId: Long; - /** depositor defines the deposit addresses from the proposals. */ - depositor: string; -} -/** QueryDepositRequest is the request type for the Query/Deposit RPC method. */ -export interface QueryDepositRequestSDKType { - proposal_id: Long; - depositor: string; -} -/** QueryDepositResponse is the response type for the Query/Deposit RPC method. */ -export interface QueryDepositResponse { - /** deposit defines the requested deposit. */ - deposit?: Deposit; -} -/** QueryDepositResponse is the response type for the Query/Deposit RPC method. */ -export interface QueryDepositResponseSDKType { - deposit?: DepositSDKType; -} -/** QueryDepositsRequest is the request type for the Query/Deposits RPC method. */ -export interface QueryDepositsRequest { - /** proposal_id defines the unique id of the proposal. */ - proposalId: Long; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** QueryDepositsRequest is the request type for the Query/Deposits RPC method. */ -export interface QueryDepositsRequestSDKType { - proposal_id: Long; - pagination?: PageRequestSDKType; -} -/** QueryDepositsResponse is the response type for the Query/Deposits RPC method. */ -export interface QueryDepositsResponse { - deposits: Deposit[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** QueryDepositsResponse is the response type for the Query/Deposits RPC method. */ -export interface QueryDepositsResponseSDKType { - deposits: DepositSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryTallyResultRequest is the request type for the Query/Tally RPC method. */ -export interface QueryTallyResultRequest { - /** proposal_id defines the unique id of the proposal. */ - proposalId: Long; -} -/** QueryTallyResultRequest is the request type for the Query/Tally RPC method. */ -export interface QueryTallyResultRequestSDKType { - proposal_id: Long; -} -/** QueryTallyResultResponse is the response type for the Query/Tally RPC method. */ -export interface QueryTallyResultResponse { - /** tally defines the requested tally. */ - tally?: TallyResult; -} -/** QueryTallyResultResponse is the response type for the Query/Tally RPC method. */ -export interface QueryTallyResultResponseSDKType { - tally?: TallyResultSDKType; -} -export declare const QueryProposalRequest: { - encode(message: QueryProposalRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryProposalRequest; - fromPartial(object: DeepPartial): QueryProposalRequest; -}; -export declare const QueryProposalResponse: { - encode(message: QueryProposalResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryProposalResponse; - fromPartial(object: DeepPartial): QueryProposalResponse; -}; -export declare const QueryProposalsRequest: { - encode(message: QueryProposalsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryProposalsRequest; - fromPartial(object: DeepPartial): QueryProposalsRequest; -}; -export declare const QueryProposalsResponse: { - encode(message: QueryProposalsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryProposalsResponse; - fromPartial(object: DeepPartial): QueryProposalsResponse; -}; -export declare const QueryVoteRequest: { - encode(message: QueryVoteRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVoteRequest; - fromPartial(object: DeepPartial): QueryVoteRequest; -}; -export declare const QueryVoteResponse: { - encode(message: QueryVoteResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVoteResponse; - fromPartial(object: DeepPartial): QueryVoteResponse; -}; -export declare const QueryVotesRequest: { - encode(message: QueryVotesRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVotesRequest; - fromPartial(object: DeepPartial): QueryVotesRequest; -}; -export declare const QueryVotesResponse: { - encode(message: QueryVotesResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVotesResponse; - fromPartial(object: DeepPartial): QueryVotesResponse; -}; -export declare const QueryParamsRequest: { - encode(message: QueryParamsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest; - fromPartial(object: DeepPartial): QueryParamsRequest; -}; -export declare const QueryParamsResponse: { - encode(message: QueryParamsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse; - fromPartial(object: DeepPartial): QueryParamsResponse; -}; -export declare const QueryDepositRequest: { - encode(message: QueryDepositRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDepositRequest; - fromPartial(object: DeepPartial): QueryDepositRequest; -}; -export declare const QueryDepositResponse: { - encode(message: QueryDepositResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDepositResponse; - fromPartial(object: DeepPartial): QueryDepositResponse; -}; -export declare const QueryDepositsRequest: { - encode(message: QueryDepositsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDepositsRequest; - fromPartial(object: DeepPartial): QueryDepositsRequest; -}; -export declare const QueryDepositsResponse: { - encode(message: QueryDepositsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDepositsResponse; - fromPartial(object: DeepPartial): QueryDepositsResponse; -}; -export declare const QueryTallyResultRequest: { - encode(message: QueryTallyResultRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryTallyResultRequest; - fromPartial(object: DeepPartial): QueryTallyResultRequest; -}; -export declare const QueryTallyResultResponse: { - encode(message: QueryTallyResultResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryTallyResultResponse; - fromPartial(object: DeepPartial): QueryTallyResultResponse; -}; diff --git a/packages/codegen/dist/cosmos/gov/v1/query.lcd.d.ts b/packages/codegen/dist/cosmos/gov/v1/query.lcd.d.ts deleted file mode 100644 index 9ce44b6a..00000000 --- a/packages/codegen/dist/cosmos/gov/v1/query.lcd.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { QueryProposalRequest, QueryProposalResponseSDKType, QueryProposalsRequest, QueryProposalsResponseSDKType, QueryVoteRequest, QueryVoteResponseSDKType, QueryVotesRequest, QueryVotesResponseSDKType, QueryParamsRequest, QueryParamsResponseSDKType, QueryDepositRequest, QueryDepositResponseSDKType, QueryDepositsRequest, QueryDepositsResponseSDKType, QueryTallyResultRequest, QueryTallyResultResponseSDKType } from "./query"; -export declare class LCDQueryClient { - req: LCDClient; - constructor({ requestClient }: { - requestClient: LCDClient; - }); - proposal(params: QueryProposalRequest): Promise; - proposals(params: QueryProposalsRequest): Promise; - vote(params: QueryVoteRequest): Promise; - votes(params: QueryVotesRequest): Promise; - params(params: QueryParamsRequest): Promise; - deposit(params: QueryDepositRequest): Promise; - deposits(params: QueryDepositsRequest): Promise; - tallyResult(params: QueryTallyResultRequest): Promise; -} diff --git a/packages/codegen/dist/cosmos/gov/v1/query.rpc.Query.d.ts b/packages/codegen/dist/cosmos/gov/v1/query.rpc.Query.d.ts deleted file mode 100644 index 8152da58..00000000 --- a/packages/codegen/dist/cosmos/gov/v1/query.rpc.Query.d.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { QueryClient } from "@cosmjs/stargate"; -import { QueryProposalRequest, QueryProposalResponse, QueryProposalsRequest, QueryProposalsResponse, QueryVoteRequest, QueryVoteResponse, QueryVotesRequest, QueryVotesResponse, QueryParamsRequest, QueryParamsResponse, QueryDepositRequest, QueryDepositResponse, QueryDepositsRequest, QueryDepositsResponse, QueryTallyResultRequest, QueryTallyResultResponse } from "./query"; -/** Query defines the gRPC querier service for gov module */ -export interface Query { - /** Proposal queries proposal details based on ProposalID. */ - proposal(request: QueryProposalRequest): Promise; - /** Proposals queries all proposals based on given status. */ - proposals(request: QueryProposalsRequest): Promise; - /** Vote queries voted information based on proposalID, voterAddr. */ - vote(request: QueryVoteRequest): Promise; - /** Votes queries votes of a given proposal. */ - votes(request: QueryVotesRequest): Promise; - /** Params queries all parameters of the gov module. */ - params(request: QueryParamsRequest): Promise; - /** Deposit queries single deposit information based proposalID, depositAddr. */ - deposit(request: QueryDepositRequest): Promise; - /** Deposits queries all deposits of a single proposal. */ - deposits(request: QueryDepositsRequest): Promise; - /** TallyResult queries the tally of a proposal vote. */ - tallyResult(request: QueryTallyResultRequest): Promise; -} -export declare class QueryClientImpl implements Query { - private readonly rpc; - constructor(rpc: Rpc); - proposal(request: QueryProposalRequest): Promise; - proposals(request: QueryProposalsRequest): Promise; - vote(request: QueryVoteRequest): Promise; - votes(request: QueryVotesRequest): Promise; - params(request: QueryParamsRequest): Promise; - deposit(request: QueryDepositRequest): Promise; - deposits(request: QueryDepositsRequest): Promise; - tallyResult(request: QueryTallyResultRequest): Promise; -} -export declare const createRpcQueryExtension: (base: QueryClient) => { - proposal(request: QueryProposalRequest): Promise; - proposals(request: QueryProposalsRequest): Promise; - vote(request: QueryVoteRequest): Promise; - votes(request: QueryVotesRequest): Promise; - params(request: QueryParamsRequest): Promise; - deposit(request: QueryDepositRequest): Promise; - deposits(request: QueryDepositsRequest): Promise; - tallyResult(request: QueryTallyResultRequest): Promise; -}; diff --git a/packages/codegen/dist/cosmos/gov/v1/tx.d.ts b/packages/codegen/dist/cosmos/gov/v1/tx.d.ts deleted file mode 100644 index 62602193..00000000 --- a/packages/codegen/dist/cosmos/gov/v1/tx.d.ts +++ /dev/null @@ -1,167 +0,0 @@ -/// -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import { VoteOption, WeightedVoteOption, WeightedVoteOptionSDKType } from "./gov"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** - * MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary - * proposal Content. - */ -export interface MsgSubmitProposal { - messages: Any[]; - initialDeposit: Coin[]; - proposer: string; - /** metadata is any arbitrary metadata attached to the proposal. */ - metadata: string; -} -/** - * MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary - * proposal Content. - */ -export interface MsgSubmitProposalSDKType { - messages: AnySDKType[]; - initial_deposit: CoinSDKType[]; - proposer: string; - metadata: string; -} -/** MsgSubmitProposalResponse defines the Msg/SubmitProposal response type. */ -export interface MsgSubmitProposalResponse { - proposalId: Long; -} -/** MsgSubmitProposalResponse defines the Msg/SubmitProposal response type. */ -export interface MsgSubmitProposalResponseSDKType { - proposal_id: Long; -} -/** - * MsgExecLegacyContent is used to wrap the legacy content field into a message. - * This ensures backwards compatibility with v1beta1.MsgSubmitProposal. - */ -export interface MsgExecLegacyContent { - /** content is the proposal's content. */ - content?: Any; - /** authority must be the gov module address. */ - authority: string; -} -/** - * MsgExecLegacyContent is used to wrap the legacy content field into a message. - * This ensures backwards compatibility with v1beta1.MsgSubmitProposal. - */ -export interface MsgExecLegacyContentSDKType { - content?: AnySDKType; - authority: string; -} -/** MsgExecLegacyContentResponse defines the Msg/ExecLegacyContent response type. */ -export interface MsgExecLegacyContentResponse { -} -/** MsgExecLegacyContentResponse defines the Msg/ExecLegacyContent response type. */ -export interface MsgExecLegacyContentResponseSDKType { -} -/** MsgVote defines a message to cast a vote. */ -export interface MsgVote { - proposalId: Long; - voter: string; - option: VoteOption; - metadata: string; -} -/** MsgVote defines a message to cast a vote. */ -export interface MsgVoteSDKType { - proposal_id: Long; - voter: string; - option: VoteOption; - metadata: string; -} -/** MsgVoteResponse defines the Msg/Vote response type. */ -export interface MsgVoteResponse { -} -/** MsgVoteResponse defines the Msg/Vote response type. */ -export interface MsgVoteResponseSDKType { -} -/** MsgVoteWeighted defines a message to cast a vote. */ -export interface MsgVoteWeighted { - proposalId: Long; - voter: string; - options: WeightedVoteOption[]; - metadata: string; -} -/** MsgVoteWeighted defines a message to cast a vote. */ -export interface MsgVoteWeightedSDKType { - proposal_id: Long; - voter: string; - options: WeightedVoteOptionSDKType[]; - metadata: string; -} -/** MsgVoteWeightedResponse defines the Msg/VoteWeighted response type. */ -export interface MsgVoteWeightedResponse { -} -/** MsgVoteWeightedResponse defines the Msg/VoteWeighted response type. */ -export interface MsgVoteWeightedResponseSDKType { -} -/** MsgDeposit defines a message to submit a deposit to an existing proposal. */ -export interface MsgDeposit { - proposalId: Long; - depositor: string; - amount: Coin[]; -} -/** MsgDeposit defines a message to submit a deposit to an existing proposal. */ -export interface MsgDepositSDKType { - proposal_id: Long; - depositor: string; - amount: CoinSDKType[]; -} -/** MsgDepositResponse defines the Msg/Deposit response type. */ -export interface MsgDepositResponse { -} -/** MsgDepositResponse defines the Msg/Deposit response type. */ -export interface MsgDepositResponseSDKType { -} -export declare const MsgSubmitProposal: { - encode(message: MsgSubmitProposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSubmitProposal; - fromPartial(object: DeepPartial): MsgSubmitProposal; -}; -export declare const MsgSubmitProposalResponse: { - encode(message: MsgSubmitProposalResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSubmitProposalResponse; - fromPartial(object: DeepPartial): MsgSubmitProposalResponse; -}; -export declare const MsgExecLegacyContent: { - encode(message: MsgExecLegacyContent, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgExecLegacyContent; - fromPartial(object: DeepPartial): MsgExecLegacyContent; -}; -export declare const MsgExecLegacyContentResponse: { - encode(_: MsgExecLegacyContentResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgExecLegacyContentResponse; - fromPartial(_: DeepPartial): MsgExecLegacyContentResponse; -}; -export declare const MsgVote: { - encode(message: MsgVote, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgVote; - fromPartial(object: DeepPartial): MsgVote; -}; -export declare const MsgVoteResponse: { - encode(_: MsgVoteResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgVoteResponse; - fromPartial(_: DeepPartial): MsgVoteResponse; -}; -export declare const MsgVoteWeighted: { - encode(message: MsgVoteWeighted, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgVoteWeighted; - fromPartial(object: DeepPartial): MsgVoteWeighted; -}; -export declare const MsgVoteWeightedResponse: { - encode(_: MsgVoteWeightedResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgVoteWeightedResponse; - fromPartial(_: DeepPartial): MsgVoteWeightedResponse; -}; -export declare const MsgDeposit: { - encode(message: MsgDeposit, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgDeposit; - fromPartial(object: DeepPartial): MsgDeposit; -}; -export declare const MsgDepositResponse: { - encode(_: MsgDepositResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgDepositResponse; - fromPartial(_: DeepPartial): MsgDepositResponse; -}; diff --git a/packages/codegen/dist/cosmos/gov/v1/tx.rpc.msg.d.ts b/packages/codegen/dist/cosmos/gov/v1/tx.rpc.msg.d.ts deleted file mode 100644 index 4624c3f7..00000000 --- a/packages/codegen/dist/cosmos/gov/v1/tx.rpc.msg.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { MsgSubmitProposal, MsgSubmitProposalResponse, MsgExecLegacyContent, MsgExecLegacyContentResponse, MsgVote, MsgVoteResponse, MsgVoteWeighted, MsgVoteWeightedResponse, MsgDeposit, MsgDepositResponse } from "./tx"; -/** Msg defines the gov Msg service. */ -export interface Msg { - /** SubmitProposal defines a method to create new proposal given a content. */ - submitProposal(request: MsgSubmitProposal): Promise; - /** - * ExecLegacyContent defines a Msg to be in included in a MsgSubmitProposal - * to execute a legacy content-based proposal. - */ - execLegacyContent(request: MsgExecLegacyContent): Promise; - /** Vote defines a method to add a vote on a specific proposal. */ - vote(request: MsgVote): Promise; - /** VoteWeighted defines a method to add a weighted vote on a specific proposal. */ - voteWeighted(request: MsgVoteWeighted): Promise; - /** Deposit defines a method to add deposit on a specific proposal. */ - deposit(request: MsgDeposit): Promise; -} -export declare class MsgClientImpl implements Msg { - private readonly rpc; - constructor(rpc: Rpc); - submitProposal(request: MsgSubmitProposal): Promise; - execLegacyContent(request: MsgExecLegacyContent): Promise; - vote(request: MsgVote): Promise; - voteWeighted(request: MsgVoteWeighted): Promise; - deposit(request: MsgDeposit): Promise; -} diff --git a/packages/codegen/dist/cosmos/gov/v1beta1/genesis.d.ts b/packages/codegen/dist/cosmos/gov/v1beta1/genesis.d.ts deleted file mode 100644 index 7d690f57..00000000 --- a/packages/codegen/dist/cosmos/gov/v1beta1/genesis.d.ts +++ /dev/null @@ -1,36 +0,0 @@ -/// -import { Deposit, DepositSDKType, Vote, VoteSDKType, Proposal, ProposalSDKType, DepositParams, DepositParamsSDKType, VotingParams, VotingParamsSDKType, TallyParams, TallyParamsSDKType } from "./gov"; -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** GenesisState defines the gov module's genesis state. */ -export interface GenesisState { - /** starting_proposal_id is the ID of the starting proposal. */ - startingProposalId: Long; - /** deposits defines all the deposits present at genesis. */ - deposits: Deposit[]; - /** votes defines all the votes present at genesis. */ - votes: Vote[]; - /** proposals defines all the proposals present at genesis. */ - proposals: Proposal[]; - /** params defines all the paramaters of related to deposit. */ - depositParams?: DepositParams; - /** params defines all the paramaters of related to voting. */ - votingParams?: VotingParams; - /** params defines all the paramaters of related to tally. */ - tallyParams?: TallyParams; -} -/** GenesisState defines the gov module's genesis state. */ -export interface GenesisStateSDKType { - starting_proposal_id: Long; - deposits: DepositSDKType[]; - votes: VoteSDKType[]; - proposals: ProposalSDKType[]; - deposit_params?: DepositParamsSDKType; - voting_params?: VotingParamsSDKType; - tally_params?: TallyParamsSDKType; -} -export declare const GenesisState: { - encode(message: GenesisState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState; - fromPartial(object: DeepPartial): GenesisState; -}; diff --git a/packages/codegen/dist/cosmos/gov/v1beta1/gov.d.ts b/packages/codegen/dist/cosmos/gov/v1beta1/gov.d.ts deleted file mode 100644 index 6aff75ed..00000000 --- a/packages/codegen/dist/cosmos/gov/v1beta1/gov.d.ts +++ /dev/null @@ -1,270 +0,0 @@ -/// -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import { Duration, DurationSDKType } from "../../../google/protobuf/duration"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** VoteOption enumerates the valid vote options for a given governance proposal. */ -export declare enum VoteOption { - /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */ - VOTE_OPTION_UNSPECIFIED = 0, - /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */ - VOTE_OPTION_YES = 1, - /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */ - VOTE_OPTION_ABSTAIN = 2, - /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */ - VOTE_OPTION_NO = 3, - /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */ - VOTE_OPTION_NO_WITH_VETO = 4, - UNRECOGNIZED = -1 -} -export declare const VoteOptionSDKType: typeof VoteOption; -export declare function voteOptionFromJSON(object: any): VoteOption; -export declare function voteOptionToJSON(object: VoteOption): string; -/** ProposalStatus enumerates the valid statuses of a proposal. */ -export declare enum ProposalStatus { - /** PROPOSAL_STATUS_UNSPECIFIED - PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. */ - PROPOSAL_STATUS_UNSPECIFIED = 0, - /** - * PROPOSAL_STATUS_DEPOSIT_PERIOD - PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit - * period. - */ - PROPOSAL_STATUS_DEPOSIT_PERIOD = 1, - /** - * PROPOSAL_STATUS_VOTING_PERIOD - PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting - * period. - */ - PROPOSAL_STATUS_VOTING_PERIOD = 2, - /** - * PROPOSAL_STATUS_PASSED - PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has - * passed. - */ - PROPOSAL_STATUS_PASSED = 3, - /** - * PROPOSAL_STATUS_REJECTED - PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has - * been rejected. - */ - PROPOSAL_STATUS_REJECTED = 4, - /** - * PROPOSAL_STATUS_FAILED - PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has - * failed. - */ - PROPOSAL_STATUS_FAILED = 5, - UNRECOGNIZED = -1 -} -export declare const ProposalStatusSDKType: typeof ProposalStatus; -export declare function proposalStatusFromJSON(object: any): ProposalStatus; -export declare function proposalStatusToJSON(object: ProposalStatus): string; -/** - * WeightedVoteOption defines a unit of vote for vote split. - * - * Since: cosmos-sdk 0.43 - */ -export interface WeightedVoteOption { - option: VoteOption; - weight: string; -} -/** - * WeightedVoteOption defines a unit of vote for vote split. - * - * Since: cosmos-sdk 0.43 - */ -export interface WeightedVoteOptionSDKType { - option: VoteOption; - weight: string; -} -/** - * TextProposal defines a standard text proposal whose changes need to be - * manually updated in case of approval. - */ -export interface TextProposal { - title: string; - description: string; -} -/** - * TextProposal defines a standard text proposal whose changes need to be - * manually updated in case of approval. - */ -export interface TextProposalSDKType { - title: string; - description: string; -} -/** - * Deposit defines an amount deposited by an account address to an active - * proposal. - */ -export interface Deposit { - proposalId: Long; - depositor: string; - amount: Coin[]; -} -/** - * Deposit defines an amount deposited by an account address to an active - * proposal. - */ -export interface DepositSDKType { - proposal_id: Long; - depositor: string; - amount: CoinSDKType[]; -} -/** Proposal defines the core field members of a governance proposal. */ -export interface Proposal { - proposalId: Long; - content?: Any; - status: ProposalStatus; - /** - * 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. - */ - finalTallyResult?: TallyResult; - submitTime?: Date; - depositEndTime?: Date; - totalDeposit: Coin[]; - votingStartTime?: Date; - votingEndTime?: Date; -} -/** Proposal defines the core field members of a governance proposal. */ -export interface ProposalSDKType { - proposal_id: Long; - content?: AnySDKType; - status: ProposalStatus; - final_tally_result?: TallyResultSDKType; - submit_time?: Date; - deposit_end_time?: Date; - total_deposit: CoinSDKType[]; - voting_start_time?: Date; - voting_end_time?: Date; -} -/** TallyResult defines a standard tally for a governance proposal. */ -export interface TallyResult { - yes: string; - abstain: string; - no: string; - noWithVeto: string; -} -/** TallyResult defines a standard tally for a governance proposal. */ -export interface TallyResultSDKType { - yes: string; - abstain: string; - no: string; - no_with_veto: string; -} -/** - * Vote defines a vote on a governance proposal. - * A Vote consists of a proposal ID, the voter, and the vote option. - */ -export interface Vote { - proposalId: Long; - voter: string; - /** - * 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. - */ - /** @deprecated */ - option: VoteOption; - /** Since: cosmos-sdk 0.43 */ - options: WeightedVoteOption[]; -} -/** - * Vote defines a vote on a governance proposal. - * A Vote consists of a proposal ID, the voter, and the vote option. - */ -export interface VoteSDKType { - proposal_id: Long; - voter: string; - /** @deprecated */ - option: VoteOption; - options: WeightedVoteOptionSDKType[]; -} -/** DepositParams defines the params for deposits on governance proposals. */ -export interface DepositParams { - /** Minimum deposit for a proposal to enter voting period. */ - minDeposit: Coin[]; - /** - * Maximum period for Atom holders to deposit on a proposal. Initial value: 2 - * months. - */ - maxDepositPeriod?: Duration; -} -/** DepositParams defines the params for deposits on governance proposals. */ -export interface DepositParamsSDKType { - min_deposit: CoinSDKType[]; - max_deposit_period?: DurationSDKType; -} -/** VotingParams defines the params for voting on governance proposals. */ -export interface VotingParams { - /** Length of the voting period. */ - votingPeriod?: Duration; -} -/** VotingParams defines the params for voting on governance proposals. */ -export interface VotingParamsSDKType { - voting_period?: DurationSDKType; -} -/** TallyParams defines the params for tallying votes on governance proposals. */ -export interface TallyParams { - /** - * Minimum percentage of total stake needed to vote for a result to be - * considered valid. - */ - quorum: Uint8Array; - /** Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. */ - threshold: Uint8Array; - /** - * Minimum value of Veto votes to Total votes ratio for proposal to be - * vetoed. Default value: 1/3. - */ - vetoThreshold: Uint8Array; -} -/** TallyParams defines the params for tallying votes on governance proposals. */ -export interface TallyParamsSDKType { - quorum: Uint8Array; - threshold: Uint8Array; - veto_threshold: Uint8Array; -} -export declare const WeightedVoteOption: { - encode(message: WeightedVoteOption, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): WeightedVoteOption; - fromPartial(object: DeepPartial): WeightedVoteOption; -}; -export declare const TextProposal: { - encode(message: TextProposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): TextProposal; - fromPartial(object: DeepPartial): TextProposal; -}; -export declare const Deposit: { - encode(message: Deposit, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Deposit; - fromPartial(object: DeepPartial): Deposit; -}; -export declare const Proposal: { - encode(message: Proposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Proposal; - fromPartial(object: DeepPartial): Proposal; -}; -export declare const TallyResult: { - encode(message: TallyResult, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): TallyResult; - fromPartial(object: DeepPartial): TallyResult; -}; -export declare const Vote: { - encode(message: Vote, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Vote; - fromPartial(object: DeepPartial): Vote; -}; -export declare const DepositParams: { - encode(message: DepositParams, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): DepositParams; - fromPartial(object: DeepPartial): DepositParams; -}; -export declare const VotingParams: { - encode(message: VotingParams, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): VotingParams; - fromPartial(object: DeepPartial): VotingParams; -}; -export declare const TallyParams: { - encode(message: TallyParams, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): TallyParams; - fromPartial(object: DeepPartial): TallyParams; -}; diff --git a/packages/codegen/dist/cosmos/gov/v1beta1/query.d.ts b/packages/codegen/dist/cosmos/gov/v1beta1/query.d.ts deleted file mode 100644 index 05747b9a..00000000 --- a/packages/codegen/dist/cosmos/gov/v1beta1/query.d.ts +++ /dev/null @@ -1,271 +0,0 @@ -/// -import { ProposalStatus, Proposal, ProposalSDKType, Vote, VoteSDKType, VotingParams, VotingParamsSDKType, DepositParams, DepositParamsSDKType, TallyParams, TallyParamsSDKType, Deposit, DepositSDKType, TallyResult, TallyResultSDKType } from "./gov"; -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** QueryProposalRequest is the request type for the Query/Proposal RPC method. */ -export interface QueryProposalRequest { - /** proposal_id defines the unique id of the proposal. */ - proposalId: Long; -} -/** QueryProposalRequest is the request type for the Query/Proposal RPC method. */ -export interface QueryProposalRequestSDKType { - proposal_id: Long; -} -/** QueryProposalResponse is the response type for the Query/Proposal RPC method. */ -export interface QueryProposalResponse { - proposal?: Proposal; -} -/** QueryProposalResponse is the response type for the Query/Proposal RPC method. */ -export interface QueryProposalResponseSDKType { - proposal?: ProposalSDKType; -} -/** QueryProposalsRequest is the request type for the Query/Proposals RPC method. */ -export interface QueryProposalsRequest { - /** proposal_status defines the status of the proposals. */ - proposalStatus: ProposalStatus; - /** voter defines the voter address for the proposals. */ - voter: string; - /** depositor defines the deposit addresses from the proposals. */ - depositor: string; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** QueryProposalsRequest is the request type for the Query/Proposals RPC method. */ -export interface QueryProposalsRequestSDKType { - proposal_status: ProposalStatus; - voter: string; - depositor: string; - pagination?: PageRequestSDKType; -} -/** - * QueryProposalsResponse is the response type for the Query/Proposals RPC - * method. - */ -export interface QueryProposalsResponse { - proposals: Proposal[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** - * QueryProposalsResponse is the response type for the Query/Proposals RPC - * method. - */ -export interface QueryProposalsResponseSDKType { - proposals: ProposalSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryVoteRequest is the request type for the Query/Vote RPC method. */ -export interface QueryVoteRequest { - /** proposal_id defines the unique id of the proposal. */ - proposalId: Long; - /** voter defines the oter address for the proposals. */ - voter: string; -} -/** QueryVoteRequest is the request type for the Query/Vote RPC method. */ -export interface QueryVoteRequestSDKType { - proposal_id: Long; - voter: string; -} -/** QueryVoteResponse is the response type for the Query/Vote RPC method. */ -export interface QueryVoteResponse { - /** vote defined the queried vote. */ - vote?: Vote; -} -/** QueryVoteResponse is the response type for the Query/Vote RPC method. */ -export interface QueryVoteResponseSDKType { - vote?: VoteSDKType; -} -/** QueryVotesRequest is the request type for the Query/Votes RPC method. */ -export interface QueryVotesRequest { - /** proposal_id defines the unique id of the proposal. */ - proposalId: Long; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** QueryVotesRequest is the request type for the Query/Votes RPC method. */ -export interface QueryVotesRequestSDKType { - proposal_id: Long; - pagination?: PageRequestSDKType; -} -/** QueryVotesResponse is the response type for the Query/Votes RPC method. */ -export interface QueryVotesResponse { - /** votes defined the queried votes. */ - votes: Vote[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** QueryVotesResponse is the response type for the Query/Votes RPC method. */ -export interface QueryVotesResponseSDKType { - votes: VoteSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ -export interface QueryParamsRequest { - /** - * params_type defines which parameters to query for, can be one of "voting", - * "tallying" or "deposit". - */ - paramsType: string; -} -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ -export interface QueryParamsRequestSDKType { - params_type: string; -} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ -export interface QueryParamsResponse { - /** voting_params defines the parameters related to voting. */ - votingParams?: VotingParams; - /** deposit_params defines the parameters related to deposit. */ - depositParams?: DepositParams; - /** tally_params defines the parameters related to tally. */ - tallyParams?: TallyParams; -} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ -export interface QueryParamsResponseSDKType { - voting_params?: VotingParamsSDKType; - deposit_params?: DepositParamsSDKType; - tally_params?: TallyParamsSDKType; -} -/** QueryDepositRequest is the request type for the Query/Deposit RPC method. */ -export interface QueryDepositRequest { - /** proposal_id defines the unique id of the proposal. */ - proposalId: Long; - /** depositor defines the deposit addresses from the proposals. */ - depositor: string; -} -/** QueryDepositRequest is the request type for the Query/Deposit RPC method. */ -export interface QueryDepositRequestSDKType { - proposal_id: Long; - depositor: string; -} -/** QueryDepositResponse is the response type for the Query/Deposit RPC method. */ -export interface QueryDepositResponse { - /** deposit defines the requested deposit. */ - deposit?: Deposit; -} -/** QueryDepositResponse is the response type for the Query/Deposit RPC method. */ -export interface QueryDepositResponseSDKType { - deposit?: DepositSDKType; -} -/** QueryDepositsRequest is the request type for the Query/Deposits RPC method. */ -export interface QueryDepositsRequest { - /** proposal_id defines the unique id of the proposal. */ - proposalId: Long; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** QueryDepositsRequest is the request type for the Query/Deposits RPC method. */ -export interface QueryDepositsRequestSDKType { - proposal_id: Long; - pagination?: PageRequestSDKType; -} -/** QueryDepositsResponse is the response type for the Query/Deposits RPC method. */ -export interface QueryDepositsResponse { - deposits: Deposit[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** QueryDepositsResponse is the response type for the Query/Deposits RPC method. */ -export interface QueryDepositsResponseSDKType { - deposits: DepositSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryTallyResultRequest is the request type for the Query/Tally RPC method. */ -export interface QueryTallyResultRequest { - /** proposal_id defines the unique id of the proposal. */ - proposalId: Long; -} -/** QueryTallyResultRequest is the request type for the Query/Tally RPC method. */ -export interface QueryTallyResultRequestSDKType { - proposal_id: Long; -} -/** QueryTallyResultResponse is the response type for the Query/Tally RPC method. */ -export interface QueryTallyResultResponse { - /** tally defines the requested tally. */ - tally?: TallyResult; -} -/** QueryTallyResultResponse is the response type for the Query/Tally RPC method. */ -export interface QueryTallyResultResponseSDKType { - tally?: TallyResultSDKType; -} -export declare const QueryProposalRequest: { - encode(message: QueryProposalRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryProposalRequest; - fromPartial(object: DeepPartial): QueryProposalRequest; -}; -export declare const QueryProposalResponse: { - encode(message: QueryProposalResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryProposalResponse; - fromPartial(object: DeepPartial): QueryProposalResponse; -}; -export declare const QueryProposalsRequest: { - encode(message: QueryProposalsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryProposalsRequest; - fromPartial(object: DeepPartial): QueryProposalsRequest; -}; -export declare const QueryProposalsResponse: { - encode(message: QueryProposalsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryProposalsResponse; - fromPartial(object: DeepPartial): QueryProposalsResponse; -}; -export declare const QueryVoteRequest: { - encode(message: QueryVoteRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVoteRequest; - fromPartial(object: DeepPartial): QueryVoteRequest; -}; -export declare const QueryVoteResponse: { - encode(message: QueryVoteResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVoteResponse; - fromPartial(object: DeepPartial): QueryVoteResponse; -}; -export declare const QueryVotesRequest: { - encode(message: QueryVotesRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVotesRequest; - fromPartial(object: DeepPartial): QueryVotesRequest; -}; -export declare const QueryVotesResponse: { - encode(message: QueryVotesResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVotesResponse; - fromPartial(object: DeepPartial): QueryVotesResponse; -}; -export declare const QueryParamsRequest: { - encode(message: QueryParamsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest; - fromPartial(object: DeepPartial): QueryParamsRequest; -}; -export declare const QueryParamsResponse: { - encode(message: QueryParamsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse; - fromPartial(object: DeepPartial): QueryParamsResponse; -}; -export declare const QueryDepositRequest: { - encode(message: QueryDepositRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDepositRequest; - fromPartial(object: DeepPartial): QueryDepositRequest; -}; -export declare const QueryDepositResponse: { - encode(message: QueryDepositResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDepositResponse; - fromPartial(object: DeepPartial): QueryDepositResponse; -}; -export declare const QueryDepositsRequest: { - encode(message: QueryDepositsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDepositsRequest; - fromPartial(object: DeepPartial): QueryDepositsRequest; -}; -export declare const QueryDepositsResponse: { - encode(message: QueryDepositsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDepositsResponse; - fromPartial(object: DeepPartial): QueryDepositsResponse; -}; -export declare const QueryTallyResultRequest: { - encode(message: QueryTallyResultRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryTallyResultRequest; - fromPartial(object: DeepPartial): QueryTallyResultRequest; -}; -export declare const QueryTallyResultResponse: { - encode(message: QueryTallyResultResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryTallyResultResponse; - fromPartial(object: DeepPartial): QueryTallyResultResponse; -}; diff --git a/packages/codegen/dist/cosmos/gov/v1beta1/query.lcd.d.ts b/packages/codegen/dist/cosmos/gov/v1beta1/query.lcd.d.ts deleted file mode 100644 index 9ce44b6a..00000000 --- a/packages/codegen/dist/cosmos/gov/v1beta1/query.lcd.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { QueryProposalRequest, QueryProposalResponseSDKType, QueryProposalsRequest, QueryProposalsResponseSDKType, QueryVoteRequest, QueryVoteResponseSDKType, QueryVotesRequest, QueryVotesResponseSDKType, QueryParamsRequest, QueryParamsResponseSDKType, QueryDepositRequest, QueryDepositResponseSDKType, QueryDepositsRequest, QueryDepositsResponseSDKType, QueryTallyResultRequest, QueryTallyResultResponseSDKType } from "./query"; -export declare class LCDQueryClient { - req: LCDClient; - constructor({ requestClient }: { - requestClient: LCDClient; - }); - proposal(params: QueryProposalRequest): Promise; - proposals(params: QueryProposalsRequest): Promise; - vote(params: QueryVoteRequest): Promise; - votes(params: QueryVotesRequest): Promise; - params(params: QueryParamsRequest): Promise; - deposit(params: QueryDepositRequest): Promise; - deposits(params: QueryDepositsRequest): Promise; - tallyResult(params: QueryTallyResultRequest): Promise; -} diff --git a/packages/codegen/dist/cosmos/gov/v1beta1/query.rpc.Query.d.ts b/packages/codegen/dist/cosmos/gov/v1beta1/query.rpc.Query.d.ts deleted file mode 100644 index 8152da58..00000000 --- a/packages/codegen/dist/cosmos/gov/v1beta1/query.rpc.Query.d.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { QueryClient } from "@cosmjs/stargate"; -import { QueryProposalRequest, QueryProposalResponse, QueryProposalsRequest, QueryProposalsResponse, QueryVoteRequest, QueryVoteResponse, QueryVotesRequest, QueryVotesResponse, QueryParamsRequest, QueryParamsResponse, QueryDepositRequest, QueryDepositResponse, QueryDepositsRequest, QueryDepositsResponse, QueryTallyResultRequest, QueryTallyResultResponse } from "./query"; -/** Query defines the gRPC querier service for gov module */ -export interface Query { - /** Proposal queries proposal details based on ProposalID. */ - proposal(request: QueryProposalRequest): Promise; - /** Proposals queries all proposals based on given status. */ - proposals(request: QueryProposalsRequest): Promise; - /** Vote queries voted information based on proposalID, voterAddr. */ - vote(request: QueryVoteRequest): Promise; - /** Votes queries votes of a given proposal. */ - votes(request: QueryVotesRequest): Promise; - /** Params queries all parameters of the gov module. */ - params(request: QueryParamsRequest): Promise; - /** Deposit queries single deposit information based proposalID, depositAddr. */ - deposit(request: QueryDepositRequest): Promise; - /** Deposits queries all deposits of a single proposal. */ - deposits(request: QueryDepositsRequest): Promise; - /** TallyResult queries the tally of a proposal vote. */ - tallyResult(request: QueryTallyResultRequest): Promise; -} -export declare class QueryClientImpl implements Query { - private readonly rpc; - constructor(rpc: Rpc); - proposal(request: QueryProposalRequest): Promise; - proposals(request: QueryProposalsRequest): Promise; - vote(request: QueryVoteRequest): Promise; - votes(request: QueryVotesRequest): Promise; - params(request: QueryParamsRequest): Promise; - deposit(request: QueryDepositRequest): Promise; - deposits(request: QueryDepositsRequest): Promise; - tallyResult(request: QueryTallyResultRequest): Promise; -} -export declare const createRpcQueryExtension: (base: QueryClient) => { - proposal(request: QueryProposalRequest): Promise; - proposals(request: QueryProposalsRequest): Promise; - vote(request: QueryVoteRequest): Promise; - votes(request: QueryVotesRequest): Promise; - params(request: QueryParamsRequest): Promise; - deposit(request: QueryDepositRequest): Promise; - deposits(request: QueryDepositsRequest): Promise; - tallyResult(request: QueryTallyResultRequest): Promise; -}; diff --git a/packages/codegen/dist/cosmos/gov/v1beta1/tx.d.ts b/packages/codegen/dist/cosmos/gov/v1beta1/tx.d.ts deleted file mode 100644 index 588bcdb7..00000000 --- a/packages/codegen/dist/cosmos/gov/v1beta1/tx.d.ts +++ /dev/null @@ -1,142 +0,0 @@ -/// -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import { VoteOption, WeightedVoteOption, WeightedVoteOptionSDKType } from "./gov"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** - * MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary - * proposal Content. - */ -export interface MsgSubmitProposal { - content?: Any; - initialDeposit: Coin[]; - proposer: string; -} -/** - * MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary - * proposal Content. - */ -export interface MsgSubmitProposalSDKType { - content?: AnySDKType; - initial_deposit: CoinSDKType[]; - proposer: string; -} -/** MsgSubmitProposalResponse defines the Msg/SubmitProposal response type. */ -export interface MsgSubmitProposalResponse { - proposalId: Long; -} -/** MsgSubmitProposalResponse defines the Msg/SubmitProposal response type. */ -export interface MsgSubmitProposalResponseSDKType { - proposal_id: Long; -} -/** MsgVote defines a message to cast a vote. */ -export interface MsgVote { - proposalId: Long; - voter: string; - option: VoteOption; -} -/** MsgVote defines a message to cast a vote. */ -export interface MsgVoteSDKType { - proposal_id: Long; - voter: string; - option: VoteOption; -} -/** MsgVoteResponse defines the Msg/Vote response type. */ -export interface MsgVoteResponse { -} -/** MsgVoteResponse defines the Msg/Vote response type. */ -export interface MsgVoteResponseSDKType { -} -/** - * MsgVoteWeighted defines a message to cast a vote. - * - * Since: cosmos-sdk 0.43 - */ -export interface MsgVoteWeighted { - proposalId: Long; - voter: string; - options: WeightedVoteOption[]; -} -/** - * MsgVoteWeighted defines a message to cast a vote. - * - * Since: cosmos-sdk 0.43 - */ -export interface MsgVoteWeightedSDKType { - proposal_id: Long; - voter: string; - options: WeightedVoteOptionSDKType[]; -} -/** - * MsgVoteWeightedResponse defines the Msg/VoteWeighted response type. - * - * Since: cosmos-sdk 0.43 - */ -export interface MsgVoteWeightedResponse { -} -/** - * MsgVoteWeightedResponse defines the Msg/VoteWeighted response type. - * - * Since: cosmos-sdk 0.43 - */ -export interface MsgVoteWeightedResponseSDKType { -} -/** MsgDeposit defines a message to submit a deposit to an existing proposal. */ -export interface MsgDeposit { - proposalId: Long; - depositor: string; - amount: Coin[]; -} -/** MsgDeposit defines a message to submit a deposit to an existing proposal. */ -export interface MsgDepositSDKType { - proposal_id: Long; - depositor: string; - amount: CoinSDKType[]; -} -/** MsgDepositResponse defines the Msg/Deposit response type. */ -export interface MsgDepositResponse { -} -/** MsgDepositResponse defines the Msg/Deposit response type. */ -export interface MsgDepositResponseSDKType { -} -export declare const MsgSubmitProposal: { - encode(message: MsgSubmitProposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSubmitProposal; - fromPartial(object: DeepPartial): MsgSubmitProposal; -}; -export declare const MsgSubmitProposalResponse: { - encode(message: MsgSubmitProposalResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSubmitProposalResponse; - fromPartial(object: DeepPartial): MsgSubmitProposalResponse; -}; -export declare const MsgVote: { - encode(message: MsgVote, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgVote; - fromPartial(object: DeepPartial): MsgVote; -}; -export declare const MsgVoteResponse: { - encode(_: MsgVoteResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgVoteResponse; - fromPartial(_: DeepPartial): MsgVoteResponse; -}; -export declare const MsgVoteWeighted: { - encode(message: MsgVoteWeighted, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgVoteWeighted; - fromPartial(object: DeepPartial): MsgVoteWeighted; -}; -export declare const MsgVoteWeightedResponse: { - encode(_: MsgVoteWeightedResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgVoteWeightedResponse; - fromPartial(_: DeepPartial): MsgVoteWeightedResponse; -}; -export declare const MsgDeposit: { - encode(message: MsgDeposit, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgDeposit; - fromPartial(object: DeepPartial): MsgDeposit; -}; -export declare const MsgDepositResponse: { - encode(_: MsgDepositResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgDepositResponse; - fromPartial(_: DeepPartial): MsgDepositResponse; -}; diff --git a/packages/codegen/dist/cosmos/gov/v1beta1/tx.rpc.msg.d.ts b/packages/codegen/dist/cosmos/gov/v1beta1/tx.rpc.msg.d.ts deleted file mode 100644 index 0fc403bc..00000000 --- a/packages/codegen/dist/cosmos/gov/v1beta1/tx.rpc.msg.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { MsgSubmitProposal, MsgSubmitProposalResponse, MsgVote, MsgVoteResponse, MsgVoteWeighted, MsgVoteWeightedResponse, MsgDeposit, MsgDepositResponse } from "./tx"; -/** Msg defines the bank Msg service. */ -export interface Msg { - /** SubmitProposal defines a method to create new proposal given a content. */ - submitProposal(request: MsgSubmitProposal): Promise; - /** Vote defines a method to add a vote on a specific proposal. */ - vote(request: MsgVote): Promise; - /** - * VoteWeighted defines a method to add a weighted vote on a specific proposal. - * - * Since: cosmos-sdk 0.43 - */ - voteWeighted(request: MsgVoteWeighted): Promise; - /** Deposit defines a method to add deposit on a specific proposal. */ - deposit(request: MsgDeposit): Promise; -} -export declare class MsgClientImpl implements Msg { - private readonly rpc; - constructor(rpc: Rpc); - submitProposal(request: MsgSubmitProposal): Promise; - vote(request: MsgVote): Promise; - voteWeighted(request: MsgVoteWeighted): Promise; - deposit(request: MsgDeposit): Promise; -} diff --git a/packages/codegen/dist/cosmos/group/v1/events.d.ts b/packages/codegen/dist/cosmos/group/v1/events.d.ts deleted file mode 100644 index f22267e6..00000000 --- a/packages/codegen/dist/cosmos/group/v1/events.d.ts +++ /dev/null @@ -1,136 +0,0 @@ -/// -import { ProposalExecutorResult } from "./types"; -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** EventCreateGroup is an event emitted when a group is created. */ -export interface EventCreateGroup { - /** group_id is the unique ID of the group. */ - groupId: Long; -} -/** EventCreateGroup is an event emitted when a group is created. */ -export interface EventCreateGroupSDKType { - group_id: Long; -} -/** EventUpdateGroup is an event emitted when a group is updated. */ -export interface EventUpdateGroup { - /** group_id is the unique ID of the group. */ - groupId: Long; -} -/** EventUpdateGroup is an event emitted when a group is updated. */ -export interface EventUpdateGroupSDKType { - group_id: Long; -} -/** EventCreateGroupPolicy is an event emitted when a group policy is created. */ -export interface EventCreateGroupPolicy { - /** address is the account address of the group policy. */ - address: string; -} -/** EventCreateGroupPolicy is an event emitted when a group policy is created. */ -export interface EventCreateGroupPolicySDKType { - address: string; -} -/** EventUpdateGroupPolicy is an event emitted when a group policy is updated. */ -export interface EventUpdateGroupPolicy { - /** address is the account address of the group policy. */ - address: string; -} -/** EventUpdateGroupPolicy is an event emitted when a group policy is updated. */ -export interface EventUpdateGroupPolicySDKType { - address: string; -} -/** EventSubmitProposal is an event emitted when a proposal is created. */ -export interface EventSubmitProposal { - /** proposal_id is the unique ID of the proposal. */ - proposalId: Long; -} -/** EventSubmitProposal is an event emitted when a proposal is created. */ -export interface EventSubmitProposalSDKType { - proposal_id: Long; -} -/** EventWithdrawProposal is an event emitted when a proposal is withdrawn. */ -export interface EventWithdrawProposal { - /** proposal_id is the unique ID of the proposal. */ - proposalId: Long; -} -/** EventWithdrawProposal is an event emitted when a proposal is withdrawn. */ -export interface EventWithdrawProposalSDKType { - proposal_id: Long; -} -/** EventVote is an event emitted when a voter votes on a proposal. */ -export interface EventVote { - /** proposal_id is the unique ID of the proposal. */ - proposalId: Long; -} -/** EventVote is an event emitted when a voter votes on a proposal. */ -export interface EventVoteSDKType { - proposal_id: Long; -} -/** EventExec is an event emitted when a proposal is executed. */ -export interface EventExec { - /** proposal_id is the unique ID of the proposal. */ - proposalId: Long; - /** result is the proposal execution result. */ - result: ProposalExecutorResult; -} -/** EventExec is an event emitted when a proposal is executed. */ -export interface EventExecSDKType { - proposal_id: Long; - result: ProposalExecutorResult; -} -/** EventLeaveGroup is an event emitted when group member leaves the group. */ -export interface EventLeaveGroup { - /** group_id is the unique ID of the group. */ - groupId: Long; - /** address is the account address of the group member. */ - address: string; -} -/** EventLeaveGroup is an event emitted when group member leaves the group. */ -export interface EventLeaveGroupSDKType { - group_id: Long; - address: string; -} -export declare const EventCreateGroup: { - encode(message: EventCreateGroup, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): EventCreateGroup; - fromPartial(object: DeepPartial): EventCreateGroup; -}; -export declare const EventUpdateGroup: { - encode(message: EventUpdateGroup, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): EventUpdateGroup; - fromPartial(object: DeepPartial): EventUpdateGroup; -}; -export declare const EventCreateGroupPolicy: { - encode(message: EventCreateGroupPolicy, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): EventCreateGroupPolicy; - fromPartial(object: DeepPartial): EventCreateGroupPolicy; -}; -export declare const EventUpdateGroupPolicy: { - encode(message: EventUpdateGroupPolicy, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): EventUpdateGroupPolicy; - fromPartial(object: DeepPartial): EventUpdateGroupPolicy; -}; -export declare const EventSubmitProposal: { - encode(message: EventSubmitProposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): EventSubmitProposal; - fromPartial(object: DeepPartial): EventSubmitProposal; -}; -export declare const EventWithdrawProposal: { - encode(message: EventWithdrawProposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): EventWithdrawProposal; - fromPartial(object: DeepPartial): EventWithdrawProposal; -}; -export declare const EventVote: { - encode(message: EventVote, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): EventVote; - fromPartial(object: DeepPartial): EventVote; -}; -export declare const EventExec: { - encode(message: EventExec, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): EventExec; - fromPartial(object: DeepPartial): EventExec; -}; -export declare const EventLeaveGroup: { - encode(message: EventLeaveGroup, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): EventLeaveGroup; - fromPartial(object: DeepPartial): EventLeaveGroup; -}; diff --git a/packages/codegen/dist/cosmos/group/v1/genesis.d.ts b/packages/codegen/dist/cosmos/group/v1/genesis.d.ts deleted file mode 100644 index 0d6d55aa..00000000 --- a/packages/codegen/dist/cosmos/group/v1/genesis.d.ts +++ /dev/null @@ -1,48 +0,0 @@ -/// -import { GroupInfo, GroupInfoSDKType, GroupMember, GroupMemberSDKType, GroupPolicyInfo, GroupPolicyInfoSDKType, Proposal, ProposalSDKType, Vote, VoteSDKType } from "./types"; -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** GenesisState defines the group module's genesis state. */ -export interface GenesisState { - /** - * group_seq is the group table orm.Sequence, - * it is used to get the next group ID. - */ - groupSeq: Long; - /** groups is the list of groups info. */ - groups: GroupInfo[]; - /** group_members is the list of groups members. */ - groupMembers: GroupMember[]; - /** - * group_policy_seq is the group policy table orm.Sequence, - * it is used to generate the next group policy account address. - */ - groupPolicySeq: Long; - /** group_policies is the list of group policies info. */ - groupPolicies: GroupPolicyInfo[]; - /** - * proposal_seq is the proposal table orm.Sequence, - * it is used to get the next proposal ID. - */ - proposalSeq: Long; - /** proposals is the list of proposals. */ - proposals: Proposal[]; - /** votes is the list of votes. */ - votes: Vote[]; -} -/** GenesisState defines the group module's genesis state. */ -export interface GenesisStateSDKType { - group_seq: Long; - groups: GroupInfoSDKType[]; - group_members: GroupMemberSDKType[]; - group_policy_seq: Long; - group_policies: GroupPolicyInfoSDKType[]; - proposal_seq: Long; - proposals: ProposalSDKType[]; - votes: VoteSDKType[]; -} -export declare const GenesisState: { - encode(message: GenesisState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState; - fromPartial(object: DeepPartial): GenesisState; -}; diff --git a/packages/codegen/dist/cosmos/group/v1/query.d.ts b/packages/codegen/dist/cosmos/group/v1/query.d.ts deleted file mode 100644 index 8f539851..00000000 --- a/packages/codegen/dist/cosmos/group/v1/query.d.ts +++ /dev/null @@ -1,420 +0,0 @@ -/// -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { GroupInfo, GroupInfoSDKType, GroupPolicyInfo, GroupPolicyInfoSDKType, GroupMember, GroupMemberSDKType, Proposal, ProposalSDKType, Vote, VoteSDKType, TallyResult, TallyResultSDKType } from "./types"; -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** QueryGroupInfoRequest is the Query/GroupInfo request type. */ -export interface QueryGroupInfoRequest { - /** group_id is the unique ID of the group. */ - groupId: Long; -} -/** QueryGroupInfoRequest is the Query/GroupInfo request type. */ -export interface QueryGroupInfoRequestSDKType { - group_id: Long; -} -/** QueryGroupInfoResponse is the Query/GroupInfo response type. */ -export interface QueryGroupInfoResponse { - /** info is the GroupInfo for the group. */ - info?: GroupInfo; -} -/** QueryGroupInfoResponse is the Query/GroupInfo response type. */ -export interface QueryGroupInfoResponseSDKType { - info?: GroupInfoSDKType; -} -/** QueryGroupPolicyInfoRequest is the Query/GroupPolicyInfo request type. */ -export interface QueryGroupPolicyInfoRequest { - /** address is the account address of the group policy. */ - address: string; -} -/** QueryGroupPolicyInfoRequest is the Query/GroupPolicyInfo request type. */ -export interface QueryGroupPolicyInfoRequestSDKType { - address: string; -} -/** QueryGroupPolicyInfoResponse is the Query/GroupPolicyInfo response type. */ -export interface QueryGroupPolicyInfoResponse { - /** info is the GroupPolicyInfo for the group policy. */ - info?: GroupPolicyInfo; -} -/** QueryGroupPolicyInfoResponse is the Query/GroupPolicyInfo response type. */ -export interface QueryGroupPolicyInfoResponseSDKType { - info?: GroupPolicyInfoSDKType; -} -/** QueryGroupMembersRequest is the Query/GroupMembers request type. */ -export interface QueryGroupMembersRequest { - /** group_id is the unique ID of the group. */ - groupId: Long; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** QueryGroupMembersRequest is the Query/GroupMembers request type. */ -export interface QueryGroupMembersRequestSDKType { - group_id: Long; - pagination?: PageRequestSDKType; -} -/** QueryGroupMembersResponse is the Query/GroupMembersResponse response type. */ -export interface QueryGroupMembersResponse { - /** members are the members of the group with given group_id. */ - members: GroupMember[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** QueryGroupMembersResponse is the Query/GroupMembersResponse response type. */ -export interface QueryGroupMembersResponseSDKType { - members: GroupMemberSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryGroupsByAdminRequest is the Query/GroupsByAdmin request type. */ -export interface QueryGroupsByAdminRequest { - /** admin is the account address of a group's admin. */ - admin: string; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** QueryGroupsByAdminRequest is the Query/GroupsByAdmin request type. */ -export interface QueryGroupsByAdminRequestSDKType { - admin: string; - pagination?: PageRequestSDKType; -} -/** QueryGroupsByAdminResponse is the Query/GroupsByAdminResponse response type. */ -export interface QueryGroupsByAdminResponse { - /** groups are the groups info with the provided admin. */ - groups: GroupInfo[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** QueryGroupsByAdminResponse is the Query/GroupsByAdminResponse response type. */ -export interface QueryGroupsByAdminResponseSDKType { - groups: GroupInfoSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryGroupPoliciesByGroupRequest is the Query/GroupPoliciesByGroup request type. */ -export interface QueryGroupPoliciesByGroupRequest { - /** group_id is the unique ID of the group policy's group. */ - groupId: Long; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** QueryGroupPoliciesByGroupRequest is the Query/GroupPoliciesByGroup request type. */ -export interface QueryGroupPoliciesByGroupRequestSDKType { - group_id: Long; - pagination?: PageRequestSDKType; -} -/** QueryGroupPoliciesByGroupResponse is the Query/GroupPoliciesByGroup response type. */ -export interface QueryGroupPoliciesByGroupResponse { - /** group_policies are the group policies info associated with the provided group. */ - groupPolicies: GroupPolicyInfo[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** QueryGroupPoliciesByGroupResponse is the Query/GroupPoliciesByGroup response type. */ -export interface QueryGroupPoliciesByGroupResponseSDKType { - group_policies: GroupPolicyInfoSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryGroupPoliciesByAdminRequest is the Query/GroupPoliciesByAdmin request type. */ -export interface QueryGroupPoliciesByAdminRequest { - /** admin is the admin address of the group policy. */ - admin: string; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** QueryGroupPoliciesByAdminRequest is the Query/GroupPoliciesByAdmin request type. */ -export interface QueryGroupPoliciesByAdminRequestSDKType { - admin: string; - pagination?: PageRequestSDKType; -} -/** QueryGroupPoliciesByAdminResponse is the Query/GroupPoliciesByAdmin response type. */ -export interface QueryGroupPoliciesByAdminResponse { - /** group_policies are the group policies info with provided admin. */ - groupPolicies: GroupPolicyInfo[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** QueryGroupPoliciesByAdminResponse is the Query/GroupPoliciesByAdmin response type. */ -export interface QueryGroupPoliciesByAdminResponseSDKType { - group_policies: GroupPolicyInfoSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryProposalRequest is the Query/Proposal request type. */ -export interface QueryProposalRequest { - /** proposal_id is the unique ID of a proposal. */ - proposalId: Long; -} -/** QueryProposalRequest is the Query/Proposal request type. */ -export interface QueryProposalRequestSDKType { - proposal_id: Long; -} -/** QueryProposalResponse is the Query/Proposal response type. */ -export interface QueryProposalResponse { - /** proposal is the proposal info. */ - proposal?: Proposal; -} -/** QueryProposalResponse is the Query/Proposal response type. */ -export interface QueryProposalResponseSDKType { - proposal?: ProposalSDKType; -} -/** QueryProposalsByGroupPolicyRequest is the Query/ProposalByGroupPolicy request type. */ -export interface QueryProposalsByGroupPolicyRequest { - /** address is the account address of the group policy related to proposals. */ - address: string; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** QueryProposalsByGroupPolicyRequest is the Query/ProposalByGroupPolicy request type. */ -export interface QueryProposalsByGroupPolicyRequestSDKType { - address: string; - pagination?: PageRequestSDKType; -} -/** QueryProposalsByGroupPolicyResponse is the Query/ProposalByGroupPolicy response type. */ -export interface QueryProposalsByGroupPolicyResponse { - /** proposals are the proposals with given group policy. */ - proposals: Proposal[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** QueryProposalsByGroupPolicyResponse is the Query/ProposalByGroupPolicy response type. */ -export interface QueryProposalsByGroupPolicyResponseSDKType { - proposals: ProposalSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryVoteByProposalVoterRequest is the Query/VoteByProposalVoter request type. */ -export interface QueryVoteByProposalVoterRequest { - /** proposal_id is the unique ID of a proposal. */ - proposalId: Long; - /** voter is a proposal voter account address. */ - voter: string; -} -/** QueryVoteByProposalVoterRequest is the Query/VoteByProposalVoter request type. */ -export interface QueryVoteByProposalVoterRequestSDKType { - proposal_id: Long; - voter: string; -} -/** QueryVoteByProposalVoterResponse is the Query/VoteByProposalVoter response type. */ -export interface QueryVoteByProposalVoterResponse { - /** vote is the vote with given proposal_id and voter. */ - vote?: Vote; -} -/** QueryVoteByProposalVoterResponse is the Query/VoteByProposalVoter response type. */ -export interface QueryVoteByProposalVoterResponseSDKType { - vote?: VoteSDKType; -} -/** QueryVotesByProposalRequest is the Query/VotesByProposal request type. */ -export interface QueryVotesByProposalRequest { - /** proposal_id is the unique ID of a proposal. */ - proposalId: Long; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** QueryVotesByProposalRequest is the Query/VotesByProposal request type. */ -export interface QueryVotesByProposalRequestSDKType { - proposal_id: Long; - pagination?: PageRequestSDKType; -} -/** QueryVotesByProposalResponse is the Query/VotesByProposal response type. */ -export interface QueryVotesByProposalResponse { - /** votes are the list of votes for given proposal_id. */ - votes: Vote[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** QueryVotesByProposalResponse is the Query/VotesByProposal response type. */ -export interface QueryVotesByProposalResponseSDKType { - votes: VoteSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryVotesByVoterRequest is the Query/VotesByVoter request type. */ -export interface QueryVotesByVoterRequest { - /** voter is a proposal voter account address. */ - voter: string; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** QueryVotesByVoterRequest is the Query/VotesByVoter request type. */ -export interface QueryVotesByVoterRequestSDKType { - voter: string; - pagination?: PageRequestSDKType; -} -/** QueryVotesByVoterResponse is the Query/VotesByVoter response type. */ -export interface QueryVotesByVoterResponse { - /** votes are the list of votes by given voter. */ - votes: Vote[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** QueryVotesByVoterResponse is the Query/VotesByVoter response type. */ -export interface QueryVotesByVoterResponseSDKType { - votes: VoteSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryGroupsByMemberRequest is the Query/GroupsByMember request type. */ -export interface QueryGroupsByMemberRequest { - /** address is the group member address. */ - address: string; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** QueryGroupsByMemberRequest is the Query/GroupsByMember request type. */ -export interface QueryGroupsByMemberRequestSDKType { - address: string; - pagination?: PageRequestSDKType; -} -/** QueryGroupsByMemberResponse is the Query/GroupsByMember response type. */ -export interface QueryGroupsByMemberResponse { - /** groups are the groups info with the provided group member. */ - groups: GroupInfo[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** QueryGroupsByMemberResponse is the Query/GroupsByMember response type. */ -export interface QueryGroupsByMemberResponseSDKType { - groups: GroupInfoSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryTallyResultRequest is the Query/TallyResult request type. */ -export interface QueryTallyResultRequest { - /** proposal_id is the unique id of a proposal. */ - proposalId: Long; -} -/** QueryTallyResultRequest is the Query/TallyResult request type. */ -export interface QueryTallyResultRequestSDKType { - proposal_id: Long; -} -/** QueryTallyResultResponse is the Query/TallyResult response type. */ -export interface QueryTallyResultResponse { - /** tally defines the requested tally. */ - tally?: TallyResult; -} -/** QueryTallyResultResponse is the Query/TallyResult response type. */ -export interface QueryTallyResultResponseSDKType { - tally?: TallyResultSDKType; -} -export declare const QueryGroupInfoRequest: { - encode(message: QueryGroupInfoRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupInfoRequest; - fromPartial(object: DeepPartial): QueryGroupInfoRequest; -}; -export declare const QueryGroupInfoResponse: { - encode(message: QueryGroupInfoResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupInfoResponse; - fromPartial(object: DeepPartial): QueryGroupInfoResponse; -}; -export declare const QueryGroupPolicyInfoRequest: { - encode(message: QueryGroupPolicyInfoRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupPolicyInfoRequest; - fromPartial(object: DeepPartial): QueryGroupPolicyInfoRequest; -}; -export declare const QueryGroupPolicyInfoResponse: { - encode(message: QueryGroupPolicyInfoResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupPolicyInfoResponse; - fromPartial(object: DeepPartial): QueryGroupPolicyInfoResponse; -}; -export declare const QueryGroupMembersRequest: { - encode(message: QueryGroupMembersRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupMembersRequest; - fromPartial(object: DeepPartial): QueryGroupMembersRequest; -}; -export declare const QueryGroupMembersResponse: { - encode(message: QueryGroupMembersResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupMembersResponse; - fromPartial(object: DeepPartial): QueryGroupMembersResponse; -}; -export declare const QueryGroupsByAdminRequest: { - encode(message: QueryGroupsByAdminRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupsByAdminRequest; - fromPartial(object: DeepPartial): QueryGroupsByAdminRequest; -}; -export declare const QueryGroupsByAdminResponse: { - encode(message: QueryGroupsByAdminResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupsByAdminResponse; - fromPartial(object: DeepPartial): QueryGroupsByAdminResponse; -}; -export declare const QueryGroupPoliciesByGroupRequest: { - encode(message: QueryGroupPoliciesByGroupRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupPoliciesByGroupRequest; - fromPartial(object: DeepPartial): QueryGroupPoliciesByGroupRequest; -}; -export declare const QueryGroupPoliciesByGroupResponse: { - encode(message: QueryGroupPoliciesByGroupResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupPoliciesByGroupResponse; - fromPartial(object: DeepPartial): QueryGroupPoliciesByGroupResponse; -}; -export declare const QueryGroupPoliciesByAdminRequest: { - encode(message: QueryGroupPoliciesByAdminRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupPoliciesByAdminRequest; - fromPartial(object: DeepPartial): QueryGroupPoliciesByAdminRequest; -}; -export declare const QueryGroupPoliciesByAdminResponse: { - encode(message: QueryGroupPoliciesByAdminResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupPoliciesByAdminResponse; - fromPartial(object: DeepPartial): QueryGroupPoliciesByAdminResponse; -}; -export declare const QueryProposalRequest: { - encode(message: QueryProposalRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryProposalRequest; - fromPartial(object: DeepPartial): QueryProposalRequest; -}; -export declare const QueryProposalResponse: { - encode(message: QueryProposalResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryProposalResponse; - fromPartial(object: DeepPartial): QueryProposalResponse; -}; -export declare const QueryProposalsByGroupPolicyRequest: { - encode(message: QueryProposalsByGroupPolicyRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryProposalsByGroupPolicyRequest; - fromPartial(object: DeepPartial): QueryProposalsByGroupPolicyRequest; -}; -export declare const QueryProposalsByGroupPolicyResponse: { - encode(message: QueryProposalsByGroupPolicyResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryProposalsByGroupPolicyResponse; - fromPartial(object: DeepPartial): QueryProposalsByGroupPolicyResponse; -}; -export declare const QueryVoteByProposalVoterRequest: { - encode(message: QueryVoteByProposalVoterRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVoteByProposalVoterRequest; - fromPartial(object: DeepPartial): QueryVoteByProposalVoterRequest; -}; -export declare const QueryVoteByProposalVoterResponse: { - encode(message: QueryVoteByProposalVoterResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVoteByProposalVoterResponse; - fromPartial(object: DeepPartial): QueryVoteByProposalVoterResponse; -}; -export declare const QueryVotesByProposalRequest: { - encode(message: QueryVotesByProposalRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVotesByProposalRequest; - fromPartial(object: DeepPartial): QueryVotesByProposalRequest; -}; -export declare const QueryVotesByProposalResponse: { - encode(message: QueryVotesByProposalResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVotesByProposalResponse; - fromPartial(object: DeepPartial): QueryVotesByProposalResponse; -}; -export declare const QueryVotesByVoterRequest: { - encode(message: QueryVotesByVoterRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVotesByVoterRequest; - fromPartial(object: DeepPartial): QueryVotesByVoterRequest; -}; -export declare const QueryVotesByVoterResponse: { - encode(message: QueryVotesByVoterResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVotesByVoterResponse; - fromPartial(object: DeepPartial): QueryVotesByVoterResponse; -}; -export declare const QueryGroupsByMemberRequest: { - encode(message: QueryGroupsByMemberRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupsByMemberRequest; - fromPartial(object: DeepPartial): QueryGroupsByMemberRequest; -}; -export declare const QueryGroupsByMemberResponse: { - encode(message: QueryGroupsByMemberResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupsByMemberResponse; - fromPartial(object: DeepPartial): QueryGroupsByMemberResponse; -}; -export declare const QueryTallyResultRequest: { - encode(message: QueryTallyResultRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryTallyResultRequest; - fromPartial(object: DeepPartial): QueryTallyResultRequest; -}; -export declare const QueryTallyResultResponse: { - encode(message: QueryTallyResultResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryTallyResultResponse; - fromPartial(object: DeepPartial): QueryTallyResultResponse; -}; diff --git a/packages/codegen/dist/cosmos/group/v1/query.lcd.d.ts b/packages/codegen/dist/cosmos/group/v1/query.lcd.d.ts deleted file mode 100644 index eb9b1ffe..00000000 --- a/packages/codegen/dist/cosmos/group/v1/query.lcd.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { QueryGroupInfoRequest, QueryGroupInfoResponseSDKType, QueryGroupPolicyInfoRequest, QueryGroupPolicyInfoResponseSDKType, QueryGroupMembersRequest, QueryGroupMembersResponseSDKType, QueryGroupsByAdminRequest, QueryGroupsByAdminResponseSDKType, QueryGroupPoliciesByGroupRequest, QueryGroupPoliciesByGroupResponseSDKType, QueryGroupPoliciesByAdminRequest, QueryGroupPoliciesByAdminResponseSDKType, QueryProposalRequest, QueryProposalResponseSDKType, QueryProposalsByGroupPolicyRequest, QueryProposalsByGroupPolicyResponseSDKType, QueryVoteByProposalVoterRequest, QueryVoteByProposalVoterResponseSDKType, QueryVotesByProposalRequest, QueryVotesByProposalResponseSDKType, QueryVotesByVoterRequest, QueryVotesByVoterResponseSDKType, QueryGroupsByMemberRequest, QueryGroupsByMemberResponseSDKType, QueryTallyResultRequest, QueryTallyResultResponseSDKType } from "./query"; -export declare class LCDQueryClient { - req: LCDClient; - constructor({ requestClient }: { - requestClient: LCDClient; - }); - groupInfo(params: QueryGroupInfoRequest): Promise; - groupPolicyInfo(params: QueryGroupPolicyInfoRequest): Promise; - groupMembers(params: QueryGroupMembersRequest): Promise; - groupsByAdmin(params: QueryGroupsByAdminRequest): Promise; - groupPoliciesByGroup(params: QueryGroupPoliciesByGroupRequest): Promise; - groupPoliciesByAdmin(params: QueryGroupPoliciesByAdminRequest): Promise; - proposal(params: QueryProposalRequest): Promise; - proposalsByGroupPolicy(params: QueryProposalsByGroupPolicyRequest): Promise; - voteByProposalVoter(params: QueryVoteByProposalVoterRequest): Promise; - votesByProposal(params: QueryVotesByProposalRequest): Promise; - votesByVoter(params: QueryVotesByVoterRequest): Promise; - groupsByMember(params: QueryGroupsByMemberRequest): Promise; - tallyResult(params: QueryTallyResultRequest): Promise; -} diff --git a/packages/codegen/dist/cosmos/group/v1/query.rpc.Query.d.ts b/packages/codegen/dist/cosmos/group/v1/query.rpc.Query.d.ts deleted file mode 100644 index 2be3770a..00000000 --- a/packages/codegen/dist/cosmos/group/v1/query.rpc.Query.d.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { QueryClient } from "@cosmjs/stargate"; -import { QueryGroupInfoRequest, QueryGroupInfoResponse, QueryGroupPolicyInfoRequest, QueryGroupPolicyInfoResponse, QueryGroupMembersRequest, QueryGroupMembersResponse, QueryGroupsByAdminRequest, QueryGroupsByAdminResponse, QueryGroupPoliciesByGroupRequest, QueryGroupPoliciesByGroupResponse, QueryGroupPoliciesByAdminRequest, QueryGroupPoliciesByAdminResponse, QueryProposalRequest, QueryProposalResponse, QueryProposalsByGroupPolicyRequest, QueryProposalsByGroupPolicyResponse, QueryVoteByProposalVoterRequest, QueryVoteByProposalVoterResponse, QueryVotesByProposalRequest, QueryVotesByProposalResponse, QueryVotesByVoterRequest, QueryVotesByVoterResponse, QueryGroupsByMemberRequest, QueryGroupsByMemberResponse, QueryTallyResultRequest, QueryTallyResultResponse } from "./query"; -/** Query is the cosmos.group.v1 Query service. */ -export interface Query { - /** GroupInfo queries group info based on group id. */ - groupInfo(request: QueryGroupInfoRequest): Promise; - /** GroupPolicyInfo queries group policy info based on account address of group policy. */ - groupPolicyInfo(request: QueryGroupPolicyInfoRequest): Promise; - /** GroupMembers queries members of a group */ - groupMembers(request: QueryGroupMembersRequest): Promise; - /** GroupsByAdmin queries groups by admin address. */ - groupsByAdmin(request: QueryGroupsByAdminRequest): Promise; - /** GroupPoliciesByGroup queries group policies by group id. */ - groupPoliciesByGroup(request: QueryGroupPoliciesByGroupRequest): Promise; - /** GroupsByAdmin queries group policies by admin address. */ - groupPoliciesByAdmin(request: QueryGroupPoliciesByAdminRequest): Promise; - /** Proposal queries a proposal based on proposal id. */ - proposal(request: QueryProposalRequest): Promise; - /** ProposalsByGroupPolicy queries proposals based on account address of group policy. */ - proposalsByGroupPolicy(request: QueryProposalsByGroupPolicyRequest): Promise; - /** VoteByProposalVoter queries a vote by proposal id and voter. */ - voteByProposalVoter(request: QueryVoteByProposalVoterRequest): Promise; - /** VotesByProposal queries a vote by proposal. */ - votesByProposal(request: QueryVotesByProposalRequest): Promise; - /** VotesByVoter queries a vote by voter. */ - votesByVoter(request: QueryVotesByVoterRequest): Promise; - /** GroupsByMember queries groups by member address. */ - groupsByMember(request: QueryGroupsByMemberRequest): Promise; - /** TallyResult queries the tally of a proposal votes. */ - tallyResult(request: QueryTallyResultRequest): Promise; -} -export declare class QueryClientImpl implements Query { - private readonly rpc; - constructor(rpc: Rpc); - groupInfo(request: QueryGroupInfoRequest): Promise; - groupPolicyInfo(request: QueryGroupPolicyInfoRequest): Promise; - groupMembers(request: QueryGroupMembersRequest): Promise; - groupsByAdmin(request: QueryGroupsByAdminRequest): Promise; - groupPoliciesByGroup(request: QueryGroupPoliciesByGroupRequest): Promise; - groupPoliciesByAdmin(request: QueryGroupPoliciesByAdminRequest): Promise; - proposal(request: QueryProposalRequest): Promise; - proposalsByGroupPolicy(request: QueryProposalsByGroupPolicyRequest): Promise; - voteByProposalVoter(request: QueryVoteByProposalVoterRequest): Promise; - votesByProposal(request: QueryVotesByProposalRequest): Promise; - votesByVoter(request: QueryVotesByVoterRequest): Promise; - groupsByMember(request: QueryGroupsByMemberRequest): Promise; - tallyResult(request: QueryTallyResultRequest): Promise; -} -export declare const createRpcQueryExtension: (base: QueryClient) => { - groupInfo(request: QueryGroupInfoRequest): Promise; - groupPolicyInfo(request: QueryGroupPolicyInfoRequest): Promise; - groupMembers(request: QueryGroupMembersRequest): Promise; - groupsByAdmin(request: QueryGroupsByAdminRequest): Promise; - groupPoliciesByGroup(request: QueryGroupPoliciesByGroupRequest): Promise; - groupPoliciesByAdmin(request: QueryGroupPoliciesByAdminRequest): Promise; - proposal(request: QueryProposalRequest): Promise; - proposalsByGroupPolicy(request: QueryProposalsByGroupPolicyRequest): Promise; - voteByProposalVoter(request: QueryVoteByProposalVoterRequest): Promise; - votesByProposal(request: QueryVotesByProposalRequest): Promise; - votesByVoter(request: QueryVotesByVoterRequest): Promise; - groupsByMember(request: QueryGroupsByMemberRequest): Promise; - tallyResult(request: QueryTallyResultRequest): Promise; -}; diff --git a/packages/codegen/dist/cosmos/group/v1/tx.d.ts b/packages/codegen/dist/cosmos/group/v1/tx.d.ts deleted file mode 100644 index 325a8757..00000000 --- a/packages/codegen/dist/cosmos/group/v1/tx.d.ts +++ /dev/null @@ -1,501 +0,0 @@ -/// -import { Member, MemberSDKType, VoteOption } from "./types"; -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** Exec defines modes of execution of a proposal on creation or on new vote. */ -export declare enum Exec { - /** - * EXEC_UNSPECIFIED - An empty value means that there should be a separate - * MsgExec request for the proposal to execute. - */ - EXEC_UNSPECIFIED = 0, - /** - * EXEC_TRY - 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, - UNRECOGNIZED = -1 -} -export declare const ExecSDKType: typeof Exec; -export declare function execFromJSON(object: any): Exec; -export declare function execToJSON(object: Exec): string; -/** MsgCreateGroup is the Msg/CreateGroup request type. */ -export interface MsgCreateGroup { - /** admin is the account address of the group admin. */ - admin: string; - /** members defines the group members. */ - members: Member[]; - /** metadata is any arbitrary metadata to attached to the group. */ - metadata: string; -} -/** MsgCreateGroup is the Msg/CreateGroup request type. */ -export interface MsgCreateGroupSDKType { - admin: string; - members: MemberSDKType[]; - metadata: string; -} -/** MsgCreateGroupResponse is the Msg/CreateGroup response type. */ -export interface MsgCreateGroupResponse { - /** group_id is the unique ID of the newly created group. */ - groupId: Long; -} -/** MsgCreateGroupResponse is the Msg/CreateGroup response type. */ -export interface MsgCreateGroupResponseSDKType { - group_id: Long; -} -/** MsgUpdateGroupMembers is the Msg/UpdateGroupMembers request type. */ -export interface MsgUpdateGroupMembers { - /** admin is the account address of the group admin. */ - admin: string; - /** group_id is the unique ID of the group. */ - groupId: Long; - /** - * member_updates is the list of members to update, - * set weight to 0 to remove a member. - */ - memberUpdates: Member[]; -} -/** MsgUpdateGroupMembers is the Msg/UpdateGroupMembers request type. */ -export interface MsgUpdateGroupMembersSDKType { - admin: string; - group_id: Long; - member_updates: MemberSDKType[]; -} -/** MsgUpdateGroupMembersResponse is the Msg/UpdateGroupMembers response type. */ -export interface MsgUpdateGroupMembersResponse { -} -/** MsgUpdateGroupMembersResponse is the Msg/UpdateGroupMembers response type. */ -export interface MsgUpdateGroupMembersResponseSDKType { -} -/** MsgUpdateGroupAdmin is the Msg/UpdateGroupAdmin request type. */ -export interface MsgUpdateGroupAdmin { - /** admin is the current account address of the group admin. */ - admin: string; - /** group_id is the unique ID of the group. */ - groupId: Long; - /** new_admin is the group new admin account address. */ - newAdmin: string; -} -/** MsgUpdateGroupAdmin is the Msg/UpdateGroupAdmin request type. */ -export interface MsgUpdateGroupAdminSDKType { - admin: string; - group_id: Long; - new_admin: string; -} -/** MsgUpdateGroupAdminResponse is the Msg/UpdateGroupAdmin response type. */ -export interface MsgUpdateGroupAdminResponse { -} -/** MsgUpdateGroupAdminResponse is the Msg/UpdateGroupAdmin response type. */ -export interface MsgUpdateGroupAdminResponseSDKType { -} -/** MsgUpdateGroupMetadata is the Msg/UpdateGroupMetadata request type. */ -export interface MsgUpdateGroupMetadata { - /** admin is the account address of the group admin. */ - admin: string; - /** group_id is the unique ID of the group. */ - groupId: Long; - /** metadata is the updated group's metadata. */ - metadata: string; -} -/** MsgUpdateGroupMetadata is the Msg/UpdateGroupMetadata request type. */ -export interface MsgUpdateGroupMetadataSDKType { - admin: string; - group_id: Long; - metadata: string; -} -/** MsgUpdateGroupMetadataResponse is the Msg/UpdateGroupMetadata response type. */ -export interface MsgUpdateGroupMetadataResponse { -} -/** MsgUpdateGroupMetadataResponse is the Msg/UpdateGroupMetadata response type. */ -export interface MsgUpdateGroupMetadataResponseSDKType { -} -/** MsgCreateGroupPolicy is the Msg/CreateGroupPolicy request type. */ -export interface MsgCreateGroupPolicy { - /** admin is the account address of the group admin. */ - admin: string; - /** group_id is the unique ID of the group. */ - groupId: Long; - /** metadata is any arbitrary metadata attached to the group policy. */ - metadata: string; - /** decision_policy specifies the group policy's decision policy. */ - decisionPolicy?: Any; -} -/** MsgCreateGroupPolicy is the Msg/CreateGroupPolicy request type. */ -export interface MsgCreateGroupPolicySDKType { - admin: string; - group_id: Long; - metadata: string; - decision_policy?: AnySDKType; -} -/** MsgCreateGroupPolicyResponse is the Msg/CreateGroupPolicy response type. */ -export interface MsgCreateGroupPolicyResponse { - /** address is the account address of the newly created group policy. */ - address: string; -} -/** MsgCreateGroupPolicyResponse is the Msg/CreateGroupPolicy response type. */ -export interface MsgCreateGroupPolicyResponseSDKType { - address: string; -} -/** MsgUpdateGroupPolicyAdmin is the Msg/UpdateGroupPolicyAdmin request type. */ -export interface MsgUpdateGroupPolicyAdmin { - /** admin is the account address of the group admin. */ - admin: string; - /** address is the account address of the group policy. */ - address: string; - /** new_admin is the new group policy admin. */ - newAdmin: string; -} -/** MsgUpdateGroupPolicyAdmin is the Msg/UpdateGroupPolicyAdmin request type. */ -export interface MsgUpdateGroupPolicyAdminSDKType { - admin: string; - address: string; - new_admin: string; -} -/** MsgCreateGroupWithPolicy is the Msg/CreateGroupWithPolicy request type. */ -export interface MsgCreateGroupWithPolicy { - /** admin is the account address of the group and group policy admin. */ - admin: string; - /** members defines the group members. */ - members: Member[]; - /** group_metadata is any arbitrary metadata attached to the group. */ - groupMetadata: string; - /** group_policy_metadata is any arbitrary metadata attached to the group policy. */ - groupPolicyMetadata: string; - /** 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. */ - groupPolicyAsAdmin: boolean; - /** decision_policy specifies the group policy's decision policy. */ - decisionPolicy?: Any; -} -/** MsgCreateGroupWithPolicy is the Msg/CreateGroupWithPolicy request type. */ -export interface MsgCreateGroupWithPolicySDKType { - admin: string; - members: MemberSDKType[]; - group_metadata: string; - group_policy_metadata: string; - group_policy_as_admin: boolean; - decision_policy?: AnySDKType; -} -/** MsgCreateGroupWithPolicyResponse is the Msg/CreateGroupWithPolicy response type. */ -export interface MsgCreateGroupWithPolicyResponse { - /** group_id is the unique ID of the newly created group with policy. */ - groupId: Long; - /** group_policy_address is the account address of the newly created group policy. */ - groupPolicyAddress: string; -} -/** MsgCreateGroupWithPolicyResponse is the Msg/CreateGroupWithPolicy response type. */ -export interface MsgCreateGroupWithPolicyResponseSDKType { - group_id: Long; - group_policy_address: string; -} -/** MsgUpdateGroupPolicyAdminResponse is the Msg/UpdateGroupPolicyAdmin response type. */ -export interface MsgUpdateGroupPolicyAdminResponse { -} -/** MsgUpdateGroupPolicyAdminResponse is the Msg/UpdateGroupPolicyAdmin response type. */ -export interface MsgUpdateGroupPolicyAdminResponseSDKType { -} -/** MsgUpdateGroupPolicyDecisionPolicy is the Msg/UpdateGroupPolicyDecisionPolicy request type. */ -export interface MsgUpdateGroupPolicyDecisionPolicy { - /** admin is the account address of the group admin. */ - admin: string; - /** address is the account address of group policy. */ - address: string; - /** decision_policy is the updated group policy's decision policy. */ - decisionPolicy?: Any; -} -/** MsgUpdateGroupPolicyDecisionPolicy is the Msg/UpdateGroupPolicyDecisionPolicy request type. */ -export interface MsgUpdateGroupPolicyDecisionPolicySDKType { - admin: string; - address: string; - decision_policy?: AnySDKType; -} -/** MsgUpdateGroupPolicyDecisionPolicyResponse is the Msg/UpdateGroupPolicyDecisionPolicy response type. */ -export interface MsgUpdateGroupPolicyDecisionPolicyResponse { -} -/** MsgUpdateGroupPolicyDecisionPolicyResponse is the Msg/UpdateGroupPolicyDecisionPolicy response type. */ -export interface MsgUpdateGroupPolicyDecisionPolicyResponseSDKType { -} -/** MsgUpdateGroupPolicyMetadata is the Msg/UpdateGroupPolicyMetadata request type. */ -export interface MsgUpdateGroupPolicyMetadata { - /** admin is the account address of the group admin. */ - admin: string; - /** address is the account address of group policy. */ - address: string; - /** metadata is the updated group policy metadata. */ - metadata: string; -} -/** MsgUpdateGroupPolicyMetadata is the Msg/UpdateGroupPolicyMetadata request type. */ -export interface MsgUpdateGroupPolicyMetadataSDKType { - admin: string; - address: string; - metadata: string; -} -/** MsgUpdateGroupPolicyMetadataResponse is the Msg/UpdateGroupPolicyMetadata response type. */ -export interface MsgUpdateGroupPolicyMetadataResponse { -} -/** MsgUpdateGroupPolicyMetadataResponse is the Msg/UpdateGroupPolicyMetadata response type. */ -export interface MsgUpdateGroupPolicyMetadataResponseSDKType { -} -/** MsgSubmitProposal is the Msg/SubmitProposal request type. */ -export interface MsgSubmitProposal { - /** address is the account address of group policy. */ - address: string; - /** - * proposers are the account addresses of the proposers. - * Proposers signatures will be counted as yes votes. - */ - proposers: string[]; - /** metadata is any arbitrary metadata to attached to the proposal. */ - metadata: string; - /** messages is a list of `sdk.Msg`s that will be executed if the proposal passes. */ - messages: Any[]; - /** - * 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; -} -/** MsgSubmitProposal is the Msg/SubmitProposal request type. */ -export interface MsgSubmitProposalSDKType { - address: string; - proposers: string[]; - metadata: string; - messages: AnySDKType[]; - exec: Exec; -} -/** MsgSubmitProposalResponse is the Msg/SubmitProposal response type. */ -export interface MsgSubmitProposalResponse { - /** proposal is the unique ID of the proposal. */ - proposalId: Long; -} -/** MsgSubmitProposalResponse is the Msg/SubmitProposal response type. */ -export interface MsgSubmitProposalResponseSDKType { - proposal_id: Long; -} -/** MsgWithdrawProposal is the Msg/WithdrawProposal request type. */ -export interface MsgWithdrawProposal { - /** proposal is the unique ID of the proposal. */ - proposalId: Long; - /** address is the admin of the group policy or one of the proposer of the proposal. */ - address: string; -} -/** MsgWithdrawProposal is the Msg/WithdrawProposal request type. */ -export interface MsgWithdrawProposalSDKType { - proposal_id: Long; - address: string; -} -/** MsgWithdrawProposalResponse is the Msg/WithdrawProposal response type. */ -export interface MsgWithdrawProposalResponse { -} -/** MsgWithdrawProposalResponse is the Msg/WithdrawProposal response type. */ -export interface MsgWithdrawProposalResponseSDKType { -} -/** MsgVote is the Msg/Vote request type. */ -export interface MsgVote { - /** proposal is the unique ID of the proposal. */ - proposalId: Long; - /** voter is the voter account address. */ - voter: string; - /** option is the voter's choice on the proposal. */ - option: VoteOption; - /** metadata is any arbitrary metadata to attached to the vote. */ - metadata: string; - /** - * exec defines whether the proposal should be executed - * immediately after voting or not. - */ - exec: Exec; -} -/** MsgVote is the Msg/Vote request type. */ -export interface MsgVoteSDKType { - proposal_id: Long; - voter: string; - option: VoteOption; - metadata: string; - exec: Exec; -} -/** MsgVoteResponse is the Msg/Vote response type. */ -export interface MsgVoteResponse { -} -/** MsgVoteResponse is the Msg/Vote response type. */ -export interface MsgVoteResponseSDKType { -} -/** MsgExec is the Msg/Exec request type. */ -export interface MsgExec { - /** proposal is the unique ID of the proposal. */ - proposalId: Long; - /** signer is the account address used to execute the proposal. */ - signer: string; -} -/** MsgExec is the Msg/Exec request type. */ -export interface MsgExecSDKType { - proposal_id: Long; - signer: string; -} -/** MsgExecResponse is the Msg/Exec request type. */ -export interface MsgExecResponse { -} -/** MsgExecResponse is the Msg/Exec request type. */ -export interface MsgExecResponseSDKType { -} -/** MsgLeaveGroup is the Msg/LeaveGroup request type. */ -export interface MsgLeaveGroup { - /** address is the account address of the group member. */ - address: string; - /** group_id is the unique ID of the group. */ - groupId: Long; -} -/** MsgLeaveGroup is the Msg/LeaveGroup request type. */ -export interface MsgLeaveGroupSDKType { - address: string; - group_id: Long; -} -/** MsgLeaveGroupResponse is the Msg/LeaveGroup response type. */ -export interface MsgLeaveGroupResponse { -} -/** MsgLeaveGroupResponse is the Msg/LeaveGroup response type. */ -export interface MsgLeaveGroupResponseSDKType { -} -export declare const MsgCreateGroup: { - encode(message: MsgCreateGroup, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateGroup; - fromPartial(object: DeepPartial): MsgCreateGroup; -}; -export declare const MsgCreateGroupResponse: { - encode(message: MsgCreateGroupResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateGroupResponse; - fromPartial(object: DeepPartial): MsgCreateGroupResponse; -}; -export declare const MsgUpdateGroupMembers: { - encode(message: MsgUpdateGroupMembers, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateGroupMembers; - fromPartial(object: DeepPartial): MsgUpdateGroupMembers; -}; -export declare const MsgUpdateGroupMembersResponse: { - encode(_: MsgUpdateGroupMembersResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateGroupMembersResponse; - fromPartial(_: DeepPartial): MsgUpdateGroupMembersResponse; -}; -export declare const MsgUpdateGroupAdmin: { - encode(message: MsgUpdateGroupAdmin, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateGroupAdmin; - fromPartial(object: DeepPartial): MsgUpdateGroupAdmin; -}; -export declare const MsgUpdateGroupAdminResponse: { - encode(_: MsgUpdateGroupAdminResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateGroupAdminResponse; - fromPartial(_: DeepPartial): MsgUpdateGroupAdminResponse; -}; -export declare const MsgUpdateGroupMetadata: { - encode(message: MsgUpdateGroupMetadata, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateGroupMetadata; - fromPartial(object: DeepPartial): MsgUpdateGroupMetadata; -}; -export declare const MsgUpdateGroupMetadataResponse: { - encode(_: MsgUpdateGroupMetadataResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateGroupMetadataResponse; - fromPartial(_: DeepPartial): MsgUpdateGroupMetadataResponse; -}; -export declare const MsgCreateGroupPolicy: { - encode(message: MsgCreateGroupPolicy, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateGroupPolicy; - fromPartial(object: DeepPartial): MsgCreateGroupPolicy; -}; -export declare const MsgCreateGroupPolicyResponse: { - encode(message: MsgCreateGroupPolicyResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateGroupPolicyResponse; - fromPartial(object: DeepPartial): MsgCreateGroupPolicyResponse; -}; -export declare const MsgUpdateGroupPolicyAdmin: { - encode(message: MsgUpdateGroupPolicyAdmin, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateGroupPolicyAdmin; - fromPartial(object: DeepPartial): MsgUpdateGroupPolicyAdmin; -}; -export declare const MsgCreateGroupWithPolicy: { - encode(message: MsgCreateGroupWithPolicy, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateGroupWithPolicy; - fromPartial(object: DeepPartial): MsgCreateGroupWithPolicy; -}; -export declare const MsgCreateGroupWithPolicyResponse: { - encode(message: MsgCreateGroupWithPolicyResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateGroupWithPolicyResponse; - fromPartial(object: DeepPartial): MsgCreateGroupWithPolicyResponse; -}; -export declare const MsgUpdateGroupPolicyAdminResponse: { - encode(_: MsgUpdateGroupPolicyAdminResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateGroupPolicyAdminResponse; - fromPartial(_: DeepPartial): MsgUpdateGroupPolicyAdminResponse; -}; -export declare const MsgUpdateGroupPolicyDecisionPolicy: { - encode(message: MsgUpdateGroupPolicyDecisionPolicy, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateGroupPolicyDecisionPolicy; - fromPartial(object: DeepPartial): MsgUpdateGroupPolicyDecisionPolicy; -}; -export declare const MsgUpdateGroupPolicyDecisionPolicyResponse: { - encode(_: MsgUpdateGroupPolicyDecisionPolicyResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateGroupPolicyDecisionPolicyResponse; - fromPartial(_: DeepPartial): MsgUpdateGroupPolicyDecisionPolicyResponse; -}; -export declare const MsgUpdateGroupPolicyMetadata: { - encode(message: MsgUpdateGroupPolicyMetadata, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateGroupPolicyMetadata; - fromPartial(object: DeepPartial): MsgUpdateGroupPolicyMetadata; -}; -export declare const MsgUpdateGroupPolicyMetadataResponse: { - encode(_: MsgUpdateGroupPolicyMetadataResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateGroupPolicyMetadataResponse; - fromPartial(_: DeepPartial): MsgUpdateGroupPolicyMetadataResponse; -}; -export declare const MsgSubmitProposal: { - encode(message: MsgSubmitProposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSubmitProposal; - fromPartial(object: DeepPartial): MsgSubmitProposal; -}; -export declare const MsgSubmitProposalResponse: { - encode(message: MsgSubmitProposalResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSubmitProposalResponse; - fromPartial(object: DeepPartial): MsgSubmitProposalResponse; -}; -export declare const MsgWithdrawProposal: { - encode(message: MsgWithdrawProposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgWithdrawProposal; - fromPartial(object: DeepPartial): MsgWithdrawProposal; -}; -export declare const MsgWithdrawProposalResponse: { - encode(_: MsgWithdrawProposalResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgWithdrawProposalResponse; - fromPartial(_: DeepPartial): MsgWithdrawProposalResponse; -}; -export declare const MsgVote: { - encode(message: MsgVote, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgVote; - fromPartial(object: DeepPartial): MsgVote; -}; -export declare const MsgVoteResponse: { - encode(_: MsgVoteResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgVoteResponse; - fromPartial(_: DeepPartial): MsgVoteResponse; -}; -export declare const MsgExec: { - encode(message: MsgExec, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgExec; - fromPartial(object: DeepPartial): MsgExec; -}; -export declare const MsgExecResponse: { - encode(_: MsgExecResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgExecResponse; - fromPartial(_: DeepPartial): MsgExecResponse; -}; -export declare const MsgLeaveGroup: { - encode(message: MsgLeaveGroup, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgLeaveGroup; - fromPartial(object: DeepPartial): MsgLeaveGroup; -}; -export declare const MsgLeaveGroupResponse: { - encode(_: MsgLeaveGroupResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgLeaveGroupResponse; - fromPartial(_: DeepPartial): MsgLeaveGroupResponse; -}; diff --git a/packages/codegen/dist/cosmos/group/v1/tx.rpc.msg.d.ts b/packages/codegen/dist/cosmos/group/v1/tx.rpc.msg.d.ts deleted file mode 100644 index 35c3e2a9..00000000 --- a/packages/codegen/dist/cosmos/group/v1/tx.rpc.msg.d.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { MsgCreateGroup, MsgCreateGroupResponse, MsgUpdateGroupMembers, MsgUpdateGroupMembersResponse, MsgUpdateGroupAdmin, MsgUpdateGroupAdminResponse, MsgUpdateGroupMetadata, MsgUpdateGroupMetadataResponse, MsgCreateGroupPolicy, MsgCreateGroupPolicyResponse, MsgCreateGroupWithPolicy, MsgCreateGroupWithPolicyResponse, MsgUpdateGroupPolicyAdmin, MsgUpdateGroupPolicyAdminResponse, MsgUpdateGroupPolicyDecisionPolicy, MsgUpdateGroupPolicyDecisionPolicyResponse, MsgUpdateGroupPolicyMetadata, MsgUpdateGroupPolicyMetadataResponse, MsgSubmitProposal, MsgSubmitProposalResponse, MsgWithdrawProposal, MsgWithdrawProposalResponse, MsgVote, MsgVoteResponse, MsgExec, MsgExecResponse, MsgLeaveGroup, MsgLeaveGroupResponse } from "./tx"; -/** Msg is the cosmos.group.v1 Msg service. */ -export interface Msg { - /** CreateGroup creates a new group with an admin account address, a list of members and some optional metadata. */ - createGroup(request: MsgCreateGroup): Promise; - /** UpdateGroupMembers updates the group members with given group id and admin address. */ - updateGroupMembers(request: MsgUpdateGroupMembers): Promise; - /** UpdateGroupAdmin updates the group admin with given group id and previous admin address. */ - updateGroupAdmin(request: MsgUpdateGroupAdmin): Promise; - /** UpdateGroupMetadata updates the group metadata with given group id and admin address. */ - updateGroupMetadata(request: MsgUpdateGroupMetadata): Promise; - /** CreateGroupPolicy creates a new group policy using given DecisionPolicy. */ - createGroupPolicy(request: MsgCreateGroupPolicy): Promise; - /** CreateGroupWithPolicy creates a new group with policy. */ - createGroupWithPolicy(request: MsgCreateGroupWithPolicy): Promise; - /** UpdateGroupPolicyAdmin updates a group policy admin. */ - updateGroupPolicyAdmin(request: MsgUpdateGroupPolicyAdmin): Promise; - /** UpdateGroupPolicyDecisionPolicy allows a group policy's decision policy to be updated. */ - updateGroupPolicyDecisionPolicy(request: MsgUpdateGroupPolicyDecisionPolicy): Promise; - /** UpdateGroupPolicyMetadata updates a group policy metadata. */ - updateGroupPolicyMetadata(request: MsgUpdateGroupPolicyMetadata): Promise; - /** SubmitProposal submits a new proposal. */ - submitProposal(request: MsgSubmitProposal): Promise; - /** WithdrawProposal aborts a proposal. */ - withdrawProposal(request: MsgWithdrawProposal): Promise; - /** Vote allows a voter to vote on a proposal. */ - vote(request: MsgVote): Promise; - /** Exec executes a proposal. */ - exec(request: MsgExec): Promise; - /** LeaveGroup allows a group member to leave the group. */ - leaveGroup(request: MsgLeaveGroup): Promise; -} -export declare class MsgClientImpl implements Msg { - private readonly rpc; - constructor(rpc: Rpc); - createGroup(request: MsgCreateGroup): Promise; - updateGroupMembers(request: MsgUpdateGroupMembers): Promise; - updateGroupAdmin(request: MsgUpdateGroupAdmin): Promise; - updateGroupMetadata(request: MsgUpdateGroupMetadata): Promise; - createGroupPolicy(request: MsgCreateGroupPolicy): Promise; - createGroupWithPolicy(request: MsgCreateGroupWithPolicy): Promise; - updateGroupPolicyAdmin(request: MsgUpdateGroupPolicyAdmin): Promise; - updateGroupPolicyDecisionPolicy(request: MsgUpdateGroupPolicyDecisionPolicy): Promise; - updateGroupPolicyMetadata(request: MsgUpdateGroupPolicyMetadata): Promise; - submitProposal(request: MsgSubmitProposal): Promise; - withdrawProposal(request: MsgWithdrawProposal): Promise; - vote(request: MsgVote): Promise; - exec(request: MsgExec): Promise; - leaveGroup(request: MsgLeaveGroup): Promise; -} diff --git a/packages/codegen/dist/cosmos/group/v1/types.d.ts b/packages/codegen/dist/cosmos/group/v1/types.d.ts deleted file mode 100644 index 236c0278..00000000 --- a/packages/codegen/dist/cosmos/group/v1/types.d.ts +++ /dev/null @@ -1,396 +0,0 @@ -/// -import { Duration, DurationSDKType } from "../../../google/protobuf/duration"; -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** VoteOption enumerates the valid vote options for a given proposal. */ -export declare enum VoteOption { - /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */ - VOTE_OPTION_UNSPECIFIED = 0, - /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */ - VOTE_OPTION_YES = 1, - /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */ - VOTE_OPTION_ABSTAIN = 2, - /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */ - VOTE_OPTION_NO = 3, - /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */ - VOTE_OPTION_NO_WITH_VETO = 4, - UNRECOGNIZED = -1 -} -export declare const VoteOptionSDKType: typeof VoteOption; -export declare function voteOptionFromJSON(object: any): VoteOption; -export declare function voteOptionToJSON(object: VoteOption): string; -/** ProposalStatus defines proposal statuses. */ -export declare enum ProposalStatus { - /** PROPOSAL_STATUS_UNSPECIFIED - An empty value is invalid and not allowed. */ - PROPOSAL_STATUS_UNSPECIFIED = 0, - /** PROPOSAL_STATUS_SUBMITTED - Initial status of a proposal when persisted. */ - PROPOSAL_STATUS_SUBMITTED = 1, - /** PROPOSAL_STATUS_CLOSED - Final status of a proposal when the final tally was executed. */ - PROPOSAL_STATUS_CLOSED = 2, - /** PROPOSAL_STATUS_ABORTED - Final status of a proposal when the group was modified before the final tally. */ - PROPOSAL_STATUS_ABORTED = 3, - /** - * PROPOSAL_STATUS_WITHDRAWN - A proposal can be deleted before the voting start time by the owner. When this happens the final status - * is Withdrawn. - */ - PROPOSAL_STATUS_WITHDRAWN = 4, - UNRECOGNIZED = -1 -} -export declare const ProposalStatusSDKType: typeof ProposalStatus; -export declare function proposalStatusFromJSON(object: any): ProposalStatus; -export declare function proposalStatusToJSON(object: ProposalStatus): string; -/** ProposalResult defines types of proposal results. */ -export declare enum ProposalResult { - /** PROPOSAL_RESULT_UNSPECIFIED - An empty value is invalid and not allowed */ - PROPOSAL_RESULT_UNSPECIFIED = 0, - /** PROPOSAL_RESULT_UNFINALIZED - Until a final tally has happened the status is unfinalized */ - PROPOSAL_RESULT_UNFINALIZED = 1, - /** PROPOSAL_RESULT_ACCEPTED - Final result of the tally */ - PROPOSAL_RESULT_ACCEPTED = 2, - /** PROPOSAL_RESULT_REJECTED - Final result of the tally */ - PROPOSAL_RESULT_REJECTED = 3, - UNRECOGNIZED = -1 -} -export declare const ProposalResultSDKType: typeof ProposalResult; -export declare function proposalResultFromJSON(object: any): ProposalResult; -export declare function proposalResultToJSON(object: ProposalResult): string; -/** ProposalExecutorResult defines types of proposal executor results. */ -export declare enum ProposalExecutorResult { - /** PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED - An empty value is not allowed. */ - PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED = 0, - /** PROPOSAL_EXECUTOR_RESULT_NOT_RUN - We have not yet run the executor. */ - PROPOSAL_EXECUTOR_RESULT_NOT_RUN = 1, - /** PROPOSAL_EXECUTOR_RESULT_SUCCESS - The executor was successful and proposed action updated state. */ - PROPOSAL_EXECUTOR_RESULT_SUCCESS = 2, - /** PROPOSAL_EXECUTOR_RESULT_FAILURE - The executor returned an error and proposed action didn't update state. */ - PROPOSAL_EXECUTOR_RESULT_FAILURE = 3, - UNRECOGNIZED = -1 -} -export declare const ProposalExecutorResultSDKType: typeof ProposalExecutorResult; -export declare function proposalExecutorResultFromJSON(object: any): ProposalExecutorResult; -export declare function proposalExecutorResultToJSON(object: ProposalExecutorResult): string; -/** - * Member represents a group member with an account address, - * non-zero weight and metadata. - */ -export interface Member { - /** address is the member's account address. */ - address: string; - /** weight is the member's voting weight that should be greater than 0. */ - weight: string; - /** metadata is any arbitrary metadata to attached to the member. */ - metadata: string; - /** added_at is a timestamp specifying when a member was added. */ - addedAt?: Date; -} -/** - * Member represents a group member with an account address, - * non-zero weight and metadata. - */ -export interface MemberSDKType { - address: string; - weight: string; - metadata: string; - added_at?: Date; -} -/** Members defines a repeated slice of Member objects. */ -export interface Members { - /** members is the list of members. */ - members: Member[]; -} -/** Members defines a repeated slice of Member objects. */ -export interface MembersSDKType { - members: MemberSDKType[]; -} -/** ThresholdDecisionPolicy implements the DecisionPolicy interface */ -export interface ThresholdDecisionPolicy { - /** threshold is the minimum weighted sum of yes votes that must be met or exceeded for a proposal to succeed. */ - threshold: string; - /** windows defines the different windows for voting and execution. */ - windows?: DecisionPolicyWindows; -} -/** ThresholdDecisionPolicy implements the DecisionPolicy interface */ -export interface ThresholdDecisionPolicySDKType { - threshold: string; - windows?: DecisionPolicyWindowsSDKType; -} -/** PercentageDecisionPolicy implements the DecisionPolicy interface */ -export interface PercentageDecisionPolicy { - /** percentage is the minimum percentage the weighted sum of yes votes must meet for a proposal to succeed. */ - percentage: string; - /** windows defines the different windows for voting and execution. */ - windows?: DecisionPolicyWindows; -} -/** PercentageDecisionPolicy implements the DecisionPolicy interface */ -export interface PercentageDecisionPolicySDKType { - percentage: string; - windows?: DecisionPolicyWindowsSDKType; -} -/** DecisionPolicyWindows defines the different windows for voting and execution. */ -export interface 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. - */ - votingPeriod?: Duration; - /** - * 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. - */ - minExecutionPeriod?: Duration; -} -/** DecisionPolicyWindows defines the different windows for voting and execution. */ -export interface DecisionPolicyWindowsSDKType { - voting_period?: DurationSDKType; - min_execution_period?: DurationSDKType; -} -/** GroupInfo represents the high-level on-chain information for a group. */ -export interface GroupInfo { - /** id is the unique ID of the group. */ - id: Long; - /** admin is the account address of the group's admin. */ - admin: string; - /** metadata is any arbitrary metadata to attached to the group. */ - metadata: string; - /** - * 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 - */ - version: Long; - /** total_weight is the sum of the group members' weights. */ - totalWeight: string; - /** created_at is a timestamp specifying when a group was created. */ - createdAt?: Date; -} -/** GroupInfo represents the high-level on-chain information for a group. */ -export interface GroupInfoSDKType { - id: Long; - admin: string; - metadata: string; - version: Long; - total_weight: string; - created_at?: Date; -} -/** GroupMember represents the relationship between a group and a member. */ -export interface GroupMember { - /** group_id is the unique ID of the group. */ - groupId: Long; - /** member is the member data. */ - member?: Member; -} -/** GroupMember represents the relationship between a group and a member. */ -export interface GroupMemberSDKType { - group_id: Long; - member?: MemberSDKType; -} -/** GroupPolicyInfo represents the high-level on-chain information for a group policy. */ -export interface GroupPolicyInfo { - /** address is the account address of group policy. */ - address: string; - /** group_id is the unique ID of the group. */ - groupId: Long; - /** admin is the account address of the group admin. */ - admin: string; - /** metadata is any arbitrary metadata to attached to the group policy. */ - metadata: string; - /** - * version is used to track changes to a group's GroupPolicyInfo structure that - * would create a different result on a running proposal. - */ - version: Long; - /** decision_policy specifies the group policy's decision policy. */ - decisionPolicy?: Any; - /** created_at is a timestamp specifying when a group policy was created. */ - createdAt?: Date; -} -/** GroupPolicyInfo represents the high-level on-chain information for a group policy. */ -export interface GroupPolicyInfoSDKType { - address: string; - group_id: Long; - admin: string; - metadata: string; - version: Long; - decision_policy?: AnySDKType; - created_at?: Date; -} -/** - * 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. - */ -export interface Proposal { - /** id is the unique id of the proposal. */ - id: Long; - /** address is the account address of group policy. */ - address: string; - /** metadata is any arbitrary metadata to attached to the proposal. */ - metadata: string; - /** proposers are the account addresses of the proposers. */ - proposers: string[]; - /** submit_time is a timestamp specifying when a proposal was submitted. */ - submitTime?: Date; - /** - * group_version tracks the version of the group that this proposal corresponds to. - * When group membership is changed, existing proposals from previous group versions will become invalid. - */ - groupVersion: Long; - /** - * group_policy_version tracks the version of the group policy that this proposal corresponds to. - * When a decision policy is changed, existing proposals from previous policy versions will become invalid. - */ - groupPolicyVersion: Long; - /** status represents the high level position in the life cycle of the proposal. Initial value is Submitted. */ - status: ProposalStatus; - /** - * result is the final result based on the votes and election rule. Initial value is unfinalized. - * The result is persisted so that clients can always rely on this state and not have to replicate the logic. - */ - result: ProposalResult; - /** - * final_tally_result contains the sums of all weighted votes for this - * proposal for each vote option, after tallying. When querying a proposal - * via gRPC, this field is not populated until the proposal's voting period - * has ended. - */ - finalTallyResult?: TallyResult; - /** - * voting_period_end is the timestamp before which voting must be done. - * Unless a successfull 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`, as well - * as `status` and `result` fields will be accordingly updated. - */ - votingPeriodEnd?: Date; - /** executor_result is the final result based on the votes and election rule. Initial value is NotRun. */ - executorResult: ProposalExecutorResult; - /** messages is a list of Msgs that will be executed if the proposal passes. */ - messages: Any[]; -} -/** - * 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. - */ -export interface ProposalSDKType { - id: Long; - address: string; - metadata: string; - proposers: string[]; - submit_time?: Date; - group_version: Long; - group_policy_version: Long; - status: ProposalStatus; - result: ProposalResult; - final_tally_result?: TallyResultSDKType; - voting_period_end?: Date; - executor_result: ProposalExecutorResult; - messages: AnySDKType[]; -} -/** TallyResult represents the sum of weighted votes for each vote option. */ -export interface TallyResult { - /** yes_count is the weighted sum of yes votes. */ - yesCount: string; - /** abstain_count is the weighted sum of abstainers. */ - abstainCount: string; - /** no is the weighted sum of no votes. */ - noCount: string; - /** no_with_veto_count is the weighted sum of veto. */ - noWithVetoCount: string; -} -/** TallyResult represents the sum of weighted votes for each vote option. */ -export interface TallyResultSDKType { - yes_count: string; - abstain_count: string; - no_count: string; - no_with_veto_count: string; -} -/** Vote represents a vote for a proposal. */ -export interface Vote { - /** proposal is the unique ID of the proposal. */ - proposalId: Long; - /** voter is the account address of the voter. */ - voter: string; - /** option is the voter's choice on the proposal. */ - option: VoteOption; - /** metadata is any arbitrary metadata to attached to the vote. */ - metadata: string; - /** submit_time is the timestamp when the vote was submitted. */ - submitTime?: Date; -} -/** Vote represents a vote for a proposal. */ -export interface VoteSDKType { - proposal_id: Long; - voter: string; - option: VoteOption; - metadata: string; - submit_time?: Date; -} -export declare const Member: { - encode(message: Member, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Member; - fromPartial(object: DeepPartial): Member; -}; -export declare const Members: { - encode(message: Members, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Members; - fromPartial(object: DeepPartial): Members; -}; -export declare const ThresholdDecisionPolicy: { - encode(message: ThresholdDecisionPolicy, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ThresholdDecisionPolicy; - fromPartial(object: DeepPartial): ThresholdDecisionPolicy; -}; -export declare const PercentageDecisionPolicy: { - encode(message: PercentageDecisionPolicy, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PercentageDecisionPolicy; - fromPartial(object: DeepPartial): PercentageDecisionPolicy; -}; -export declare const DecisionPolicyWindows: { - encode(message: DecisionPolicyWindows, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): DecisionPolicyWindows; - fromPartial(object: DeepPartial): DecisionPolicyWindows; -}; -export declare const GroupInfo: { - encode(message: GroupInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GroupInfo; - fromPartial(object: DeepPartial): GroupInfo; -}; -export declare const GroupMember: { - encode(message: GroupMember, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GroupMember; - fromPartial(object: DeepPartial): GroupMember; -}; -export declare const GroupPolicyInfo: { - encode(message: GroupPolicyInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GroupPolicyInfo; - fromPartial(object: DeepPartial): GroupPolicyInfo; -}; -export declare const Proposal: { - encode(message: Proposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Proposal; - fromPartial(object: DeepPartial): Proposal; -}; -export declare const TallyResult: { - encode(message: TallyResult, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): TallyResult; - fromPartial(object: DeepPartial): TallyResult; -}; -export declare const Vote: { - encode(message: Vote, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Vote; - fromPartial(object: DeepPartial): Vote; -}; diff --git a/packages/codegen/dist/cosmos/lcd.d.ts b/packages/codegen/dist/cosmos/lcd.d.ts deleted file mode 100644 index 9be4d8ca..00000000 --- a/packages/codegen/dist/cosmos/lcd.d.ts +++ /dev/null @@ -1,57 +0,0 @@ -export declare const createLCDClient: ({ restEndpoint }: { - restEndpoint: string; -}) => Promise<{ - cosmos: { - auth: { - v1beta1: import("./auth/v1beta1/query.lcd").LCDQueryClient; - }; - authz: { - v1beta1: import("./authz/v1beta1/query.lcd").LCDQueryClient; - }; - bank: { - v1beta1: import("./bank/v1beta1/query.lcd").LCDQueryClient; - }; - base: { - tendermint: { - v1beta1: import("./base/tendermint/v1beta1/query.lcd").LCDQueryClient; - }; - }; - distribution: { - v1beta1: import("./distribution/v1beta1/query.lcd").LCDQueryClient; - }; - evidence: { - v1beta1: import("./evidence/v1beta1/query.lcd").LCDQueryClient; - }; - feegrant: { - v1beta1: import("./feegrant/v1beta1/query.lcd").LCDQueryClient; - }; - gov: { - v1: import("./gov/v1/query.lcd").LCDQueryClient; - v1beta1: import("./gov/v1beta1/query.lcd").LCDQueryClient; - }; - group: { - v1: import("./group/v1/query.lcd").LCDQueryClient; - }; - mint: { - v1beta1: import("./mint/v1beta1/query.lcd").LCDQueryClient; - }; - nft: { - v1beta1: import("./nft/v1beta1/query.lcd").LCDQueryClient; - }; - params: { - v1beta1: import("./params/v1beta1/query.lcd").LCDQueryClient; - }; - slashing: { - v1beta1: import("./slashing/v1beta1/query.lcd").LCDQueryClient; - }; - staking: { - v1beta1: import("./staking/v1beta1/query.lcd").LCDQueryClient; - }; - tx: { - v1beta1: import("./tx/v1beta1/service.lcd").LCDQueryClient; - }; - upgrade: { - v1beta1: import("./upgrade/v1beta1/query.lcd").LCDQueryClient; - }; - }; -}>; diff --git a/packages/codegen/dist/cosmos/mint/v1beta1/genesis.d.ts b/packages/codegen/dist/cosmos/mint/v1beta1/genesis.d.ts deleted file mode 100644 index 155c109a..00000000 --- a/packages/codegen/dist/cosmos/mint/v1beta1/genesis.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Minter, MinterSDKType, Params, ParamsSDKType } from "./mint"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** GenesisState defines the mint module's genesis state. */ -export interface GenesisState { - /** minter is a space for holding current inflation information. */ - minter?: Minter; - /** params defines all the paramaters of the module. */ - params?: Params; -} -/** GenesisState defines the mint module's genesis state. */ -export interface GenesisStateSDKType { - minter?: MinterSDKType; - params?: ParamsSDKType; -} -export declare const GenesisState: { - encode(message: GenesisState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState; - fromPartial(object: DeepPartial): GenesisState; -}; diff --git a/packages/codegen/dist/cosmos/mint/v1beta1/mint.d.ts b/packages/codegen/dist/cosmos/mint/v1beta1/mint.d.ts deleted file mode 100644 index 0dc5a3bd..00000000 --- a/packages/codegen/dist/cosmos/mint/v1beta1/mint.d.ts +++ /dev/null @@ -1,49 +0,0 @@ -/// -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** Minter represents the minting state. */ -export interface Minter { - /** current annual inflation rate */ - inflation: string; - /** current annual expected provisions */ - annualProvisions: string; -} -/** Minter represents the minting state. */ -export interface MinterSDKType { - inflation: string; - annual_provisions: string; -} -/** Params holds parameters for the mint module. */ -export interface Params { - /** type of coin to mint */ - mintDenom: string; - /** maximum annual change in inflation rate */ - inflationRateChange: string; - /** maximum inflation rate */ - inflationMax: string; - /** minimum inflation rate */ - inflationMin: string; - /** goal of percent bonded atoms */ - goalBonded: string; - /** expected blocks per year */ - blocksPerYear: Long; -} -/** Params holds parameters for the mint module. */ -export interface ParamsSDKType { - mint_denom: string; - inflation_rate_change: string; - inflation_max: string; - inflation_min: string; - goal_bonded: string; - blocks_per_year: Long; -} -export declare const Minter: { - encode(message: Minter, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Minter; - fromPartial(object: DeepPartial): Minter; -}; -export declare const Params: { - encode(message: Params, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Params; - fromPartial(object: DeepPartial): Params; -}; diff --git a/packages/codegen/dist/cosmos/mint/v1beta1/query.d.ts b/packages/codegen/dist/cosmos/mint/v1beta1/query.d.ts deleted file mode 100644 index a9e3b1c9..00000000 --- a/packages/codegen/dist/cosmos/mint/v1beta1/query.d.ts +++ /dev/null @@ -1,96 +0,0 @@ -import { Params, ParamsSDKType } from "./mint"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ -export interface QueryParamsRequest { -} -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ -export interface QueryParamsRequestSDKType { -} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ -export interface QueryParamsResponse { - /** params defines the parameters of the module. */ - params?: Params; -} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ -export interface QueryParamsResponseSDKType { - params?: ParamsSDKType; -} -/** QueryInflationRequest is the request type for the Query/Inflation RPC method. */ -export interface QueryInflationRequest { -} -/** QueryInflationRequest is the request type for the Query/Inflation RPC method. */ -export interface QueryInflationRequestSDKType { -} -/** - * QueryInflationResponse is the response type for the Query/Inflation RPC - * method. - */ -export interface QueryInflationResponse { - /** inflation is the current minting inflation value. */ - inflation: Uint8Array; -} -/** - * QueryInflationResponse is the response type for the Query/Inflation RPC - * method. - */ -export interface QueryInflationResponseSDKType { - inflation: Uint8Array; -} -/** - * QueryAnnualProvisionsRequest is the request type for the - * Query/AnnualProvisions RPC method. - */ -export interface QueryAnnualProvisionsRequest { -} -/** - * QueryAnnualProvisionsRequest is the request type for the - * Query/AnnualProvisions RPC method. - */ -export interface QueryAnnualProvisionsRequestSDKType { -} -/** - * QueryAnnualProvisionsResponse is the response type for the - * Query/AnnualProvisions RPC method. - */ -export interface QueryAnnualProvisionsResponse { - /** annual_provisions is the current minting annual provisions value. */ - annualProvisions: Uint8Array; -} -/** - * QueryAnnualProvisionsResponse is the response type for the - * Query/AnnualProvisions RPC method. - */ -export interface QueryAnnualProvisionsResponseSDKType { - annual_provisions: Uint8Array; -} -export declare const QueryParamsRequest: { - encode(_: QueryParamsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest; - fromPartial(_: DeepPartial): QueryParamsRequest; -}; -export declare const QueryParamsResponse: { - encode(message: QueryParamsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse; - fromPartial(object: DeepPartial): QueryParamsResponse; -}; -export declare const QueryInflationRequest: { - encode(_: QueryInflationRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryInflationRequest; - fromPartial(_: DeepPartial): QueryInflationRequest; -}; -export declare const QueryInflationResponse: { - encode(message: QueryInflationResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryInflationResponse; - fromPartial(object: DeepPartial): QueryInflationResponse; -}; -export declare const QueryAnnualProvisionsRequest: { - encode(_: QueryAnnualProvisionsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAnnualProvisionsRequest; - fromPartial(_: DeepPartial): QueryAnnualProvisionsRequest; -}; -export declare const QueryAnnualProvisionsResponse: { - encode(message: QueryAnnualProvisionsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAnnualProvisionsResponse; - fromPartial(object: DeepPartial): QueryAnnualProvisionsResponse; -}; diff --git a/packages/codegen/dist/cosmos/mint/v1beta1/query.lcd.d.ts b/packages/codegen/dist/cosmos/mint/v1beta1/query.lcd.d.ts deleted file mode 100644 index bab04928..00000000 --- a/packages/codegen/dist/cosmos/mint/v1beta1/query.lcd.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { QueryParamsRequest, QueryParamsResponseSDKType, QueryInflationRequest, QueryInflationResponseSDKType, QueryAnnualProvisionsRequest, QueryAnnualProvisionsResponseSDKType } from "./query"; -export declare class LCDQueryClient { - req: LCDClient; - constructor({ requestClient }: { - requestClient: LCDClient; - }); - params(_params?: QueryParamsRequest): Promise; - inflation(_params?: QueryInflationRequest): Promise; - annualProvisions(_params?: QueryAnnualProvisionsRequest): Promise; -} diff --git a/packages/codegen/dist/cosmos/mint/v1beta1/query.rpc.Query.d.ts b/packages/codegen/dist/cosmos/mint/v1beta1/query.rpc.Query.d.ts deleted file mode 100644 index 83fc7060..00000000 --- a/packages/codegen/dist/cosmos/mint/v1beta1/query.rpc.Query.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { QueryClient } from "@cosmjs/stargate"; -import { QueryParamsRequest, QueryParamsResponse, QueryInflationRequest, QueryInflationResponse, QueryAnnualProvisionsRequest, QueryAnnualProvisionsResponse } from "./query"; -/** Query provides defines the gRPC querier service. */ -export interface Query { - /** Params returns the total set of minting parameters. */ - params(request?: QueryParamsRequest): Promise; - /** Inflation returns the current minting inflation value. */ - inflation(request?: QueryInflationRequest): Promise; - /** AnnualProvisions current minting annual provisions value. */ - annualProvisions(request?: QueryAnnualProvisionsRequest): Promise; -} -export declare class QueryClientImpl implements Query { - private readonly rpc; - constructor(rpc: Rpc); - params(request?: QueryParamsRequest): Promise; - inflation(request?: QueryInflationRequest): Promise; - annualProvisions(request?: QueryAnnualProvisionsRequest): Promise; -} -export declare const createRpcQueryExtension: (base: QueryClient) => { - params(request?: QueryParamsRequest): Promise; - inflation(request?: QueryInflationRequest): Promise; - annualProvisions(request?: QueryAnnualProvisionsRequest): Promise; -}; diff --git a/packages/codegen/dist/cosmos/msg/v1/msg.d.ts b/packages/codegen/dist/cosmos/msg/v1/msg.d.ts deleted file mode 100644 index cb0ff5c3..00000000 --- a/packages/codegen/dist/cosmos/msg/v1/msg.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/codegen/dist/cosmos/nft/v1beta1/event.d.ts b/packages/codegen/dist/cosmos/nft/v1beta1/event.d.ts deleted file mode 100644 index 311a6b0b..00000000 --- a/packages/codegen/dist/cosmos/nft/v1beta1/event.d.ts +++ /dev/null @@ -1,55 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** EventSend is emitted on Msg/Send */ -export interface EventSend { - classId: string; - id: string; - sender: string; - receiver: string; -} -/** EventSend is emitted on Msg/Send */ -export interface EventSendSDKType { - class_id: string; - id: string; - sender: string; - receiver: string; -} -/** EventMint is emitted on Mint */ -export interface EventMint { - classId: string; - id: string; - owner: string; -} -/** EventMint is emitted on Mint */ -export interface EventMintSDKType { - class_id: string; - id: string; - owner: string; -} -/** EventBurn is emitted on Burn */ -export interface EventBurn { - classId: string; - id: string; - owner: string; -} -/** EventBurn is emitted on Burn */ -export interface EventBurnSDKType { - class_id: string; - id: string; - owner: string; -} -export declare const EventSend: { - encode(message: EventSend, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): EventSend; - fromPartial(object: DeepPartial): EventSend; -}; -export declare const EventMint: { - encode(message: EventMint, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): EventMint; - fromPartial(object: DeepPartial): EventMint; -}; -export declare const EventBurn: { - encode(message: EventBurn, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): EventBurn; - fromPartial(object: DeepPartial): EventBurn; -}; diff --git a/packages/codegen/dist/cosmos/nft/v1beta1/genesis.d.ts b/packages/codegen/dist/cosmos/nft/v1beta1/genesis.d.ts deleted file mode 100644 index cf650ded..00000000 --- a/packages/codegen/dist/cosmos/nft/v1beta1/genesis.d.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { Class, ClassSDKType, NFT, NFTSDKType } from "./nft"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** GenesisState defines the nft module's genesis state. */ -export interface GenesisState { - /** class defines the class of the nft type. */ - classes: Class[]; - entries: Entry[]; -} -/** GenesisState defines the nft module's genesis state. */ -export interface GenesisStateSDKType { - classes: ClassSDKType[]; - entries: EntrySDKType[]; -} -/** Entry Defines all nft owned by a person */ -export interface Entry { - /** owner is the owner address of the following nft */ - owner: string; - /** nfts is a group of nfts of the same owner */ - nfts: NFT[]; -} -/** Entry Defines all nft owned by a person */ -export interface EntrySDKType { - owner: string; - nfts: NFTSDKType[]; -} -export declare const GenesisState: { - encode(message: GenesisState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState; - fromPartial(object: DeepPartial): GenesisState; -}; -export declare const Entry: { - encode(message: Entry, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Entry; - fromPartial(object: DeepPartial): Entry; -}; diff --git a/packages/codegen/dist/cosmos/nft/v1beta1/nft.d.ts b/packages/codegen/dist/cosmos/nft/v1beta1/nft.d.ts deleted file mode 100644 index 95f836c0..00000000 --- a/packages/codegen/dist/cosmos/nft/v1beta1/nft.d.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** Class defines the class of the nft type. */ -export interface Class { - /** id defines the unique identifier of the NFT classification, similar to the contract address of ERC721 */ - id: string; - /** name defines the human-readable name of the NFT classification. Optional */ - name: string; - /** symbol is an abbreviated name for nft classification. Optional */ - symbol: string; - /** description is a brief description of nft classification. Optional */ - description: string; - /** uri for the class metadata stored off chain. It can define schema for Class and NFT `Data` attributes. Optional */ - uri: string; - /** uri_hash is a hash of the document pointed by uri. Optional */ - uriHash: string; - /** data is the app specific metadata of the NFT class. Optional */ - data?: Any; -} -/** Class defines the class of the nft type. */ -export interface ClassSDKType { - id: string; - name: string; - symbol: string; - description: string; - uri: string; - uri_hash: string; - data?: AnySDKType; -} -/** NFT defines the NFT. */ -export interface NFT { - /** class_id associated with the NFT, similar to the contract address of ERC721 */ - classId: string; - /** id is a unique identifier of the NFT */ - id: string; - /** uri for the NFT metadata stored off chain */ - uri: string; - /** uri_hash is a hash of the document pointed by uri */ - uriHash: string; - /** data is an app specific data of the NFT. Optional */ - data?: Any; -} -/** NFT defines the NFT. */ -export interface NFTSDKType { - class_id: string; - id: string; - uri: string; - uri_hash: string; - data?: AnySDKType; -} -export declare const Class: { - encode(message: Class, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Class; - fromPartial(object: DeepPartial): Class; -}; -export declare const NFT: { - encode(message: NFT, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): NFT; - fromPartial(object: DeepPartial): NFT; -}; diff --git a/packages/codegen/dist/cosmos/nft/v1beta1/query.d.ts b/packages/codegen/dist/cosmos/nft/v1beta1/query.d.ts deleted file mode 100644 index f1a0e377..00000000 --- a/packages/codegen/dist/cosmos/nft/v1beta1/query.d.ts +++ /dev/null @@ -1,202 +0,0 @@ -/// -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { NFT, NFTSDKType, Class, ClassSDKType } from "./nft"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** QueryBalanceRequest is the request type for the Query/Balance RPC method */ -export interface QueryBalanceRequest { - classId: string; - owner: string; -} -/** QueryBalanceRequest is the request type for the Query/Balance RPC method */ -export interface QueryBalanceRequestSDKType { - class_id: string; - owner: string; -} -/** QueryBalanceResponse is the response type for the Query/Balance RPC method */ -export interface QueryBalanceResponse { - amount: Long; -} -/** QueryBalanceResponse is the response type for the Query/Balance RPC method */ -export interface QueryBalanceResponseSDKType { - amount: Long; -} -/** QueryOwnerRequest is the request type for the Query/Owner RPC method */ -export interface QueryOwnerRequest { - classId: string; - id: string; -} -/** QueryOwnerRequest is the request type for the Query/Owner RPC method */ -export interface QueryOwnerRequestSDKType { - class_id: string; - id: string; -} -/** QueryOwnerResponse is the response type for the Query/Owner RPC method */ -export interface QueryOwnerResponse { - owner: string; -} -/** QueryOwnerResponse is the response type for the Query/Owner RPC method */ -export interface QueryOwnerResponseSDKType { - owner: string; -} -/** QuerySupplyRequest is the request type for the Query/Supply RPC method */ -export interface QuerySupplyRequest { - classId: string; -} -/** QuerySupplyRequest is the request type for the Query/Supply RPC method */ -export interface QuerySupplyRequestSDKType { - class_id: string; -} -/** QuerySupplyResponse is the response type for the Query/Supply RPC method */ -export interface QuerySupplyResponse { - amount: Long; -} -/** QuerySupplyResponse is the response type for the Query/Supply RPC method */ -export interface QuerySupplyResponseSDKType { - amount: Long; -} -/** QueryNFTstRequest is the request type for the Query/NFTs RPC method */ -export interface QueryNFTsRequest { - classId: string; - owner: string; - pagination?: PageRequest; -} -/** QueryNFTstRequest is the request type for the Query/NFTs RPC method */ -export interface QueryNFTsRequestSDKType { - class_id: string; - owner: string; - pagination?: PageRequestSDKType; -} -/** QueryNFTsResponse is the response type for the Query/NFTs RPC methods */ -export interface QueryNFTsResponse { - nfts: NFT[]; - pagination?: PageResponse; -} -/** QueryNFTsResponse is the response type for the Query/NFTs RPC methods */ -export interface QueryNFTsResponseSDKType { - nfts: NFTSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryNFTRequest is the request type for the Query/NFT RPC method */ -export interface QueryNFTRequest { - classId: string; - id: string; -} -/** QueryNFTRequest is the request type for the Query/NFT RPC method */ -export interface QueryNFTRequestSDKType { - class_id: string; - id: string; -} -/** QueryNFTResponse is the response type for the Query/NFT RPC method */ -export interface QueryNFTResponse { - nft?: NFT; -} -/** QueryNFTResponse is the response type for the Query/NFT RPC method */ -export interface QueryNFTResponseSDKType { - nft?: NFTSDKType; -} -/** QueryClassRequest is the request type for the Query/Class RPC method */ -export interface QueryClassRequest { - classId: string; -} -/** QueryClassRequest is the request type for the Query/Class RPC method */ -export interface QueryClassRequestSDKType { - class_id: string; -} -/** QueryClassResponse is the response type for the Query/Class RPC method */ -export interface QueryClassResponse { - class?: Class; -} -/** QueryClassResponse is the response type for the Query/Class RPC method */ -export interface QueryClassResponseSDKType { - class?: ClassSDKType; -} -/** QueryClassesRequest is the request type for the Query/Classes RPC method */ -export interface QueryClassesRequest { - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** QueryClassesRequest is the request type for the Query/Classes RPC method */ -export interface QueryClassesRequestSDKType { - pagination?: PageRequestSDKType; -} -/** QueryClassesResponse is the response type for the Query/Classes RPC method */ -export interface QueryClassesResponse { - classes: Class[]; - pagination?: PageResponse; -} -/** QueryClassesResponse is the response type for the Query/Classes RPC method */ -export interface QueryClassesResponseSDKType { - classes: ClassSDKType[]; - pagination?: PageResponseSDKType; -} -export declare const QueryBalanceRequest: { - encode(message: QueryBalanceRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryBalanceRequest; - fromPartial(object: DeepPartial): QueryBalanceRequest; -}; -export declare const QueryBalanceResponse: { - encode(message: QueryBalanceResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryBalanceResponse; - fromPartial(object: DeepPartial): QueryBalanceResponse; -}; -export declare const QueryOwnerRequest: { - encode(message: QueryOwnerRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryOwnerRequest; - fromPartial(object: DeepPartial): QueryOwnerRequest; -}; -export declare const QueryOwnerResponse: { - encode(message: QueryOwnerResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryOwnerResponse; - fromPartial(object: DeepPartial): QueryOwnerResponse; -}; -export declare const QuerySupplyRequest: { - encode(message: QuerySupplyRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySupplyRequest; - fromPartial(object: DeepPartial): QuerySupplyRequest; -}; -export declare const QuerySupplyResponse: { - encode(message: QuerySupplyResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySupplyResponse; - fromPartial(object: DeepPartial): QuerySupplyResponse; -}; -export declare const QueryNFTsRequest: { - encode(message: QueryNFTsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryNFTsRequest; - fromPartial(object: DeepPartial): QueryNFTsRequest; -}; -export declare const QueryNFTsResponse: { - encode(message: QueryNFTsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryNFTsResponse; - fromPartial(object: DeepPartial): QueryNFTsResponse; -}; -export declare const QueryNFTRequest: { - encode(message: QueryNFTRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryNFTRequest; - fromPartial(object: DeepPartial): QueryNFTRequest; -}; -export declare const QueryNFTResponse: { - encode(message: QueryNFTResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryNFTResponse; - fromPartial(object: DeepPartial): QueryNFTResponse; -}; -export declare const QueryClassRequest: { - encode(message: QueryClassRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClassRequest; - fromPartial(object: DeepPartial): QueryClassRequest; -}; -export declare const QueryClassResponse: { - encode(message: QueryClassResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClassResponse; - fromPartial(object: DeepPartial): QueryClassResponse; -}; -export declare const QueryClassesRequest: { - encode(message: QueryClassesRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClassesRequest; - fromPartial(object: DeepPartial): QueryClassesRequest; -}; -export declare const QueryClassesResponse: { - encode(message: QueryClassesResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClassesResponse; - fromPartial(object: DeepPartial): QueryClassesResponse; -}; diff --git a/packages/codegen/dist/cosmos/nft/v1beta1/query.lcd.d.ts b/packages/codegen/dist/cosmos/nft/v1beta1/query.lcd.d.ts deleted file mode 100644 index d5be0983..00000000 --- a/packages/codegen/dist/cosmos/nft/v1beta1/query.lcd.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { QueryBalanceRequest, QueryBalanceResponseSDKType, QueryOwnerRequest, QueryOwnerResponseSDKType, QuerySupplyRequest, QuerySupplyResponseSDKType, QueryNFTsRequest, QueryNFTsResponseSDKType, QueryNFTRequest, QueryNFTResponseSDKType, QueryClassRequest, QueryClassResponseSDKType, QueryClassesRequest, QueryClassesResponseSDKType } from "./query"; -export declare class LCDQueryClient { - req: LCDClient; - constructor({ requestClient }: { - requestClient: LCDClient; - }); - balance(params: QueryBalanceRequest): Promise; - owner(params: QueryOwnerRequest): Promise; - supply(params: QuerySupplyRequest): Promise; - nFTs(params: QueryNFTsRequest): Promise; - nFT(params: QueryNFTRequest): Promise; - class(params: QueryClassRequest): Promise; - classes(params?: QueryClassesRequest): Promise; -} diff --git a/packages/codegen/dist/cosmos/nft/v1beta1/query.rpc.Query.d.ts b/packages/codegen/dist/cosmos/nft/v1beta1/query.rpc.Query.d.ts deleted file mode 100644 index c8c650c0..00000000 --- a/packages/codegen/dist/cosmos/nft/v1beta1/query.rpc.Query.d.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { QueryClient } from "@cosmjs/stargate"; -import { QueryBalanceRequest, QueryBalanceResponse, QueryOwnerRequest, QueryOwnerResponse, QuerySupplyRequest, QuerySupplyResponse, QueryNFTsRequest, QueryNFTsResponse, QueryNFTRequest, QueryNFTResponse, QueryClassRequest, QueryClassResponse, QueryClassesRequest, QueryClassesResponse } from "./query"; -/** Query defines the gRPC querier service. */ -export interface Query { - /** Balance queries the number of NFTs of a given class owned by the owner, same as balanceOf in ERC721 */ - balance(request: QueryBalanceRequest): Promise; - /** Owner queries the owner of the NFT based on its class and id, same as ownerOf in ERC721 */ - owner(request: QueryOwnerRequest): Promise; - /** Supply queries the number of NFTs from the given class, same as totalSupply of ERC721. */ - supply(request: QuerySupplyRequest): Promise; - /** - * NFTs queries all NFTs of a given class or owner,choose at least one of the two, similar to tokenByIndex in - * ERC721Enumerable - */ - nFTs(request: QueryNFTsRequest): Promise; - /** NFT queries an NFT based on its class and id. */ - nFT(request: QueryNFTRequest): Promise; - /** Class queries an NFT class based on its id */ - class(request: QueryClassRequest): Promise; - /** Classes queries all NFT classes */ - classes(request?: QueryClassesRequest): Promise; -} -export declare class QueryClientImpl implements Query { - private readonly rpc; - constructor(rpc: Rpc); - balance(request: QueryBalanceRequest): Promise; - owner(request: QueryOwnerRequest): Promise; - supply(request: QuerySupplyRequest): Promise; - nFTs(request: QueryNFTsRequest): Promise; - nFT(request: QueryNFTRequest): Promise; - class(request: QueryClassRequest): Promise; - classes(request?: QueryClassesRequest): Promise; -} -export declare const createRpcQueryExtension: (base: QueryClient) => { - balance(request: QueryBalanceRequest): Promise; - owner(request: QueryOwnerRequest): Promise; - supply(request: QuerySupplyRequest): Promise; - nFTs(request: QueryNFTsRequest): Promise; - nFT(request: QueryNFTRequest): Promise; - class(request: QueryClassRequest): Promise; - classes(request?: QueryClassesRequest): Promise; -}; diff --git a/packages/codegen/dist/cosmos/nft/v1beta1/tx.d.ts b/packages/codegen/dist/cosmos/nft/v1beta1/tx.d.ts deleted file mode 100644 index ee238b75..00000000 --- a/packages/codegen/dist/cosmos/nft/v1beta1/tx.d.ts +++ /dev/null @@ -1,36 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** MsgSend represents a message to send a nft from one account to another account. */ -export interface MsgSend { - /** class_id defines the unique identifier of the nft classification, similar to the contract address of ERC721 */ - classId: string; - /** id defines the unique identification of nft */ - id: string; - /** sender is the address of the owner of nft */ - sender: string; - /** receiver is the receiver address of nft */ - receiver: string; -} -/** MsgSend represents a message to send a nft from one account to another account. */ -export interface MsgSendSDKType { - class_id: string; - id: string; - sender: string; - receiver: string; -} -/** MsgSendResponse defines the Msg/Send response type. */ -export interface MsgSendResponse { -} -/** MsgSendResponse defines the Msg/Send response type. */ -export interface MsgSendResponseSDKType { -} -export declare const MsgSend: { - encode(message: MsgSend, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSend; - fromPartial(object: DeepPartial): MsgSend; -}; -export declare const MsgSendResponse: { - encode(_: MsgSendResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSendResponse; - fromPartial(_: DeepPartial): MsgSendResponse; -}; diff --git a/packages/codegen/dist/cosmos/nft/v1beta1/tx.rpc.msg.d.ts b/packages/codegen/dist/cosmos/nft/v1beta1/tx.rpc.msg.d.ts deleted file mode 100644 index 2c60038c..00000000 --- a/packages/codegen/dist/cosmos/nft/v1beta1/tx.rpc.msg.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { MsgSend, MsgSendResponse } from "./tx"; -/** Msg defines the nft Msg service. */ -export interface Msg { - /** Send defines a method to send a nft from one account to another account. */ - send(request: MsgSend): Promise; -} -export declare class MsgClientImpl implements Msg { - private readonly rpc; - constructor(rpc: Rpc); - send(request: MsgSend): Promise; -} diff --git a/packages/codegen/dist/cosmos/orm/v1/orm.d.ts b/packages/codegen/dist/cosmos/orm/v1/orm.d.ts deleted file mode 100644 index 8a6df721..00000000 --- a/packages/codegen/dist/cosmos/orm/v1/orm.d.ts +++ /dev/null @@ -1,130 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** TableDescriptor describes an ORM table. */ -export interface TableDescriptor { - /** primary_key defines the primary key for the table. */ - primaryKey?: PrimaryKeyDescriptor; - /** index defines one or more secondary indexes. */ - index: SecondaryIndexDescriptor[]; - /** - * 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. - */ - id: number; -} -/** TableDescriptor describes an ORM table. */ -export interface TableDescriptorSDKType { - primary_key?: PrimaryKeyDescriptorSDKType; - index: SecondaryIndexDescriptorSDKType[]; - id: number; -} -/** PrimaryKeyDescriptor describes a table primary key. */ -export interface 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 and google.protobuf.Duration are 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. - */ - fields: string; - /** - * 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. - */ - autoIncrement: boolean; -} -/** PrimaryKeyDescriptor describes a table primary key. */ -export interface PrimaryKeyDescriptorSDKType { - fields: string; - auto_increment: boolean; -} -/** PrimaryKeyDescriptor describes a table secondary index. */ -export interface 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 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.. - */ - fields: string; - /** - * 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. - */ - id: number; - /** unique specifies that this an unique index. */ - unique: boolean; -} -/** PrimaryKeyDescriptor describes a table secondary index. */ -export interface SecondaryIndexDescriptorSDKType { - fields: string; - id: number; - unique: boolean; -} -/** TableDescriptor describes an ORM singleton table which has at most one instance. */ -export interface 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. - */ - id: number; -} -/** TableDescriptor describes an ORM singleton table which has at most one instance. */ -export interface SingletonDescriptorSDKType { - id: number; -} -export declare const TableDescriptor: { - encode(message: TableDescriptor, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): TableDescriptor; - fromPartial(object: DeepPartial): TableDescriptor; -}; -export declare const PrimaryKeyDescriptor: { - encode(message: PrimaryKeyDescriptor, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PrimaryKeyDescriptor; - fromPartial(object: DeepPartial): PrimaryKeyDescriptor; -}; -export declare const SecondaryIndexDescriptor: { - encode(message: SecondaryIndexDescriptor, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SecondaryIndexDescriptor; - fromPartial(object: DeepPartial): SecondaryIndexDescriptor; -}; -export declare const SingletonDescriptor: { - encode(message: SingletonDescriptor, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SingletonDescriptor; - fromPartial(object: DeepPartial): SingletonDescriptor; -}; diff --git a/packages/codegen/dist/cosmos/orm/v1alpha1/schema.d.ts b/packages/codegen/dist/cosmos/orm/v1alpha1/schema.d.ts deleted file mode 100644 index 66027fa8..00000000 --- a/packages/codegen/dist/cosmos/orm/v1alpha1/schema.d.ts +++ /dev/null @@ -1,98 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** StorageType */ -export declare enum StorageType { - /** - * STORAGE_TYPE_DEFAULT_UNSPECIFIED - STORAGE_TYPE_DEFAULT_UNSPECIFIED indicates the persistent - * KV-storage where primary key entries are stored in merkle-tree - * backed commitment storage and indexes and seqs are stored in - * fast index storage. Note that the Cosmos SDK before store/v2alpha1 - * does not support this. - */ - STORAGE_TYPE_DEFAULT_UNSPECIFIED = 0, - /** - * STORAGE_TYPE_MEMORY - 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 - 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, - /** - * STORAGE_TYPE_INDEX - STORAGE_TYPE_INDEX indicates persistent storage which is not backed - * by a merkle-tree and won't affect the app hash. Note that the Cosmos SDK - * before store/v2alpha1 does not support this. - */ - STORAGE_TYPE_INDEX = 3, - /** - * STORAGE_TYPE_COMMITMENT - STORAGE_TYPE_INDEX indicates persistent storage which is backed by - * a merkle-tree. With this type of storage, both primary and index keys - * will affect the app hash and this is generally less efficient - * than using STORAGE_TYPE_DEFAULT_UNSPECIFIED which separates index - * keys into index storage. Note that modules built with the - * Cosmos SDK before store/v2alpha1 must specify STORAGE_TYPE_COMMITMENT - * instead of STORAGE_TYPE_DEFAULT_UNSPECIFIED or STORAGE_TYPE_INDEX - * because this is the only type of persistent storage available. - */ - STORAGE_TYPE_COMMITMENT = 4, - UNRECOGNIZED = -1 -} -export declare const StorageTypeSDKType: typeof StorageType; -export declare function storageTypeFromJSON(object: any): StorageType; -export declare function storageTypeToJSON(object: StorageType): string; -/** ModuleSchemaDescriptor describe's a module's ORM schema. */ -export interface ModuleSchemaDescriptor { - schemaFile: ModuleSchemaDescriptor_FileEntry[]; - /** - * prefix is an optional prefix that precedes all keys in this module's - * store. - */ - prefix: Uint8Array; -} -/** ModuleSchemaDescriptor describe's a module's ORM schema. */ -export interface ModuleSchemaDescriptorSDKType { - schema_file: ModuleSchemaDescriptor_FileEntrySDKType[]; - prefix: Uint8Array; -} -/** FileEntry describes an ORM file used in a module. */ -export interface ModuleSchemaDescriptor_FileEntry { - /** - * id is a prefix that will be varint encoded and prepended to all the - * table keys specified in the file's tables. - */ - id: number; - /** - * 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. - */ - protoFileName: string; - /** - * 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: StorageType; -} -/** FileEntry describes an ORM file used in a module. */ -export interface ModuleSchemaDescriptor_FileEntrySDKType { - id: number; - proto_file_name: string; - storage_type: StorageType; -} -export declare const ModuleSchemaDescriptor: { - encode(message: ModuleSchemaDescriptor, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ModuleSchemaDescriptor; - fromPartial(object: DeepPartial): ModuleSchemaDescriptor; -}; -export declare const ModuleSchemaDescriptor_FileEntry: { - encode(message: ModuleSchemaDescriptor_FileEntry, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ModuleSchemaDescriptor_FileEntry; - fromPartial(object: DeepPartial): ModuleSchemaDescriptor_FileEntry; -}; diff --git a/packages/codegen/dist/cosmos/params/v1beta1/params.d.ts b/packages/codegen/dist/cosmos/params/v1beta1/params.d.ts deleted file mode 100644 index 44a12b09..00000000 --- a/packages/codegen/dist/cosmos/params/v1beta1/params.d.ts +++ /dev/null @@ -1,42 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** ParameterChangeProposal defines a proposal to change one or more parameters. */ -export interface ParameterChangeProposal { - title: string; - description: string; - changes: ParamChange[]; -} -/** ParameterChangeProposal defines a proposal to change one or more parameters. */ -export interface ParameterChangeProposalSDKType { - title: string; - description: string; - changes: ParamChangeSDKType[]; -} -/** - * ParamChange defines an individual parameter change, for use in - * ParameterChangeProposal. - */ -export interface ParamChange { - subspace: string; - key: string; - value: string; -} -/** - * ParamChange defines an individual parameter change, for use in - * ParameterChangeProposal. - */ -export interface ParamChangeSDKType { - subspace: string; - key: string; - value: string; -} -export declare const ParameterChangeProposal: { - encode(message: ParameterChangeProposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ParameterChangeProposal; - fromPartial(object: DeepPartial): ParameterChangeProposal; -}; -export declare const ParamChange: { - encode(message: ParamChange, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ParamChange; - fromPartial(object: DeepPartial): ParamChange; -}; diff --git a/packages/codegen/dist/cosmos/params/v1beta1/query.d.ts b/packages/codegen/dist/cosmos/params/v1beta1/query.d.ts deleted file mode 100644 index 6cf07c14..00000000 --- a/packages/codegen/dist/cosmos/params/v1beta1/query.d.ts +++ /dev/null @@ -1,91 +0,0 @@ -import { ParamChange, ParamChangeSDKType } from "./params"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** QueryParamsRequest is request type for the Query/Params RPC method. */ -export interface QueryParamsRequest { - /** subspace defines the module to query the parameter for. */ - subspace: string; - /** key defines the key of the parameter in the subspace. */ - key: string; -} -/** QueryParamsRequest is request type for the Query/Params RPC method. */ -export interface QueryParamsRequestSDKType { - subspace: string; - key: string; -} -/** QueryParamsResponse is response type for the Query/Params RPC method. */ -export interface QueryParamsResponse { - /** param defines the queried parameter. */ - param?: ParamChange; -} -/** QueryParamsResponse is response type for the Query/Params RPC method. */ -export interface QueryParamsResponseSDKType { - param?: ParamChangeSDKType; -} -/** - * QuerySubspacesRequest defines a request type for querying for all registered - * subspaces and all keys for a subspace. - */ -export interface QuerySubspacesRequest { -} -/** - * QuerySubspacesRequest defines a request type for querying for all registered - * subspaces and all keys for a subspace. - */ -export interface QuerySubspacesRequestSDKType { -} -/** - * QuerySubspacesResponse defines the response types for querying for all - * registered subspaces and all keys for a subspace. - */ -export interface QuerySubspacesResponse { - subspaces: Subspace[]; -} -/** - * QuerySubspacesResponse defines the response types for querying for all - * registered subspaces and all keys for a subspace. - */ -export interface QuerySubspacesResponseSDKType { - subspaces: SubspaceSDKType[]; -} -/** - * Subspace defines a parameter subspace name and all the keys that exist for - * the subspace. - */ -export interface Subspace { - subspace: string; - keys: string[]; -} -/** - * Subspace defines a parameter subspace name and all the keys that exist for - * the subspace. - */ -export interface SubspaceSDKType { - subspace: string; - keys: string[]; -} -export declare const QueryParamsRequest: { - encode(message: QueryParamsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest; - fromPartial(object: DeepPartial): QueryParamsRequest; -}; -export declare const QueryParamsResponse: { - encode(message: QueryParamsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse; - fromPartial(object: DeepPartial): QueryParamsResponse; -}; -export declare const QuerySubspacesRequest: { - encode(_: QuerySubspacesRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySubspacesRequest; - fromPartial(_: DeepPartial): QuerySubspacesRequest; -}; -export declare const QuerySubspacesResponse: { - encode(message: QuerySubspacesResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySubspacesResponse; - fromPartial(object: DeepPartial): QuerySubspacesResponse; -}; -export declare const Subspace: { - encode(message: Subspace, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Subspace; - fromPartial(object: DeepPartial): Subspace; -}; diff --git a/packages/codegen/dist/cosmos/params/v1beta1/query.lcd.d.ts b/packages/codegen/dist/cosmos/params/v1beta1/query.lcd.d.ts deleted file mode 100644 index 4d76132d..00000000 --- a/packages/codegen/dist/cosmos/params/v1beta1/query.lcd.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { QueryParamsRequest, QueryParamsResponseSDKType, QuerySubspacesRequest, QuerySubspacesResponseSDKType } from "./query"; -export declare class LCDQueryClient { - req: LCDClient; - constructor({ requestClient }: { - requestClient: LCDClient; - }); - params(params: QueryParamsRequest): Promise; - subspaces(_params?: QuerySubspacesRequest): Promise; -} diff --git a/packages/codegen/dist/cosmos/params/v1beta1/query.rpc.Query.d.ts b/packages/codegen/dist/cosmos/params/v1beta1/query.rpc.Query.d.ts deleted file mode 100644 index f9fe0603..00000000 --- a/packages/codegen/dist/cosmos/params/v1beta1/query.rpc.Query.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { QueryClient } from "@cosmjs/stargate"; -import { QueryParamsRequest, QueryParamsResponse, QuerySubspacesRequest, QuerySubspacesResponse } from "./query"; -/** Query defines the gRPC querier service. */ -export interface Query { - /** - * Params queries a specific parameter of a module, given its subspace and - * key. - */ - params(request: QueryParamsRequest): Promise; - /** Subspaces queries for all registered subspaces and all keys for a subspace. */ - subspaces(request?: QuerySubspacesRequest): Promise; -} -export declare class QueryClientImpl implements Query { - private readonly rpc; - constructor(rpc: Rpc); - params(request: QueryParamsRequest): Promise; - subspaces(request?: QuerySubspacesRequest): Promise; -} -export declare const createRpcQueryExtension: (base: QueryClient) => { - params(request: QueryParamsRequest): Promise; - subspaces(request?: QuerySubspacesRequest): Promise; -}; diff --git a/packages/codegen/dist/cosmos/rpc.query.d.ts b/packages/codegen/dist/cosmos/rpc.query.d.ts deleted file mode 100644 index 69bbeacd..00000000 --- a/packages/codegen/dist/cosmos/rpc.query.d.ts +++ /dev/null @@ -1,187 +0,0 @@ -import { HttpEndpoint } from "@cosmjs/tendermint-rpc"; -export declare const createRPCQueryClient: ({ rpcEndpoint }: { - rpcEndpoint: string | HttpEndpoint; -}) => Promise<{ - cosmos: { - app: { - v1alpha1: { - config(request?: import("./app/v1alpha1/query").QueryConfigRequest): Promise; - }; - }; - auth: { - v1beta1: { - accounts(request?: import("./auth/v1beta1/query").QueryAccountsRequest): Promise; - account(request: import("./auth/v1beta1/query").QueryAccountRequest): Promise; - params(request?: import("./auth/v1beta1/query").QueryParamsRequest): Promise; - moduleAccounts(request?: import("./auth/v1beta1/query").QueryModuleAccountsRequest): Promise; - bech32Prefix(request?: import("./auth/v1beta1/query").Bech32PrefixRequest): Promise; - addressBytesToString(request: import("./auth/v1beta1/query").AddressBytesToStringRequest): Promise; - addressStringToBytes(request: import("./auth/v1beta1/query").AddressStringToBytesRequest): Promise; - }; - }; - authz: { - v1beta1: { - grants(request: import("./authz/v1beta1/query").QueryGrantsRequest): Promise; - granterGrants(request: import("./authz/v1beta1/query").QueryGranterGrantsRequest): Promise; - granteeGrants(request: import("./authz/v1beta1/query").QueryGranteeGrantsRequest): Promise; - }; - }; - bank: { - v1beta1: { - balance(request: import("./bank/v1beta1/query").QueryBalanceRequest): Promise; - allBalances(request: import("./bank/v1beta1/query").QueryAllBalancesRequest): Promise; - spendableBalances(request: import("./bank/v1beta1/query").QuerySpendableBalancesRequest): Promise; - totalSupply(request?: import("./bank/v1beta1/query").QueryTotalSupplyRequest): Promise; - supplyOf(request: import("./bank/v1beta1/query").QuerySupplyOfRequest): Promise; - params(request?: import("./bank/v1beta1/query").QueryParamsRequest): Promise; - denomMetadata(request: import("./bank/v1beta1/query").QueryDenomMetadataRequest): Promise; - denomsMetadata(request?: import("./bank/v1beta1/query").QueryDenomsMetadataRequest): Promise; - denomOwners(request: import("./bank/v1beta1/query").QueryDenomOwnersRequest): Promise; - }; - }; - base: { - tendermint: { - v1beta1: { - getNodeInfo(request?: import("./base/tendermint/v1beta1/query").GetNodeInfoRequest): Promise; - getSyncing(request?: import("./base/tendermint/v1beta1/query").GetSyncingRequest): Promise; - getLatestBlock(request?: import("./base/tendermint/v1beta1/query").GetLatestBlockRequest): Promise; - getBlockByHeight(request: import("./base/tendermint/v1beta1/query").GetBlockByHeightRequest): Promise; - getLatestValidatorSet(request?: import("./base/tendermint/v1beta1/query").GetLatestValidatorSetRequest): Promise; - getValidatorSetByHeight(request: import("./base/tendermint/v1beta1/query").GetValidatorSetByHeightRequest): Promise; - }; - }; - }; - distribution: { - v1beta1: { - params(request?: import("./distribution/v1beta1/query").QueryParamsRequest): Promise; - validatorOutstandingRewards(request: import("./distribution/v1beta1/query").QueryValidatorOutstandingRewardsRequest): Promise; - validatorCommission(request: import("./distribution/v1beta1/query").QueryValidatorCommissionRequest): Promise; - validatorSlashes(request: import("./distribution/v1beta1/query").QueryValidatorSlashesRequest): Promise; - delegationRewards(request: import("./distribution/v1beta1/query").QueryDelegationRewardsRequest): Promise; - delegationTotalRewards(request: import("./distribution/v1beta1/query").QueryDelegationTotalRewardsRequest): Promise; - delegatorValidators(request: import("./distribution/v1beta1/query").QueryDelegatorValidatorsRequest): Promise; - delegatorWithdrawAddress(request: import("./distribution/v1beta1/query").QueryDelegatorWithdrawAddressRequest): Promise; - communityPool(request?: import("./distribution/v1beta1/query").QueryCommunityPoolRequest): Promise; - }; - }; - evidence: { - v1beta1: { - evidence(request: import("./evidence/v1beta1/query").QueryEvidenceRequest): Promise; - allEvidence(request?: import("./evidence/v1beta1/query").QueryAllEvidenceRequest): Promise; - }; - }; - feegrant: { - v1beta1: { - allowance(request: import("./feegrant/v1beta1/query").QueryAllowanceRequest): Promise; - allowances(request: import("./feegrant/v1beta1/query").QueryAllowancesRequest): Promise; - allowancesByGranter(request: import("./feegrant/v1beta1/query").QueryAllowancesByGranterRequest): Promise; - }; - }; - gov: { - v1: { - proposal(request: import("./gov/v1/query").QueryProposalRequest): Promise; - proposals(request: import("./gov/v1/query").QueryProposalsRequest): Promise; - vote(request: import("./gov/v1/query").QueryVoteRequest): Promise; - votes(request: import("./gov/v1/query").QueryVotesRequest): Promise; - params(request: import("./gov/v1/query").QueryParamsRequest): Promise; - deposit(request: import("./gov/v1/query").QueryDepositRequest): Promise; - deposits(request: import("./gov/v1/query").QueryDepositsRequest): Promise; - tallyResult(request: import("./gov/v1/query").QueryTallyResultRequest): Promise; - }; - v1beta1: { - proposal(request: import("./gov/v1beta1/query").QueryProposalRequest): Promise; - proposals(request: import("./gov/v1beta1/query").QueryProposalsRequest): Promise; - vote(request: import("./gov/v1beta1/query").QueryVoteRequest): Promise; - votes(request: import("./gov/v1beta1/query").QueryVotesRequest): Promise; - params(request: import("./gov/v1beta1/query").QueryParamsRequest): Promise; - deposit(request: import("./gov/v1beta1/query").QueryDepositRequest): Promise; - deposits(request: import("./gov/v1beta1/query").QueryDepositsRequest): Promise; - tallyResult(request: import("./gov/v1beta1/query").QueryTallyResultRequest): Promise; - }; - }; - group: { - v1: { - groupInfo(request: import("./group/v1/query").QueryGroupInfoRequest): Promise; - groupPolicyInfo(request: import("./group/v1/query").QueryGroupPolicyInfoRequest): Promise; - groupMembers(request: import("./group/v1/query").QueryGroupMembersRequest): Promise; - groupsByAdmin(request: import("./group/v1/query").QueryGroupsByAdminRequest): Promise; - groupPoliciesByGroup(request: import("./group/v1/query").QueryGroupPoliciesByGroupRequest): Promise; - groupPoliciesByAdmin(request: import("./group/v1/query").QueryGroupPoliciesByAdminRequest): Promise; - proposal(request: import("./group/v1/query").QueryProposalRequest): Promise; - proposalsByGroupPolicy(request: import("./group/v1/query").QueryProposalsByGroupPolicyRequest): Promise; - voteByProposalVoter(request: import("./group/v1/query").QueryVoteByProposalVoterRequest): Promise; - votesByProposal(request: import("./group/v1/query").QueryVotesByProposalRequest): Promise; - votesByVoter(request: import("./group/v1/query").QueryVotesByVoterRequest): Promise; - groupsByMember(request: import("./group/v1/query").QueryGroupsByMemberRequest): Promise; - tallyResult(request: import("./group/v1/query").QueryTallyResultRequest): Promise; - }; - }; - mint: { - v1beta1: { - params(request?: import("./mint/v1beta1/query").QueryParamsRequest): Promise; - inflation(request?: import("./mint/v1beta1/query").QueryInflationRequest): Promise; - annualProvisions(request?: import("./mint/v1beta1/query").QueryAnnualProvisionsRequest): Promise; - }; - }; - nft: { - v1beta1: { - balance(request: import("./nft/v1beta1/query").QueryBalanceRequest): Promise; - owner(request: import("./nft/v1beta1/query").QueryOwnerRequest): Promise; - supply(request: import("./nft/v1beta1/query").QuerySupplyRequest): Promise; - nFTs(request: import("./nft/v1beta1/query").QueryNFTsRequest): Promise; - nFT(request: import("./nft/v1beta1/query").QueryNFTRequest): Promise; - class(request: import("./nft/v1beta1/query").QueryClassRequest): Promise; - classes(request?: import("./nft/v1beta1/query").QueryClassesRequest): Promise; - }; - }; - params: { - v1beta1: { - params(request: import("./params/v1beta1/query").QueryParamsRequest): Promise; - subspaces(request?: import("./params/v1beta1/query").QuerySubspacesRequest): Promise; - }; - }; - slashing: { - v1beta1: { - params(request?: import("./slashing/v1beta1/query").QueryParamsRequest): Promise; - signingInfo(request: import("./slashing/v1beta1/query").QuerySigningInfoRequest): Promise; - signingInfos(request?: import("./slashing/v1beta1/query").QuerySigningInfosRequest): Promise; - }; - }; - staking: { - v1beta1: { - validators(request: import("./staking/v1beta1/query").QueryValidatorsRequest): Promise; - validator(request: import("./staking/v1beta1/query").QueryValidatorRequest): Promise; - validatorDelegations(request: import("./staking/v1beta1/query").QueryValidatorDelegationsRequest): Promise; - validatorUnbondingDelegations(request: import("./staking/v1beta1/query").QueryValidatorUnbondingDelegationsRequest): Promise; - delegation(request: import("./staking/v1beta1/query").QueryDelegationRequest): Promise; - unbondingDelegation(request: import("./staking/v1beta1/query").QueryUnbondingDelegationRequest): Promise; - delegatorDelegations(request: import("./staking/v1beta1/query").QueryDelegatorDelegationsRequest): Promise; - delegatorUnbondingDelegations(request: import("./staking/v1beta1/query").QueryDelegatorUnbondingDelegationsRequest): Promise; - redelegations(request: import("./staking/v1beta1/query").QueryRedelegationsRequest): Promise; - delegatorValidators(request: import("./staking/v1beta1/query").QueryDelegatorValidatorsRequest): Promise; - delegatorValidator(request: import("./staking/v1beta1/query").QueryDelegatorValidatorRequest): Promise; - historicalInfo(request: import("./staking/v1beta1/query").QueryHistoricalInfoRequest): Promise; - pool(request?: import("./staking/v1beta1/query").QueryPoolRequest): Promise; - params(request?: import("./staking/v1beta1/query").QueryParamsRequest): Promise; - }; - }; - tx: { - v1beta1: { - simulate(request: import("./tx/v1beta1/service").SimulateRequest): Promise; - getTx(request: import("./tx/v1beta1/service").GetTxRequest): Promise; - broadcastTx(request: import("./tx/v1beta1/service").BroadcastTxRequest): Promise; - getTxsEvent(request: import("./tx/v1beta1/service").GetTxsEventRequest): Promise; - getBlockWithTxs(request: import("./tx/v1beta1/service").GetBlockWithTxsRequest): Promise; - }; - }; - upgrade: { - v1beta1: { - currentPlan(request?: import("./upgrade/v1beta1/query").QueryCurrentPlanRequest): Promise; - appliedPlan(request: import("./upgrade/v1beta1/query").QueryAppliedPlanRequest): Promise; - upgradedConsensusState(request: import("./upgrade/v1beta1/query").QueryUpgradedConsensusStateRequest): Promise; - moduleVersions(request: import("./upgrade/v1beta1/query").QueryModuleVersionsRequest): Promise; - authority(request?: import("./upgrade/v1beta1/query").QueryAuthorityRequest): Promise; - }; - }; - }; -}>; diff --git a/packages/codegen/dist/cosmos/rpc.tx.d.ts b/packages/codegen/dist/cosmos/rpc.tx.d.ts deleted file mode 100644 index 4e07ea0a..00000000 --- a/packages/codegen/dist/cosmos/rpc.tx.d.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { Rpc } from "../helpers"; -export declare const createRPCMsgClient: ({ rpc }: { - rpc: Rpc; -}) => Promise<{ - cosmos: { - authz: { - v1beta1: import("./authz/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - bank: { - v1beta1: import("./bank/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - crisis: { - v1beta1: import("./crisis/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - distribution: { - v1beta1: import("./distribution/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - evidence: { - v1beta1: import("./evidence/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - feegrant: { - v1beta1: import("./feegrant/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - gov: { - v1: import("./gov/v1/tx.rpc.msg").MsgClientImpl; - v1beta1: import("./gov/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - group: { - v1: import("./group/v1/tx.rpc.msg").MsgClientImpl; - }; - nft: { - v1beta1: import("./nft/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - slashing: { - v1beta1: import("./slashing/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - staking: { - v1beta1: import("./staking/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - upgrade: { - v1beta1: import("./upgrade/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - vesting: { - v1beta1: import("./vesting/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - }; -}>; diff --git a/packages/codegen/dist/cosmos/slashing/v1beta1/genesis.d.ts b/packages/codegen/dist/cosmos/slashing/v1beta1/genesis.d.ts deleted file mode 100644 index 11781a4c..00000000 --- a/packages/codegen/dist/cosmos/slashing/v1beta1/genesis.d.ts +++ /dev/null @@ -1,87 +0,0 @@ -/// -import { Params, ParamsSDKType, ValidatorSigningInfo, ValidatorSigningInfoSDKType } from "./slashing"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** GenesisState defines the slashing module's genesis state. */ -export interface GenesisState { - /** params defines all the paramaters of related to deposit. */ - params?: Params; - /** - * signing_infos represents a map between validator addresses and their - * signing infos. - */ - signingInfos: SigningInfo[]; - /** - * missed_blocks represents a map between validator addresses and their - * missed blocks. - */ - missedBlocks: ValidatorMissedBlocks[]; -} -/** GenesisState defines the slashing module's genesis state. */ -export interface GenesisStateSDKType { - params?: ParamsSDKType; - signing_infos: SigningInfoSDKType[]; - missed_blocks: ValidatorMissedBlocksSDKType[]; -} -/** SigningInfo stores validator signing info of corresponding address. */ -export interface SigningInfo { - /** address is the validator address. */ - address: string; - /** validator_signing_info represents the signing info of this validator. */ - validatorSigningInfo?: ValidatorSigningInfo; -} -/** SigningInfo stores validator signing info of corresponding address. */ -export interface SigningInfoSDKType { - address: string; - validator_signing_info?: ValidatorSigningInfoSDKType; -} -/** - * ValidatorMissedBlocks contains array of missed blocks of corresponding - * address. - */ -export interface ValidatorMissedBlocks { - /** address is the validator address. */ - address: string; - /** missed_blocks is an array of missed blocks by the validator. */ - missedBlocks: MissedBlock[]; -} -/** - * ValidatorMissedBlocks contains array of missed blocks of corresponding - * address. - */ -export interface ValidatorMissedBlocksSDKType { - address: string; - missed_blocks: MissedBlockSDKType[]; -} -/** MissedBlock contains height and missed status as boolean. */ -export interface MissedBlock { - /** index is the height at which the block was missed. */ - index: Long; - /** missed is the missed status. */ - missed: boolean; -} -/** MissedBlock contains height and missed status as boolean. */ -export interface MissedBlockSDKType { - index: Long; - missed: boolean; -} -export declare const GenesisState: { - encode(message: GenesisState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState; - fromPartial(object: DeepPartial): GenesisState; -}; -export declare const SigningInfo: { - encode(message: SigningInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SigningInfo; - fromPartial(object: DeepPartial): SigningInfo; -}; -export declare const ValidatorMissedBlocks: { - encode(message: ValidatorMissedBlocks, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorMissedBlocks; - fromPartial(object: DeepPartial): ValidatorMissedBlocks; -}; -export declare const MissedBlock: { - encode(message: MissedBlock, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MissedBlock; - fromPartial(object: DeepPartial): MissedBlock; -}; diff --git a/packages/codegen/dist/cosmos/slashing/v1beta1/query.d.ts b/packages/codegen/dist/cosmos/slashing/v1beta1/query.d.ts deleted file mode 100644 index f23f854f..00000000 --- a/packages/codegen/dist/cosmos/slashing/v1beta1/query.d.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { Params, ParamsSDKType, ValidatorSigningInfo, ValidatorSigningInfoSDKType } from "./slashing"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** QueryParamsRequest is the request type for the Query/Params RPC method */ -export interface QueryParamsRequest { -} -/** QueryParamsRequest is the request type for the Query/Params RPC method */ -export interface QueryParamsRequestSDKType { -} -/** QueryParamsResponse is the response type for the Query/Params RPC method */ -export interface QueryParamsResponse { - params?: Params; -} -/** QueryParamsResponse is the response type for the Query/Params RPC method */ -export interface QueryParamsResponseSDKType { - params?: ParamsSDKType; -} -/** - * QuerySigningInfoRequest is the request type for the Query/SigningInfo RPC - * method - */ -export interface QuerySigningInfoRequest { - /** cons_address is the address to query signing info of */ - consAddress: string; -} -/** - * QuerySigningInfoRequest is the request type for the Query/SigningInfo RPC - * method - */ -export interface QuerySigningInfoRequestSDKType { - cons_address: string; -} -/** - * QuerySigningInfoResponse is the response type for the Query/SigningInfo RPC - * method - */ -export interface QuerySigningInfoResponse { - /** val_signing_info is the signing info of requested val cons address */ - valSigningInfo?: ValidatorSigningInfo; -} -/** - * QuerySigningInfoResponse is the response type for the Query/SigningInfo RPC - * method - */ -export interface QuerySigningInfoResponseSDKType { - val_signing_info?: ValidatorSigningInfoSDKType; -} -/** - * QuerySigningInfosRequest is the request type for the Query/SigningInfos RPC - * method - */ -export interface QuerySigningInfosRequest { - pagination?: PageRequest; -} -/** - * QuerySigningInfosRequest is the request type for the Query/SigningInfos RPC - * method - */ -export interface QuerySigningInfosRequestSDKType { - pagination?: PageRequestSDKType; -} -/** - * QuerySigningInfosResponse is the response type for the Query/SigningInfos RPC - * method - */ -export interface QuerySigningInfosResponse { - /** info is the signing info of all validators */ - info: ValidatorSigningInfo[]; - pagination?: PageResponse; -} -/** - * QuerySigningInfosResponse is the response type for the Query/SigningInfos RPC - * method - */ -export interface QuerySigningInfosResponseSDKType { - info: ValidatorSigningInfoSDKType[]; - pagination?: PageResponseSDKType; -} -export declare const QueryParamsRequest: { - encode(_: QueryParamsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest; - fromPartial(_: DeepPartial): QueryParamsRequest; -}; -export declare const QueryParamsResponse: { - encode(message: QueryParamsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse; - fromPartial(object: DeepPartial): QueryParamsResponse; -}; -export declare const QuerySigningInfoRequest: { - encode(message: QuerySigningInfoRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySigningInfoRequest; - fromPartial(object: DeepPartial): QuerySigningInfoRequest; -}; -export declare const QuerySigningInfoResponse: { - encode(message: QuerySigningInfoResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySigningInfoResponse; - fromPartial(object: DeepPartial): QuerySigningInfoResponse; -}; -export declare const QuerySigningInfosRequest: { - encode(message: QuerySigningInfosRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySigningInfosRequest; - fromPartial(object: DeepPartial): QuerySigningInfosRequest; -}; -export declare const QuerySigningInfosResponse: { - encode(message: QuerySigningInfosResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySigningInfosResponse; - fromPartial(object: DeepPartial): QuerySigningInfosResponse; -}; diff --git a/packages/codegen/dist/cosmos/slashing/v1beta1/query.lcd.d.ts b/packages/codegen/dist/cosmos/slashing/v1beta1/query.lcd.d.ts deleted file mode 100644 index 68fa91bb..00000000 --- a/packages/codegen/dist/cosmos/slashing/v1beta1/query.lcd.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { QueryParamsRequest, QueryParamsResponseSDKType, QuerySigningInfoRequest, QuerySigningInfoResponseSDKType, QuerySigningInfosRequest, QuerySigningInfosResponseSDKType } from "./query"; -export declare class LCDQueryClient { - req: LCDClient; - constructor({ requestClient }: { - requestClient: LCDClient; - }); - params(_params?: QueryParamsRequest): Promise; - signingInfo(params: QuerySigningInfoRequest): Promise; - signingInfos(params?: QuerySigningInfosRequest): Promise; -} diff --git a/packages/codegen/dist/cosmos/slashing/v1beta1/query.rpc.Query.d.ts b/packages/codegen/dist/cosmos/slashing/v1beta1/query.rpc.Query.d.ts deleted file mode 100644 index ff339175..00000000 --- a/packages/codegen/dist/cosmos/slashing/v1beta1/query.rpc.Query.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { QueryClient } from "@cosmjs/stargate"; -import { QueryParamsRequest, QueryParamsResponse, QuerySigningInfoRequest, QuerySigningInfoResponse, QuerySigningInfosRequest, QuerySigningInfosResponse } from "./query"; -/** Query provides defines the gRPC querier service */ -export interface Query { - /** Params queries the parameters of slashing module */ - params(request?: QueryParamsRequest): Promise; - /** SigningInfo queries the signing info of given cons address */ - signingInfo(request: QuerySigningInfoRequest): Promise; - /** SigningInfos queries signing info of all validators */ - signingInfos(request?: QuerySigningInfosRequest): Promise; -} -export declare class QueryClientImpl implements Query { - private readonly rpc; - constructor(rpc: Rpc); - params(request?: QueryParamsRequest): Promise; - signingInfo(request: QuerySigningInfoRequest): Promise; - signingInfos(request?: QuerySigningInfosRequest): Promise; -} -export declare const createRpcQueryExtension: (base: QueryClient) => { - params(request?: QueryParamsRequest): Promise; - signingInfo(request: QuerySigningInfoRequest): Promise; - signingInfos(request?: QuerySigningInfosRequest): Promise; -}; diff --git a/packages/codegen/dist/cosmos/slashing/v1beta1/slashing.d.ts b/packages/codegen/dist/cosmos/slashing/v1beta1/slashing.d.ts deleted file mode 100644 index b7dd7ad3..00000000 --- a/packages/codegen/dist/cosmos/slashing/v1beta1/slashing.d.ts +++ /dev/null @@ -1,69 +0,0 @@ -/// -import { Duration, DurationSDKType } from "../../../google/protobuf/duration"; -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * ValidatorSigningInfo defines a validator's signing info for monitoring their - * liveness activity. - */ -export interface ValidatorSigningInfo { - address: string; - /** Height at which validator was first a candidate OR was unjailed */ - startHeight: Long; - /** - * Index which is incremented each time the validator was a bonded - * in a block and may have signed a precommit or not. This in conjunction with the - * `SignedBlocksWindow` param determines the index in the `MissedBlocksBitArray`. - */ - indexOffset: Long; - /** Timestamp until which the validator is jailed due to liveness downtime. */ - jailedUntil?: Date; - /** - * 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 misbehiavor. - */ - tombstoned: boolean; - /** - * A counter kept to avoid unnecessary array reads. - * Note that `Sum(MissedBlocksBitArray)` always equals `MissedBlocksCounter`. - */ - missedBlocksCounter: Long; -} -/** - * ValidatorSigningInfo defines a validator's signing info for monitoring their - * liveness activity. - */ -export interface ValidatorSigningInfoSDKType { - address: string; - start_height: Long; - index_offset: Long; - jailed_until?: Date; - tombstoned: boolean; - missed_blocks_counter: Long; -} -/** Params represents the parameters used for by the slashing module. */ -export interface Params { - signedBlocksWindow: Long; - minSignedPerWindow: Uint8Array; - downtimeJailDuration?: Duration; - slashFractionDoubleSign: Uint8Array; - slashFractionDowntime: Uint8Array; -} -/** Params represents the parameters used for by the slashing module. */ -export interface ParamsSDKType { - signed_blocks_window: Long; - min_signed_per_window: Uint8Array; - downtime_jail_duration?: DurationSDKType; - slash_fraction_double_sign: Uint8Array; - slash_fraction_downtime: Uint8Array; -} -export declare const ValidatorSigningInfo: { - encode(message: ValidatorSigningInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorSigningInfo; - fromPartial(object: DeepPartial): ValidatorSigningInfo; -}; -export declare const Params: { - encode(message: Params, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Params; - fromPartial(object: DeepPartial): Params; -}; diff --git a/packages/codegen/dist/cosmos/slashing/v1beta1/tx.d.ts b/packages/codegen/dist/cosmos/slashing/v1beta1/tx.d.ts deleted file mode 100644 index fe6632c6..00000000 --- a/packages/codegen/dist/cosmos/slashing/v1beta1/tx.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** MsgUnjail defines the Msg/Unjail request type */ -export interface MsgUnjail { - validatorAddr: string; -} -/** MsgUnjail defines the Msg/Unjail request type */ -export interface MsgUnjailSDKType { - validator_addr: string; -} -/** MsgUnjailResponse defines the Msg/Unjail response type */ -export interface MsgUnjailResponse { -} -/** MsgUnjailResponse defines the Msg/Unjail response type */ -export interface MsgUnjailResponseSDKType { -} -export declare const MsgUnjail: { - encode(message: MsgUnjail, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUnjail; - fromPartial(object: DeepPartial): MsgUnjail; -}; -export declare const MsgUnjailResponse: { - encode(_: MsgUnjailResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUnjailResponse; - fromPartial(_: DeepPartial): MsgUnjailResponse; -}; diff --git a/packages/codegen/dist/cosmos/slashing/v1beta1/tx.rpc.msg.d.ts b/packages/codegen/dist/cosmos/slashing/v1beta1/tx.rpc.msg.d.ts deleted file mode 100644 index 706396b1..00000000 --- a/packages/codegen/dist/cosmos/slashing/v1beta1/tx.rpc.msg.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { MsgUnjail, MsgUnjailResponse } from "./tx"; -/** Msg defines the slashing Msg service. */ -export interface Msg { - /** - * 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. - */ - unjail(request: MsgUnjail): Promise; -} -export declare class MsgClientImpl implements Msg { - private readonly rpc; - constructor(rpc: Rpc); - unjail(request: MsgUnjail): Promise; -} diff --git a/packages/codegen/dist/cosmos/staking/v1beta1/authz.d.ts b/packages/codegen/dist/cosmos/staking/v1beta1/authz.d.ts deleted file mode 100644 index a5baac2d..00000000 --- a/packages/codegen/dist/cosmos/staking/v1beta1/authz.d.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * AuthorizationType defines the type of staking module authorization type - * - * Since: cosmos-sdk 0.43 - */ -export declare enum AuthorizationType { - /** AUTHORIZATION_TYPE_UNSPECIFIED - AUTHORIZATION_TYPE_UNSPECIFIED specifies an unknown authorization type */ - AUTHORIZATION_TYPE_UNSPECIFIED = 0, - /** AUTHORIZATION_TYPE_DELEGATE - AUTHORIZATION_TYPE_DELEGATE defines an authorization type for Msg/Delegate */ - AUTHORIZATION_TYPE_DELEGATE = 1, - /** AUTHORIZATION_TYPE_UNDELEGATE - AUTHORIZATION_TYPE_UNDELEGATE defines an authorization type for Msg/Undelegate */ - AUTHORIZATION_TYPE_UNDELEGATE = 2, - /** AUTHORIZATION_TYPE_REDELEGATE - AUTHORIZATION_TYPE_REDELEGATE defines an authorization type for Msg/BeginRedelegate */ - AUTHORIZATION_TYPE_REDELEGATE = 3, - UNRECOGNIZED = -1 -} -export declare const AuthorizationTypeSDKType: typeof AuthorizationType; -export declare function authorizationTypeFromJSON(object: any): AuthorizationType; -export declare function authorizationTypeToJSON(object: AuthorizationType): string; -/** - * StakeAuthorization defines authorization for delegate/undelegate/redelegate. - * - * Since: cosmos-sdk 0.43 - */ -export interface 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. - */ - maxTokens?: Coin; - /** - * allow_list specifies list of validator addresses to whom grantee can delegate tokens on behalf of granter's - * account. - */ - allowList?: StakeAuthorization_Validators; - /** deny_list specifies list of validator addresses to whom grantee can not delegate tokens. */ - denyList?: StakeAuthorization_Validators; - /** authorization_type defines one of AuthorizationType. */ - authorizationType: AuthorizationType; -} -/** - * StakeAuthorization defines authorization for delegate/undelegate/redelegate. - * - * Since: cosmos-sdk 0.43 - */ -export interface StakeAuthorizationSDKType { - max_tokens?: CoinSDKType; - allow_list?: StakeAuthorization_ValidatorsSDKType; - deny_list?: StakeAuthorization_ValidatorsSDKType; - authorization_type: AuthorizationType; -} -/** Validators defines list of validator addresses. */ -export interface StakeAuthorization_Validators { - address: string[]; -} -/** Validators defines list of validator addresses. */ -export interface StakeAuthorization_ValidatorsSDKType { - address: string[]; -} -export declare const StakeAuthorization: { - encode(message: StakeAuthorization, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): StakeAuthorization; - fromPartial(object: DeepPartial): StakeAuthorization; -}; -export declare const StakeAuthorization_Validators: { - encode(message: StakeAuthorization_Validators, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): StakeAuthorization_Validators; - fromPartial(object: DeepPartial): StakeAuthorization_Validators; -}; diff --git a/packages/codegen/dist/cosmos/staking/v1beta1/genesis.d.ts b/packages/codegen/dist/cosmos/staking/v1beta1/genesis.d.ts deleted file mode 100644 index 975dbd15..00000000 --- a/packages/codegen/dist/cosmos/staking/v1beta1/genesis.d.ts +++ /dev/null @@ -1,61 +0,0 @@ -/// -import { Params, ParamsSDKType, Validator, ValidatorSDKType, Delegation, DelegationSDKType, UnbondingDelegation, UnbondingDelegationSDKType, Redelegation, RedelegationSDKType } from "./staking"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** GenesisState defines the staking module's genesis state. */ -export interface GenesisState { - /** params defines all the paramaters of related to deposit. */ - params?: Params; - /** - * last_total_power tracks the total amounts of bonded tokens recorded during - * the previous end block. - */ - lastTotalPower: Uint8Array; - /** - * last_validator_powers is a special index that provides a historical list - * of the last-block's bonded validators. - */ - lastValidatorPowers: LastValidatorPower[]; - /** delegations defines the validator set at genesis. */ - validators: Validator[]; - /** delegations defines the delegations active at genesis. */ - delegations: Delegation[]; - /** unbonding_delegations defines the unbonding delegations active at genesis. */ - unbondingDelegations: UnbondingDelegation[]; - /** redelegations defines the redelegations active at genesis. */ - redelegations: Redelegation[]; - exported: boolean; -} -/** GenesisState defines the staking module's genesis state. */ -export interface GenesisStateSDKType { - params?: ParamsSDKType; - last_total_power: Uint8Array; - last_validator_powers: LastValidatorPowerSDKType[]; - validators: ValidatorSDKType[]; - delegations: DelegationSDKType[]; - unbonding_delegations: UnbondingDelegationSDKType[]; - redelegations: RedelegationSDKType[]; - exported: boolean; -} -/** LastValidatorPower required for validator set update logic. */ -export interface LastValidatorPower { - /** address is the address of the validator. */ - address: string; - /** power defines the power of the validator. */ - power: Long; -} -/** LastValidatorPower required for validator set update logic. */ -export interface LastValidatorPowerSDKType { - address: string; - power: Long; -} -export declare const GenesisState: { - encode(message: GenesisState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState; - fromPartial(object: DeepPartial): GenesisState; -}; -export declare const LastValidatorPower: { - encode(message: LastValidatorPower, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): LastValidatorPower; - fromPartial(object: DeepPartial): LastValidatorPower; -}; diff --git a/packages/codegen/dist/cosmos/staking/v1beta1/query.d.ts b/packages/codegen/dist/cosmos/staking/v1beta1/query.d.ts deleted file mode 100644 index e7124182..00000000 --- a/packages/codegen/dist/cosmos/staking/v1beta1/query.d.ts +++ /dev/null @@ -1,552 +0,0 @@ -/// -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { Validator, ValidatorSDKType, DelegationResponse, DelegationResponseSDKType, UnbondingDelegation, UnbondingDelegationSDKType, RedelegationResponse, RedelegationResponseSDKType, HistoricalInfo, HistoricalInfoSDKType, Pool, PoolSDKType, Params, ParamsSDKType } from "./staking"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** QueryValidatorsRequest is request type for Query/Validators RPC method. */ -export interface QueryValidatorsRequest { - /** status enables to query for validators matching a given status. */ - status: string; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** QueryValidatorsRequest is request type for Query/Validators RPC method. */ -export interface QueryValidatorsRequestSDKType { - status: string; - pagination?: PageRequestSDKType; -} -/** QueryValidatorsResponse is response type for the Query/Validators RPC method */ -export interface QueryValidatorsResponse { - /** validators contains all the queried validators. */ - validators: Validator[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** QueryValidatorsResponse is response type for the Query/Validators RPC method */ -export interface QueryValidatorsResponseSDKType { - validators: ValidatorSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryValidatorRequest is response type for the Query/Validator RPC method */ -export interface QueryValidatorRequest { - /** validator_addr defines the validator address to query for. */ - validatorAddr: string; -} -/** QueryValidatorRequest is response type for the Query/Validator RPC method */ -export interface QueryValidatorRequestSDKType { - validator_addr: string; -} -/** QueryValidatorResponse is response type for the Query/Validator RPC method */ -export interface QueryValidatorResponse { - /** validator defines the the validator info. */ - validator?: Validator; -} -/** QueryValidatorResponse is response type for the Query/Validator RPC method */ -export interface QueryValidatorResponseSDKType { - validator?: ValidatorSDKType; -} -/** - * QueryValidatorDelegationsRequest is request type for the - * Query/ValidatorDelegations RPC method - */ -export interface QueryValidatorDelegationsRequest { - /** validator_addr defines the validator address to query for. */ - validatorAddr: string; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** - * QueryValidatorDelegationsRequest is request type for the - * Query/ValidatorDelegations RPC method - */ -export interface QueryValidatorDelegationsRequestSDKType { - validator_addr: string; - pagination?: PageRequestSDKType; -} -/** - * QueryValidatorDelegationsResponse is response type for the - * Query/ValidatorDelegations RPC method - */ -export interface QueryValidatorDelegationsResponse { - delegationResponses: DelegationResponse[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** - * QueryValidatorDelegationsResponse is response type for the - * Query/ValidatorDelegations RPC method - */ -export interface QueryValidatorDelegationsResponseSDKType { - delegation_responses: DelegationResponseSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * QueryValidatorUnbondingDelegationsRequest is required type for the - * Query/ValidatorUnbondingDelegations RPC method - */ -export interface QueryValidatorUnbondingDelegationsRequest { - /** validator_addr defines the validator address to query for. */ - validatorAddr: string; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** - * QueryValidatorUnbondingDelegationsRequest is required type for the - * Query/ValidatorUnbondingDelegations RPC method - */ -export interface QueryValidatorUnbondingDelegationsRequestSDKType { - validator_addr: string; - pagination?: PageRequestSDKType; -} -/** - * QueryValidatorUnbondingDelegationsResponse is response type for the - * Query/ValidatorUnbondingDelegations RPC method. - */ -export interface QueryValidatorUnbondingDelegationsResponse { - unbondingResponses: UnbondingDelegation[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** - * QueryValidatorUnbondingDelegationsResponse is response type for the - * Query/ValidatorUnbondingDelegations RPC method. - */ -export interface QueryValidatorUnbondingDelegationsResponseSDKType { - unbonding_responses: UnbondingDelegationSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryDelegationRequest is request type for the Query/Delegation RPC method. */ -export interface QueryDelegationRequest { - /** delegator_addr defines the delegator address to query for. */ - delegatorAddr: string; - /** validator_addr defines the validator address to query for. */ - validatorAddr: string; -} -/** QueryDelegationRequest is request type for the Query/Delegation RPC method. */ -export interface QueryDelegationRequestSDKType { - delegator_addr: string; - validator_addr: string; -} -/** QueryDelegationResponse is response type for the Query/Delegation RPC method. */ -export interface QueryDelegationResponse { - /** delegation_responses defines the delegation info of a delegation. */ - delegationResponse?: DelegationResponse; -} -/** QueryDelegationResponse is response type for the Query/Delegation RPC method. */ -export interface QueryDelegationResponseSDKType { - delegation_response?: DelegationResponseSDKType; -} -/** - * QueryUnbondingDelegationRequest is request type for the - * Query/UnbondingDelegation RPC method. - */ -export interface QueryUnbondingDelegationRequest { - /** delegator_addr defines the delegator address to query for. */ - delegatorAddr: string; - /** validator_addr defines the validator address to query for. */ - validatorAddr: string; -} -/** - * QueryUnbondingDelegationRequest is request type for the - * Query/UnbondingDelegation RPC method. - */ -export interface QueryUnbondingDelegationRequestSDKType { - delegator_addr: string; - validator_addr: string; -} -/** - * QueryDelegationResponse is response type for the Query/UnbondingDelegation - * RPC method. - */ -export interface QueryUnbondingDelegationResponse { - /** unbond defines the unbonding information of a delegation. */ - unbond?: UnbondingDelegation; -} -/** - * QueryDelegationResponse is response type for the Query/UnbondingDelegation - * RPC method. - */ -export interface QueryUnbondingDelegationResponseSDKType { - unbond?: UnbondingDelegationSDKType; -} -/** - * QueryDelegatorDelegationsRequest is request type for the - * Query/DelegatorDelegations RPC method. - */ -export interface QueryDelegatorDelegationsRequest { - /** delegator_addr defines the delegator address to query for. */ - delegatorAddr: string; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** - * QueryDelegatorDelegationsRequest is request type for the - * Query/DelegatorDelegations RPC method. - */ -export interface QueryDelegatorDelegationsRequestSDKType { - delegator_addr: string; - pagination?: PageRequestSDKType; -} -/** - * QueryDelegatorDelegationsResponse is response type for the - * Query/DelegatorDelegations RPC method. - */ -export interface QueryDelegatorDelegationsResponse { - /** delegation_responses defines all the delegations' info of a delegator. */ - delegationResponses: DelegationResponse[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** - * QueryDelegatorDelegationsResponse is response type for the - * Query/DelegatorDelegations RPC method. - */ -export interface QueryDelegatorDelegationsResponseSDKType { - delegation_responses: DelegationResponseSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * QueryDelegatorUnbondingDelegationsRequest is request type for the - * Query/DelegatorUnbondingDelegations RPC method. - */ -export interface QueryDelegatorUnbondingDelegationsRequest { - /** delegator_addr defines the delegator address to query for. */ - delegatorAddr: string; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** - * QueryDelegatorUnbondingDelegationsRequest is request type for the - * Query/DelegatorUnbondingDelegations RPC method. - */ -export interface QueryDelegatorUnbondingDelegationsRequestSDKType { - delegator_addr: string; - pagination?: PageRequestSDKType; -} -/** - * QueryUnbondingDelegatorDelegationsResponse is response type for the - * Query/UnbondingDelegatorDelegations RPC method. - */ -export interface QueryDelegatorUnbondingDelegationsResponse { - unbondingResponses: UnbondingDelegation[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** - * QueryUnbondingDelegatorDelegationsResponse is response type for the - * Query/UnbondingDelegatorDelegations RPC method. - */ -export interface QueryDelegatorUnbondingDelegationsResponseSDKType { - unbonding_responses: UnbondingDelegationSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * QueryRedelegationsRequest is request type for the Query/Redelegations RPC - * method. - */ -export interface QueryRedelegationsRequest { - /** delegator_addr defines the delegator address to query for. */ - delegatorAddr: string; - /** src_validator_addr defines the validator address to redelegate from. */ - srcValidatorAddr: string; - /** dst_validator_addr defines the validator address to redelegate to. */ - dstValidatorAddr: string; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** - * QueryRedelegationsRequest is request type for the Query/Redelegations RPC - * method. - */ -export interface QueryRedelegationsRequestSDKType { - delegator_addr: string; - src_validator_addr: string; - dst_validator_addr: string; - pagination?: PageRequestSDKType; -} -/** - * QueryRedelegationsResponse is response type for the Query/Redelegations RPC - * method. - */ -export interface QueryRedelegationsResponse { - redelegationResponses: RedelegationResponse[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** - * QueryRedelegationsResponse is response type for the Query/Redelegations RPC - * method. - */ -export interface QueryRedelegationsResponseSDKType { - redelegation_responses: RedelegationResponseSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * QueryDelegatorValidatorsRequest is request type for the - * Query/DelegatorValidators RPC method. - */ -export interface QueryDelegatorValidatorsRequest { - /** delegator_addr defines the delegator address to query for. */ - delegatorAddr: string; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** - * QueryDelegatorValidatorsRequest is request type for the - * Query/DelegatorValidators RPC method. - */ -export interface QueryDelegatorValidatorsRequestSDKType { - delegator_addr: string; - pagination?: PageRequestSDKType; -} -/** - * QueryDelegatorValidatorsResponse is response type for the - * Query/DelegatorValidators RPC method. - */ -export interface QueryDelegatorValidatorsResponse { - /** validators defines the the validators' info of a delegator. */ - validators: Validator[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** - * QueryDelegatorValidatorsResponse is response type for the - * Query/DelegatorValidators RPC method. - */ -export interface QueryDelegatorValidatorsResponseSDKType { - validators: ValidatorSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * QueryDelegatorValidatorRequest is request type for the - * Query/DelegatorValidator RPC method. - */ -export interface QueryDelegatorValidatorRequest { - /** delegator_addr defines the delegator address to query for. */ - delegatorAddr: string; - /** validator_addr defines the validator address to query for. */ - validatorAddr: string; -} -/** - * QueryDelegatorValidatorRequest is request type for the - * Query/DelegatorValidator RPC method. - */ -export interface QueryDelegatorValidatorRequestSDKType { - delegator_addr: string; - validator_addr: string; -} -/** - * QueryDelegatorValidatorResponse response type for the - * Query/DelegatorValidator RPC method. - */ -export interface QueryDelegatorValidatorResponse { - /** validator defines the the validator info. */ - validator?: Validator; -} -/** - * QueryDelegatorValidatorResponse response type for the - * Query/DelegatorValidator RPC method. - */ -export interface QueryDelegatorValidatorResponseSDKType { - validator?: ValidatorSDKType; -} -/** - * QueryHistoricalInfoRequest is request type for the Query/HistoricalInfo RPC - * method. - */ -export interface QueryHistoricalInfoRequest { - /** height defines at which height to query the historical info. */ - height: Long; -} -/** - * QueryHistoricalInfoRequest is request type for the Query/HistoricalInfo RPC - * method. - */ -export interface QueryHistoricalInfoRequestSDKType { - height: Long; -} -/** - * QueryHistoricalInfoResponse is response type for the Query/HistoricalInfo RPC - * method. - */ -export interface QueryHistoricalInfoResponse { - /** hist defines the historical info at the given height. */ - hist?: HistoricalInfo; -} -/** - * QueryHistoricalInfoResponse is response type for the Query/HistoricalInfo RPC - * method. - */ -export interface QueryHistoricalInfoResponseSDKType { - hist?: HistoricalInfoSDKType; -} -/** QueryPoolRequest is request type for the Query/Pool RPC method. */ -export interface QueryPoolRequest { -} -/** QueryPoolRequest is request type for the Query/Pool RPC method. */ -export interface QueryPoolRequestSDKType { -} -/** QueryPoolResponse is response type for the Query/Pool RPC method. */ -export interface QueryPoolResponse { - /** pool defines the pool info. */ - pool?: Pool; -} -/** QueryPoolResponse is response type for the Query/Pool RPC method. */ -export interface QueryPoolResponseSDKType { - pool?: PoolSDKType; -} -/** QueryParamsRequest is request type for the Query/Params RPC method. */ -export interface QueryParamsRequest { -} -/** QueryParamsRequest is request type for the Query/Params RPC method. */ -export interface QueryParamsRequestSDKType { -} -/** QueryParamsResponse is response type for the Query/Params RPC method. */ -export interface QueryParamsResponse { - /** params holds all the parameters of this module. */ - params?: Params; -} -/** QueryParamsResponse is response type for the Query/Params RPC method. */ -export interface QueryParamsResponseSDKType { - params?: ParamsSDKType; -} -export declare const QueryValidatorsRequest: { - encode(message: QueryValidatorsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorsRequest; - fromPartial(object: DeepPartial): QueryValidatorsRequest; -}; -export declare const QueryValidatorsResponse: { - encode(message: QueryValidatorsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorsResponse; - fromPartial(object: DeepPartial): QueryValidatorsResponse; -}; -export declare const QueryValidatorRequest: { - encode(message: QueryValidatorRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorRequest; - fromPartial(object: DeepPartial): QueryValidatorRequest; -}; -export declare const QueryValidatorResponse: { - encode(message: QueryValidatorResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorResponse; - fromPartial(object: DeepPartial): QueryValidatorResponse; -}; -export declare const QueryValidatorDelegationsRequest: { - encode(message: QueryValidatorDelegationsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorDelegationsRequest; - fromPartial(object: DeepPartial): QueryValidatorDelegationsRequest; -}; -export declare const QueryValidatorDelegationsResponse: { - encode(message: QueryValidatorDelegationsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorDelegationsResponse; - fromPartial(object: DeepPartial): QueryValidatorDelegationsResponse; -}; -export declare const QueryValidatorUnbondingDelegationsRequest: { - encode(message: QueryValidatorUnbondingDelegationsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorUnbondingDelegationsRequest; - fromPartial(object: DeepPartial): QueryValidatorUnbondingDelegationsRequest; -}; -export declare const QueryValidatorUnbondingDelegationsResponse: { - encode(message: QueryValidatorUnbondingDelegationsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorUnbondingDelegationsResponse; - fromPartial(object: DeepPartial): QueryValidatorUnbondingDelegationsResponse; -}; -export declare const QueryDelegationRequest: { - encode(message: QueryDelegationRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegationRequest; - fromPartial(object: DeepPartial): QueryDelegationRequest; -}; -export declare const QueryDelegationResponse: { - encode(message: QueryDelegationResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegationResponse; - fromPartial(object: DeepPartial): QueryDelegationResponse; -}; -export declare const QueryUnbondingDelegationRequest: { - encode(message: QueryUnbondingDelegationRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryUnbondingDelegationRequest; - fromPartial(object: DeepPartial): QueryUnbondingDelegationRequest; -}; -export declare const QueryUnbondingDelegationResponse: { - encode(message: QueryUnbondingDelegationResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryUnbondingDelegationResponse; - fromPartial(object: DeepPartial): QueryUnbondingDelegationResponse; -}; -export declare const QueryDelegatorDelegationsRequest: { - encode(message: QueryDelegatorDelegationsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegatorDelegationsRequest; - fromPartial(object: DeepPartial): QueryDelegatorDelegationsRequest; -}; -export declare const QueryDelegatorDelegationsResponse: { - encode(message: QueryDelegatorDelegationsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegatorDelegationsResponse; - fromPartial(object: DeepPartial): QueryDelegatorDelegationsResponse; -}; -export declare const QueryDelegatorUnbondingDelegationsRequest: { - encode(message: QueryDelegatorUnbondingDelegationsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegatorUnbondingDelegationsRequest; - fromPartial(object: DeepPartial): QueryDelegatorUnbondingDelegationsRequest; -}; -export declare const QueryDelegatorUnbondingDelegationsResponse: { - encode(message: QueryDelegatorUnbondingDelegationsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegatorUnbondingDelegationsResponse; - fromPartial(object: DeepPartial): QueryDelegatorUnbondingDelegationsResponse; -}; -export declare const QueryRedelegationsRequest: { - encode(message: QueryRedelegationsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryRedelegationsRequest; - fromPartial(object: DeepPartial): QueryRedelegationsRequest; -}; -export declare const QueryRedelegationsResponse: { - encode(message: QueryRedelegationsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryRedelegationsResponse; - fromPartial(object: DeepPartial): QueryRedelegationsResponse; -}; -export declare const QueryDelegatorValidatorsRequest: { - encode(message: QueryDelegatorValidatorsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegatorValidatorsRequest; - fromPartial(object: DeepPartial): QueryDelegatorValidatorsRequest; -}; -export declare const QueryDelegatorValidatorsResponse: { - encode(message: QueryDelegatorValidatorsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegatorValidatorsResponse; - fromPartial(object: DeepPartial): QueryDelegatorValidatorsResponse; -}; -export declare const QueryDelegatorValidatorRequest: { - encode(message: QueryDelegatorValidatorRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegatorValidatorRequest; - fromPartial(object: DeepPartial): QueryDelegatorValidatorRequest; -}; -export declare const QueryDelegatorValidatorResponse: { - encode(message: QueryDelegatorValidatorResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegatorValidatorResponse; - fromPartial(object: DeepPartial): QueryDelegatorValidatorResponse; -}; -export declare const QueryHistoricalInfoRequest: { - encode(message: QueryHistoricalInfoRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryHistoricalInfoRequest; - fromPartial(object: DeepPartial): QueryHistoricalInfoRequest; -}; -export declare const QueryHistoricalInfoResponse: { - encode(message: QueryHistoricalInfoResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryHistoricalInfoResponse; - fromPartial(object: DeepPartial): QueryHistoricalInfoResponse; -}; -export declare const QueryPoolRequest: { - encode(_: QueryPoolRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPoolRequest; - fromPartial(_: DeepPartial): QueryPoolRequest; -}; -export declare const QueryPoolResponse: { - encode(message: QueryPoolResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPoolResponse; - fromPartial(object: DeepPartial): QueryPoolResponse; -}; -export declare const QueryParamsRequest: { - encode(_: QueryParamsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest; - fromPartial(_: DeepPartial): QueryParamsRequest; -}; -export declare const QueryParamsResponse: { - encode(message: QueryParamsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse; - fromPartial(object: DeepPartial): QueryParamsResponse; -}; diff --git a/packages/codegen/dist/cosmos/staking/v1beta1/query.lcd.d.ts b/packages/codegen/dist/cosmos/staking/v1beta1/query.lcd.d.ts deleted file mode 100644 index f477464b..00000000 --- a/packages/codegen/dist/cosmos/staking/v1beta1/query.lcd.d.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { QueryValidatorsRequest, QueryValidatorsResponseSDKType, QueryValidatorRequest, QueryValidatorResponseSDKType, QueryValidatorDelegationsRequest, QueryValidatorDelegationsResponseSDKType, QueryValidatorUnbondingDelegationsRequest, QueryValidatorUnbondingDelegationsResponseSDKType, QueryDelegationRequest, QueryDelegationResponseSDKType, QueryUnbondingDelegationRequest, QueryUnbondingDelegationResponseSDKType, QueryDelegatorDelegationsRequest, QueryDelegatorDelegationsResponseSDKType, QueryDelegatorUnbondingDelegationsRequest, QueryDelegatorUnbondingDelegationsResponseSDKType, QueryRedelegationsRequest, QueryRedelegationsResponseSDKType, QueryDelegatorValidatorsRequest, QueryDelegatorValidatorsResponseSDKType, QueryDelegatorValidatorRequest, QueryDelegatorValidatorResponseSDKType, QueryHistoricalInfoRequest, QueryHistoricalInfoResponseSDKType, QueryPoolRequest, QueryPoolResponseSDKType, QueryParamsRequest, QueryParamsResponseSDKType } from "./query"; -export declare class LCDQueryClient { - req: LCDClient; - constructor({ requestClient }: { - requestClient: LCDClient; - }); - validators(params: QueryValidatorsRequest): Promise; - validator(params: QueryValidatorRequest): Promise; - validatorDelegations(params: QueryValidatorDelegationsRequest): Promise; - validatorUnbondingDelegations(params: QueryValidatorUnbondingDelegationsRequest): Promise; - delegation(params: QueryDelegationRequest): Promise; - unbondingDelegation(params: QueryUnbondingDelegationRequest): Promise; - delegatorDelegations(params: QueryDelegatorDelegationsRequest): Promise; - delegatorUnbondingDelegations(params: QueryDelegatorUnbondingDelegationsRequest): Promise; - redelegations(params: QueryRedelegationsRequest): Promise; - delegatorValidators(params: QueryDelegatorValidatorsRequest): Promise; - delegatorValidator(params: QueryDelegatorValidatorRequest): Promise; - historicalInfo(params: QueryHistoricalInfoRequest): Promise; - pool(_params?: QueryPoolRequest): Promise; - params(_params?: QueryParamsRequest): Promise; -} diff --git a/packages/codegen/dist/cosmos/staking/v1beta1/query.rpc.Query.d.ts b/packages/codegen/dist/cosmos/staking/v1beta1/query.rpc.Query.d.ts deleted file mode 100644 index 6f710e5d..00000000 --- a/packages/codegen/dist/cosmos/staking/v1beta1/query.rpc.Query.d.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { QueryClient } from "@cosmjs/stargate"; -import { QueryValidatorsRequest, QueryValidatorsResponse, QueryValidatorRequest, QueryValidatorResponse, QueryValidatorDelegationsRequest, QueryValidatorDelegationsResponse, QueryValidatorUnbondingDelegationsRequest, QueryValidatorUnbondingDelegationsResponse, QueryDelegationRequest, QueryDelegationResponse, QueryUnbondingDelegationRequest, QueryUnbondingDelegationResponse, QueryDelegatorDelegationsRequest, QueryDelegatorDelegationsResponse, QueryDelegatorUnbondingDelegationsRequest, QueryDelegatorUnbondingDelegationsResponse, QueryRedelegationsRequest, QueryRedelegationsResponse, QueryDelegatorValidatorsRequest, QueryDelegatorValidatorsResponse, QueryDelegatorValidatorRequest, QueryDelegatorValidatorResponse, QueryHistoricalInfoRequest, QueryHistoricalInfoResponse, QueryPoolRequest, QueryPoolResponse, QueryParamsRequest, QueryParamsResponse } from "./query"; -/** Query defines the gRPC querier service. */ -export interface Query { - /** Validators queries all validators that match the given status. */ - validators(request: QueryValidatorsRequest): Promise; - /** Validator queries validator info for given validator address. */ - validator(request: QueryValidatorRequest): Promise; - /** ValidatorDelegations queries delegate info for given validator. */ - validatorDelegations(request: QueryValidatorDelegationsRequest): Promise; - /** ValidatorUnbondingDelegations queries unbonding delegations of a validator. */ - validatorUnbondingDelegations(request: QueryValidatorUnbondingDelegationsRequest): Promise; - /** Delegation queries delegate info for given validator delegator pair. */ - delegation(request: QueryDelegationRequest): Promise; - /** - * UnbondingDelegation queries unbonding info for given validator delegator - * pair. - */ - unbondingDelegation(request: QueryUnbondingDelegationRequest): Promise; - /** DelegatorDelegations queries all delegations of a given delegator address. */ - delegatorDelegations(request: QueryDelegatorDelegationsRequest): Promise; - /** - * DelegatorUnbondingDelegations queries all unbonding delegations of a given - * delegator address. - */ - delegatorUnbondingDelegations(request: QueryDelegatorUnbondingDelegationsRequest): Promise; - /** Redelegations queries redelegations of given address. */ - redelegations(request: QueryRedelegationsRequest): Promise; - /** - * DelegatorValidators queries all validators info for given delegator - * address. - */ - delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise; - /** - * DelegatorValidator queries validator info for given delegator validator - * pair. - */ - delegatorValidator(request: QueryDelegatorValidatorRequest): Promise; - /** HistoricalInfo queries the historical info for given height. */ - historicalInfo(request: QueryHistoricalInfoRequest): Promise; - /** Pool queries the pool info. */ - pool(request?: QueryPoolRequest): Promise; - /** Parameters queries the staking parameters. */ - params(request?: QueryParamsRequest): Promise; -} -export declare class QueryClientImpl implements Query { - private readonly rpc; - constructor(rpc: Rpc); - validators(request: QueryValidatorsRequest): Promise; - validator(request: QueryValidatorRequest): Promise; - validatorDelegations(request: QueryValidatorDelegationsRequest): Promise; - validatorUnbondingDelegations(request: QueryValidatorUnbondingDelegationsRequest): Promise; - delegation(request: QueryDelegationRequest): Promise; - unbondingDelegation(request: QueryUnbondingDelegationRequest): Promise; - delegatorDelegations(request: QueryDelegatorDelegationsRequest): Promise; - delegatorUnbondingDelegations(request: QueryDelegatorUnbondingDelegationsRequest): Promise; - redelegations(request: QueryRedelegationsRequest): Promise; - delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise; - delegatorValidator(request: QueryDelegatorValidatorRequest): Promise; - historicalInfo(request: QueryHistoricalInfoRequest): Promise; - pool(request?: QueryPoolRequest): Promise; - params(request?: QueryParamsRequest): Promise; -} -export declare const createRpcQueryExtension: (base: QueryClient) => { - validators(request: QueryValidatorsRequest): Promise; - validator(request: QueryValidatorRequest): Promise; - validatorDelegations(request: QueryValidatorDelegationsRequest): Promise; - validatorUnbondingDelegations(request: QueryValidatorUnbondingDelegationsRequest): Promise; - delegation(request: QueryDelegationRequest): Promise; - unbondingDelegation(request: QueryUnbondingDelegationRequest): Promise; - delegatorDelegations(request: QueryDelegatorDelegationsRequest): Promise; - delegatorUnbondingDelegations(request: QueryDelegatorUnbondingDelegationsRequest): Promise; - redelegations(request: QueryRedelegationsRequest): Promise; - delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise; - delegatorValidator(request: QueryDelegatorValidatorRequest): Promise; - historicalInfo(request: QueryHistoricalInfoRequest): Promise; - pool(request?: QueryPoolRequest): Promise; - params(request?: QueryParamsRequest): Promise; -}; diff --git a/packages/codegen/dist/cosmos/staking/v1beta1/staking.d.ts b/packages/codegen/dist/cosmos/staking/v1beta1/staking.d.ts deleted file mode 100644 index 5ff33ef1..00000000 --- a/packages/codegen/dist/cosmos/staking/v1beta1/staking.d.ts +++ /dev/null @@ -1,513 +0,0 @@ -/// -import { Header, HeaderSDKType } from "../../../tendermint/types/types"; -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import { Duration, DurationSDKType } from "../../../google/protobuf/duration"; -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** BondStatus is the status of a validator. */ -export declare enum BondStatus { - /** BOND_STATUS_UNSPECIFIED - UNSPECIFIED defines an invalid validator status. */ - BOND_STATUS_UNSPECIFIED = 0, - /** BOND_STATUS_UNBONDED - UNBONDED defines a validator that is not bonded. */ - BOND_STATUS_UNBONDED = 1, - /** BOND_STATUS_UNBONDING - UNBONDING defines a validator that is unbonding. */ - BOND_STATUS_UNBONDING = 2, - /** BOND_STATUS_BONDED - BONDED defines a validator that is bonded. */ - BOND_STATUS_BONDED = 3, - UNRECOGNIZED = -1 -} -export declare const BondStatusSDKType: typeof BondStatus; -export declare function bondStatusFromJSON(object: any): BondStatus; -export declare function bondStatusToJSON(object: BondStatus): string; -/** - * 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). - */ -export interface HistoricalInfo { - header?: Header; - valset: Validator[]; -} -/** - * 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). - */ -export interface HistoricalInfoSDKType { - header?: HeaderSDKType; - valset: ValidatorSDKType[]; -} -/** - * CommissionRates defines the initial commission rates to be used for creating - * a validator. - */ -export interface CommissionRates { - /** rate is the commission rate charged to delegators, as a fraction. */ - rate: string; - /** max_rate defines the maximum commission rate which validator can ever charge, as a fraction. */ - maxRate: string; - /** max_change_rate defines the maximum daily increase of the validator commission, as a fraction. */ - maxChangeRate: string; -} -/** - * CommissionRates defines the initial commission rates to be used for creating - * a validator. - */ -export interface CommissionRatesSDKType { - rate: string; - max_rate: string; - max_change_rate: string; -} -/** Commission defines commission parameters for a given validator. */ -export interface Commission { - /** commission_rates defines the initial commission rates to be used for creating a validator. */ - commissionRates?: CommissionRates; - /** update_time is the last time the commission rate was changed. */ - updateTime?: Date; -} -/** Commission defines commission parameters for a given validator. */ -export interface CommissionSDKType { - commission_rates?: CommissionRatesSDKType; - update_time?: Date; -} -/** Description defines a validator description. */ -export interface Description { - /** moniker defines a human-readable name for the validator. */ - moniker: string; - /** identity defines an optional identity signature (ex. UPort or Keybase). */ - identity: string; - /** website defines an optional website link. */ - website: string; - /** security_contact defines an optional email for security contact. */ - securityContact: string; - /** details define other optional details. */ - details: string; -} -/** Description defines a validator description. */ -export interface DescriptionSDKType { - moniker: string; - identity: string; - website: string; - security_contact: string; - details: string; -} -/** - * 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. - */ -export interface Validator { - /** operator_address defines the address of the validator's operator; bech encoded in JSON. */ - operatorAddress: string; - /** consensus_pubkey is the consensus public key of the validator, as a Protobuf Any. */ - consensusPubkey?: Any; - /** jailed defined whether the validator has been jailed from bonded status or not. */ - jailed: boolean; - /** status is the validator status (bonded/unbonding/unbonded). */ - status: BondStatus; - /** tokens define the delegated tokens (incl. self-delegation). */ - tokens: string; - /** delegator_shares defines total shares issued to a validator's delegators. */ - delegatorShares: string; - /** description defines the description terms for the validator. */ - description?: Description; - /** unbonding_height defines, if unbonding, the height at which this validator has begun unbonding. */ - unbondingHeight: Long; - /** unbonding_time defines, if unbonding, the min time for the validator to complete unbonding. */ - unbondingTime?: Date; - /** commission defines the commission parameters. */ - commission?: Commission; - /** min_self_delegation is the validator's self declared minimum self delegation. */ - minSelfDelegation: string; -} -/** - * 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. - */ -export interface ValidatorSDKType { - operator_address: string; - consensus_pubkey?: AnySDKType; - jailed: boolean; - status: BondStatus; - tokens: string; - delegator_shares: string; - description?: DescriptionSDKType; - unbonding_height: Long; - unbonding_time?: Date; - commission?: CommissionSDKType; - min_self_delegation: string; -} -/** ValAddresses defines a repeated set of validator addresses. */ -export interface ValAddresses { - addresses: string[]; -} -/** ValAddresses defines a repeated set of validator addresses. */ -export interface ValAddressesSDKType { - addresses: string[]; -} -/** - * 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. - */ -export interface DVPair { - delegatorAddress: string; - validatorAddress: string; -} -/** - * 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. - */ -export interface DVPairSDKType { - delegator_address: string; - validator_address: string; -} -/** DVPairs defines an array of DVPair objects. */ -export interface DVPairs { - pairs: DVPair[]; -} -/** DVPairs defines an array of DVPair objects. */ -export interface DVPairsSDKType { - pairs: DVPairSDKType[]; -} -/** - * 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. - */ -export interface DVVTriplet { - delegatorAddress: string; - validatorSrcAddress: string; - validatorDstAddress: string; -} -/** - * 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. - */ -export interface DVVTripletSDKType { - delegator_address: string; - validator_src_address: string; - validator_dst_address: string; -} -/** DVVTriplets defines an array of DVVTriplet objects. */ -export interface DVVTriplets { - triplets: DVVTriplet[]; -} -/** DVVTriplets defines an array of DVVTriplet objects. */ -export interface DVVTripletsSDKType { - triplets: DVVTripletSDKType[]; -} -/** - * 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. - */ -export interface Delegation { - /** delegator_address is the bech32-encoded address of the delegator. */ - delegatorAddress: string; - /** validator_address is the bech32-encoded address of the validator. */ - validatorAddress: string; - /** shares define the delegation shares received. */ - shares: string; -} -/** - * 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. - */ -export interface DelegationSDKType { - delegator_address: string; - validator_address: string; - shares: string; -} -/** - * UnbondingDelegation stores all of a single delegator's unbonding bonds - * for a single validator in an time-ordered list. - */ -export interface UnbondingDelegation { - /** delegator_address is the bech32-encoded address of the delegator. */ - delegatorAddress: string; - /** validator_address is the bech32-encoded address of the validator. */ - validatorAddress: string; - /** entries are the unbonding delegation entries. */ - entries: UnbondingDelegationEntry[]; -} -/** - * UnbondingDelegation stores all of a single delegator's unbonding bonds - * for a single validator in an time-ordered list. - */ -export interface UnbondingDelegationSDKType { - delegator_address: string; - validator_address: string; - entries: UnbondingDelegationEntrySDKType[]; -} -/** UnbondingDelegationEntry defines an unbonding object with relevant metadata. */ -export interface UnbondingDelegationEntry { - /** creation_height is the height which the unbonding took place. */ - creationHeight: Long; - /** completion_time is the unix time for unbonding completion. */ - completionTime?: Date; - /** initial_balance defines the tokens initially scheduled to receive at completion. */ - initialBalance: string; - /** balance defines the tokens to receive at completion. */ - balance: string; -} -/** UnbondingDelegationEntry defines an unbonding object with relevant metadata. */ -export interface UnbondingDelegationEntrySDKType { - creation_height: Long; - completion_time?: Date; - initial_balance: string; - balance: string; -} -/** RedelegationEntry defines a redelegation object with relevant metadata. */ -export interface RedelegationEntry { - /** creation_height defines the height which the redelegation took place. */ - creationHeight: Long; - /** completion_time defines the unix time for redelegation completion. */ - completionTime?: Date; - /** initial_balance defines the initial balance when redelegation started. */ - initialBalance: string; - /** shares_dst is the amount of destination-validator shares created by redelegation. */ - sharesDst: string; -} -/** RedelegationEntry defines a redelegation object with relevant metadata. */ -export interface RedelegationEntrySDKType { - creation_height: Long; - completion_time?: Date; - initial_balance: string; - shares_dst: string; -} -/** - * Redelegation contains the list of a particular delegator's redelegating bonds - * from a particular source validator to a particular destination validator. - */ -export interface Redelegation { - /** delegator_address is the bech32-encoded address of the delegator. */ - delegatorAddress: string; - /** validator_src_address is the validator redelegation source operator address. */ - validatorSrcAddress: string; - /** validator_dst_address is the validator redelegation destination operator address. */ - validatorDstAddress: string; - /** entries are the redelegation entries. */ - entries: RedelegationEntry[]; -} -/** - * Redelegation contains the list of a particular delegator's redelegating bonds - * from a particular source validator to a particular destination validator. - */ -export interface RedelegationSDKType { - delegator_address: string; - validator_src_address: string; - validator_dst_address: string; - entries: RedelegationEntrySDKType[]; -} -/** Params defines the parameters for the staking module. */ -export interface Params { - /** unbonding_time is the time duration of unbonding. */ - unbondingTime?: Duration; - /** max_validators is the maximum number of validators. */ - maxValidators: number; - /** max_entries is the max entries for either unbonding delegation or redelegation (per pair/trio). */ - maxEntries: number; - /** historical_entries is the number of historical entries to persist. */ - historicalEntries: number; - /** bond_denom defines the bondable coin denomination. */ - bondDenom: string; - /** min_commission_rate is the chain-wide minimum commission rate that a validator can charge their delegators */ - minCommissionRate: string; -} -/** Params defines the parameters for the staking module. */ -export interface ParamsSDKType { - unbonding_time?: DurationSDKType; - max_validators: number; - max_entries: number; - historical_entries: number; - bond_denom: string; - min_commission_rate: string; -} -/** - * DelegationResponse is equivalent to Delegation except that it contains a - * balance in addition to shares which is more suitable for client responses. - */ -export interface DelegationResponse { - delegation?: Delegation; - balance?: Coin; -} -/** - * DelegationResponse is equivalent to Delegation except that it contains a - * balance in addition to shares which is more suitable for client responses. - */ -export interface DelegationResponseSDKType { - delegation?: DelegationSDKType; - balance?: CoinSDKType; -} -/** - * RedelegationEntryResponse is equivalent to a RedelegationEntry except that it - * contains a balance in addition to shares which is more suitable for client - * responses. - */ -export interface RedelegationEntryResponse { - redelegationEntry?: RedelegationEntry; - balance: string; -} -/** - * RedelegationEntryResponse is equivalent to a RedelegationEntry except that it - * contains a balance in addition to shares which is more suitable for client - * responses. - */ -export interface RedelegationEntryResponseSDKType { - redelegation_entry?: RedelegationEntrySDKType; - balance: string; -} -/** - * RedelegationResponse is equivalent to a Redelegation except that its entries - * contain a balance in addition to shares which is more suitable for client - * responses. - */ -export interface RedelegationResponse { - redelegation?: Redelegation; - entries: 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. - */ -export interface RedelegationResponseSDKType { - redelegation?: RedelegationSDKType; - entries: RedelegationEntryResponseSDKType[]; -} -/** - * Pool is used for tracking bonded and not-bonded token supply of the bond - * denomination. - */ -export interface Pool { - notBondedTokens: string; - bondedTokens: string; -} -/** - * Pool is used for tracking bonded and not-bonded token supply of the bond - * denomination. - */ -export interface PoolSDKType { - not_bonded_tokens: string; - bonded_tokens: string; -} -export declare const HistoricalInfo: { - encode(message: HistoricalInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): HistoricalInfo; - fromPartial(object: DeepPartial): HistoricalInfo; -}; -export declare const CommissionRates: { - encode(message: CommissionRates, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): CommissionRates; - fromPartial(object: DeepPartial): CommissionRates; -}; -export declare const Commission: { - encode(message: Commission, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Commission; - fromPartial(object: DeepPartial): Commission; -}; -export declare const Description: { - encode(message: Description, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Description; - fromPartial(object: DeepPartial): Description; -}; -export declare const Validator: { - encode(message: Validator, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Validator; - fromPartial(object: DeepPartial): Validator; -}; -export declare const ValAddresses: { - encode(message: ValAddresses, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ValAddresses; - fromPartial(object: DeepPartial): ValAddresses; -}; -export declare const DVPair: { - encode(message: DVPair, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): DVPair; - fromPartial(object: DeepPartial): DVPair; -}; -export declare const DVPairs: { - encode(message: DVPairs, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): DVPairs; - fromPartial(object: DeepPartial): DVPairs; -}; -export declare const DVVTriplet: { - encode(message: DVVTriplet, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): DVVTriplet; - fromPartial(object: DeepPartial): DVVTriplet; -}; -export declare const DVVTriplets: { - encode(message: DVVTriplets, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): DVVTriplets; - fromPartial(object: DeepPartial): DVVTriplets; -}; -export declare const Delegation: { - encode(message: Delegation, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Delegation; - fromPartial(object: DeepPartial): Delegation; -}; -export declare const UnbondingDelegation: { - encode(message: UnbondingDelegation, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): UnbondingDelegation; - fromPartial(object: DeepPartial): UnbondingDelegation; -}; -export declare const UnbondingDelegationEntry: { - encode(message: UnbondingDelegationEntry, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): UnbondingDelegationEntry; - fromPartial(object: DeepPartial): UnbondingDelegationEntry; -}; -export declare const RedelegationEntry: { - encode(message: RedelegationEntry, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): RedelegationEntry; - fromPartial(object: DeepPartial): RedelegationEntry; -}; -export declare const Redelegation: { - encode(message: Redelegation, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Redelegation; - fromPartial(object: DeepPartial): Redelegation; -}; -export declare const Params: { - encode(message: Params, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Params; - fromPartial(object: DeepPartial): Params; -}; -export declare const DelegationResponse: { - encode(message: DelegationResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): DelegationResponse; - fromPartial(object: DeepPartial): DelegationResponse; -}; -export declare const RedelegationEntryResponse: { - encode(message: RedelegationEntryResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): RedelegationEntryResponse; - fromPartial(object: DeepPartial): RedelegationEntryResponse; -}; -export declare const RedelegationResponse: { - encode(message: RedelegationResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): RedelegationResponse; - fromPartial(object: DeepPartial): RedelegationResponse; -}; -export declare const Pool: { - encode(message: Pool, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Pool; - fromPartial(object: DeepPartial): Pool; -}; diff --git a/packages/codegen/dist/cosmos/staking/v1beta1/tx.d.ts b/packages/codegen/dist/cosmos/staking/v1beta1/tx.d.ts deleted file mode 100644 index 4c3d5d75..00000000 --- a/packages/codegen/dist/cosmos/staking/v1beta1/tx.d.ts +++ /dev/null @@ -1,185 +0,0 @@ -import { Description, DescriptionSDKType, CommissionRates, CommissionRatesSDKType } from "./staking"; -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** MsgCreateValidator defines a SDK message for creating a new validator. */ -export interface MsgCreateValidator { - description?: Description; - commission?: CommissionRates; - minSelfDelegation: string; - delegatorAddress: string; - validatorAddress: string; - pubkey?: Any; - value?: Coin; -} -/** MsgCreateValidator defines a SDK message for creating a new validator. */ -export interface MsgCreateValidatorSDKType { - description?: DescriptionSDKType; - commission?: CommissionRatesSDKType; - min_self_delegation: string; - delegator_address: string; - validator_address: string; - pubkey?: AnySDKType; - value?: CoinSDKType; -} -/** MsgCreateValidatorResponse defines the Msg/CreateValidator response type. */ -export interface MsgCreateValidatorResponse { -} -/** MsgCreateValidatorResponse defines the Msg/CreateValidator response type. */ -export interface MsgCreateValidatorResponseSDKType { -} -/** MsgEditValidator defines a SDK message for editing an existing validator. */ -export interface MsgEditValidator { - description?: Description; - validatorAddress: string; - /** - * 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 - */ - commissionRate: string; - minSelfDelegation: string; -} -/** MsgEditValidator defines a SDK message for editing an existing validator. */ -export interface MsgEditValidatorSDKType { - description?: DescriptionSDKType; - validator_address: string; - commission_rate: string; - min_self_delegation: string; -} -/** MsgEditValidatorResponse defines the Msg/EditValidator response type. */ -export interface MsgEditValidatorResponse { -} -/** MsgEditValidatorResponse defines the Msg/EditValidator response type. */ -export interface MsgEditValidatorResponseSDKType { -} -/** - * MsgDelegate defines a SDK message for performing a delegation of coins - * from a delegator to a validator. - */ -export interface MsgDelegate { - delegatorAddress: string; - validatorAddress: string; - amount?: Coin; -} -/** - * MsgDelegate defines a SDK message for performing a delegation of coins - * from a delegator to a validator. - */ -export interface MsgDelegateSDKType { - delegator_address: string; - validator_address: string; - amount?: CoinSDKType; -} -/** MsgDelegateResponse defines the Msg/Delegate response type. */ -export interface MsgDelegateResponse { -} -/** MsgDelegateResponse defines the Msg/Delegate response type. */ -export interface MsgDelegateResponseSDKType { -} -/** - * MsgBeginRedelegate defines a SDK message for performing a redelegation - * of coins from a delegator and source validator to a destination validator. - */ -export interface MsgBeginRedelegate { - delegatorAddress: string; - validatorSrcAddress: string; - validatorDstAddress: string; - amount?: Coin; -} -/** - * MsgBeginRedelegate defines a SDK message for performing a redelegation - * of coins from a delegator and source validator to a destination validator. - */ -export interface MsgBeginRedelegateSDKType { - delegator_address: string; - validator_src_address: string; - validator_dst_address: string; - amount?: CoinSDKType; -} -/** MsgBeginRedelegateResponse defines the Msg/BeginRedelegate response type. */ -export interface MsgBeginRedelegateResponse { - completionTime?: Date; -} -/** MsgBeginRedelegateResponse defines the Msg/BeginRedelegate response type. */ -export interface MsgBeginRedelegateResponseSDKType { - completion_time?: Date; -} -/** - * MsgUndelegate defines a SDK message for performing an undelegation from a - * delegate and a validator. - */ -export interface MsgUndelegate { - delegatorAddress: string; - validatorAddress: string; - amount?: Coin; -} -/** - * MsgUndelegate defines a SDK message for performing an undelegation from a - * delegate and a validator. - */ -export interface MsgUndelegateSDKType { - delegator_address: string; - validator_address: string; - amount?: CoinSDKType; -} -/** MsgUndelegateResponse defines the Msg/Undelegate response type. */ -export interface MsgUndelegateResponse { - completionTime?: Date; -} -/** MsgUndelegateResponse defines the Msg/Undelegate response type. */ -export interface MsgUndelegateResponseSDKType { - completion_time?: Date; -} -export declare const MsgCreateValidator: { - encode(message: MsgCreateValidator, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateValidator; - fromPartial(object: DeepPartial): MsgCreateValidator; -}; -export declare const MsgCreateValidatorResponse: { - encode(_: MsgCreateValidatorResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateValidatorResponse; - fromPartial(_: DeepPartial): MsgCreateValidatorResponse; -}; -export declare const MsgEditValidator: { - encode(message: MsgEditValidator, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgEditValidator; - fromPartial(object: DeepPartial): MsgEditValidator; -}; -export declare const MsgEditValidatorResponse: { - encode(_: MsgEditValidatorResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgEditValidatorResponse; - fromPartial(_: DeepPartial): MsgEditValidatorResponse; -}; -export declare const MsgDelegate: { - encode(message: MsgDelegate, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgDelegate; - fromPartial(object: DeepPartial): MsgDelegate; -}; -export declare const MsgDelegateResponse: { - encode(_: MsgDelegateResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgDelegateResponse; - fromPartial(_: DeepPartial): MsgDelegateResponse; -}; -export declare const MsgBeginRedelegate: { - encode(message: MsgBeginRedelegate, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgBeginRedelegate; - fromPartial(object: DeepPartial): MsgBeginRedelegate; -}; -export declare const MsgBeginRedelegateResponse: { - encode(message: MsgBeginRedelegateResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgBeginRedelegateResponse; - fromPartial(object: DeepPartial): MsgBeginRedelegateResponse; -}; -export declare const MsgUndelegate: { - encode(message: MsgUndelegate, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUndelegate; - fromPartial(object: DeepPartial): MsgUndelegate; -}; -export declare const MsgUndelegateResponse: { - encode(message: MsgUndelegateResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUndelegateResponse; - fromPartial(object: DeepPartial): MsgUndelegateResponse; -}; diff --git a/packages/codegen/dist/cosmos/staking/v1beta1/tx.rpc.msg.d.ts b/packages/codegen/dist/cosmos/staking/v1beta1/tx.rpc.msg.d.ts deleted file mode 100644 index 6de176bb..00000000 --- a/packages/codegen/dist/cosmos/staking/v1beta1/tx.rpc.msg.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { MsgCreateValidator, MsgCreateValidatorResponse, MsgEditValidator, MsgEditValidatorResponse, MsgDelegate, MsgDelegateResponse, MsgBeginRedelegate, MsgBeginRedelegateResponse, MsgUndelegate, MsgUndelegateResponse } from "./tx"; -/** Msg defines the staking Msg service. */ -export interface Msg { - /** CreateValidator defines a method for creating a new validator. */ - createValidator(request: MsgCreateValidator): Promise; - /** EditValidator defines a method for editing an existing validator. */ - editValidator(request: MsgEditValidator): Promise; - /** - * Delegate defines a method for performing a delegation of coins - * from a delegator to a validator. - */ - delegate(request: MsgDelegate): Promise; - /** - * BeginRedelegate defines a method for performing a redelegation - * of coins from a delegator and source validator to a destination validator. - */ - beginRedelegate(request: MsgBeginRedelegate): Promise; - /** - * Undelegate defines a method for performing an undelegation from a - * delegate and a validator. - */ - undelegate(request: MsgUndelegate): Promise; -} -export declare class MsgClientImpl implements Msg { - private readonly rpc; - constructor(rpc: Rpc); - createValidator(request: MsgCreateValidator): Promise; - editValidator(request: MsgEditValidator): Promise; - delegate(request: MsgDelegate): Promise; - beginRedelegate(request: MsgBeginRedelegate): Promise; - undelegate(request: MsgUndelegate): Promise; -} diff --git a/packages/codegen/dist/cosmos/tx/signing/v1beta1/signing.d.ts b/packages/codegen/dist/cosmos/tx/signing/v1beta1/signing.d.ts deleted file mode 100644 index 34aac02d..00000000 --- a/packages/codegen/dist/cosmos/tx/signing/v1beta1/signing.d.ts +++ /dev/null @@ -1,149 +0,0 @@ -/// -import { CompactBitArray, CompactBitArraySDKType } from "../../../crypto/multisig/v1beta1/multisig"; -import { Any, AnySDKType } from "../../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../../helpers"; -/** - * 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. - */ -export declare enum SignMode { - /** - * SIGN_MODE_UNSPECIFIED - SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be - * rejected. - */ - SIGN_MODE_UNSPECIFIED = 0, - /** - * SIGN_MODE_DIRECT - 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 - 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 not supported. - */ - SIGN_MODE_TEXTUAL = 2, - /** - * SIGN_MODE_DIRECT_AUX - 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 - 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, - UNRECOGNIZED = -1 -} -export declare const SignModeSDKType: typeof SignMode; -export declare function signModeFromJSON(object: any): SignMode; -export declare function signModeToJSON(object: SignMode): string; -/** SignatureDescriptors wraps multiple SignatureDescriptor's. */ -export interface SignatureDescriptors { - /** signatures are the signature descriptors */ - signatures: SignatureDescriptor[]; -} -/** SignatureDescriptors wraps multiple SignatureDescriptor's. */ -export interface SignatureDescriptorsSDKType { - signatures: SignatureDescriptorSDKType[]; -} -/** - * 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. - */ -export interface SignatureDescriptor { - /** public_key is the public key of the signer */ - publicKey?: Any; - data?: SignatureDescriptor_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. - */ - sequence: Long; -} -/** - * 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. - */ -export interface SignatureDescriptorSDKType { - public_key?: AnySDKType; - data?: SignatureDescriptor_DataSDKType; - sequence: Long; -} -/** Data represents signature data */ -export interface SignatureDescriptor_Data { - /** single represents a single signer */ - single?: SignatureDescriptor_Data_Single; - /** multi represents a multisig signer */ - multi?: SignatureDescriptor_Data_Multi; -} -/** Data represents signature data */ -export interface SignatureDescriptor_DataSDKType { - single?: SignatureDescriptor_Data_SingleSDKType; - multi?: SignatureDescriptor_Data_MultiSDKType; -} -/** Single is the signature data for a single signer */ -export interface SignatureDescriptor_Data_Single { - /** mode is the signing mode of the single signer */ - mode: SignMode; - /** signature is the raw signature bytes */ - signature: Uint8Array; -} -/** Single is the signature data for a single signer */ -export interface SignatureDescriptor_Data_SingleSDKType { - mode: SignMode; - signature: Uint8Array; -} -/** Multi is the signature data for a multisig public key */ -export interface SignatureDescriptor_Data_Multi { - /** bitarray specifies which keys within the multisig are signing */ - bitarray?: CompactBitArray; - /** signatures is the signatures of the multi-signature */ - signatures: SignatureDescriptor_Data[]; -} -/** Multi is the signature data for a multisig public key */ -export interface SignatureDescriptor_Data_MultiSDKType { - bitarray?: CompactBitArraySDKType; - signatures: SignatureDescriptor_DataSDKType[]; -} -export declare const SignatureDescriptors: { - encode(message: SignatureDescriptors, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SignatureDescriptors; - fromPartial(object: DeepPartial): SignatureDescriptors; -}; -export declare const SignatureDescriptor: { - encode(message: SignatureDescriptor, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SignatureDescriptor; - fromPartial(object: DeepPartial): SignatureDescriptor; -}; -export declare const SignatureDescriptor_Data: { - encode(message: SignatureDescriptor_Data, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SignatureDescriptor_Data; - fromPartial(object: DeepPartial): SignatureDescriptor_Data; -}; -export declare const SignatureDescriptor_Data_Single: { - encode(message: SignatureDescriptor_Data_Single, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SignatureDescriptor_Data_Single; - fromPartial(object: DeepPartial): SignatureDescriptor_Data_Single; -}; -export declare const SignatureDescriptor_Data_Multi: { - encode(message: SignatureDescriptor_Data_Multi, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SignatureDescriptor_Data_Multi; - fromPartial(object: DeepPartial): SignatureDescriptor_Data_Multi; -}; diff --git a/packages/codegen/dist/cosmos/tx/v1beta1/service.d.ts b/packages/codegen/dist/cosmos/tx/v1beta1/service.d.ts deleted file mode 100644 index 756e56b8..00000000 --- a/packages/codegen/dist/cosmos/tx/v1beta1/service.d.ts +++ /dev/null @@ -1,286 +0,0 @@ -/// -import { Tx, TxSDKType } from "./tx"; -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { TxResponse, TxResponseSDKType, GasInfo, GasInfoSDKType, Result, ResultSDKType } from "../../base/abci/v1beta1/abci"; -import { BlockID, BlockIDSDKType } from "../../../tendermint/types/types"; -import { Block, BlockSDKType } from "../../../tendermint/types/block"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** OrderBy defines the sorting order */ -export declare enum OrderBy { - /** ORDER_BY_UNSPECIFIED - ORDER_BY_UNSPECIFIED specifies an unknown sorting order. OrderBy defaults to ASC in this case. */ - ORDER_BY_UNSPECIFIED = 0, - /** ORDER_BY_ASC - ORDER_BY_ASC defines ascending order */ - ORDER_BY_ASC = 1, - /** ORDER_BY_DESC - ORDER_BY_DESC defines descending order */ - ORDER_BY_DESC = 2, - UNRECOGNIZED = -1 -} -export declare const OrderBySDKType: typeof OrderBy; -export declare function orderByFromJSON(object: any): OrderBy; -export declare function orderByToJSON(object: OrderBy): string; -/** BroadcastMode specifies the broadcast mode for the TxService.Broadcast RPC method. */ -export declare enum BroadcastMode { - /** BROADCAST_MODE_UNSPECIFIED - zero-value for mode ordering */ - BROADCAST_MODE_UNSPECIFIED = 0, - /** - * BROADCAST_MODE_BLOCK - BROADCAST_MODE_BLOCK defines a tx broadcasting mode where the client waits for - * the tx to be committed in a block. - */ - BROADCAST_MODE_BLOCK = 1, - /** - * BROADCAST_MODE_SYNC - 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 - BROADCAST_MODE_ASYNC defines a tx broadcasting mode where the client returns - * immediately. - */ - BROADCAST_MODE_ASYNC = 3, - UNRECOGNIZED = -1 -} -export declare const BroadcastModeSDKType: typeof BroadcastMode; -export declare function broadcastModeFromJSON(object: any): BroadcastMode; -export declare function broadcastModeToJSON(object: BroadcastMode): string; -/** - * GetTxsEventRequest is the request type for the Service.TxsByEvents - * RPC method. - */ -export interface GetTxsEventRequest { - /** events is the list of transaction event type. */ - events: string[]; - /** pagination defines a pagination for the request. */ - pagination?: PageRequest; - orderBy: OrderBy; -} -/** - * GetTxsEventRequest is the request type for the Service.TxsByEvents - * RPC method. - */ -export interface GetTxsEventRequestSDKType { - events: string[]; - pagination?: PageRequestSDKType; - order_by: OrderBy; -} -/** - * GetTxsEventResponse is the response type for the Service.TxsByEvents - * RPC method. - */ -export interface GetTxsEventResponse { - /** txs is the list of queried transactions. */ - txs: Tx[]; - /** tx_responses is the list of queried TxResponses. */ - txResponses: TxResponse[]; - /** pagination defines a pagination for the response. */ - pagination?: PageResponse; -} -/** - * GetTxsEventResponse is the response type for the Service.TxsByEvents - * RPC method. - */ -export interface GetTxsEventResponseSDKType { - txs: TxSDKType[]; - tx_responses: TxResponseSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * BroadcastTxRequest is the request type for the Service.BroadcastTxRequest - * RPC method. - */ -export interface BroadcastTxRequest { - /** tx_bytes is the raw transaction. */ - txBytes: Uint8Array; - mode: BroadcastMode; -} -/** - * BroadcastTxRequest is the request type for the Service.BroadcastTxRequest - * RPC method. - */ -export interface BroadcastTxRequestSDKType { - tx_bytes: Uint8Array; - mode: BroadcastMode; -} -/** - * BroadcastTxResponse is the response type for the - * Service.BroadcastTx method. - */ -export interface BroadcastTxResponse { - /** tx_response is the queried TxResponses. */ - txResponse?: TxResponse; -} -/** - * BroadcastTxResponse is the response type for the - * Service.BroadcastTx method. - */ -export interface BroadcastTxResponseSDKType { - tx_response?: TxResponseSDKType; -} -/** - * SimulateRequest is the request type for the Service.Simulate - * RPC method. - */ -export interface SimulateRequest { - /** - * tx is the transaction to simulate. - * Deprecated. Send raw tx bytes instead. - */ - /** @deprecated */ - tx?: Tx; - /** - * tx_bytes is the raw transaction. - * - * Since: cosmos-sdk 0.43 - */ - txBytes: Uint8Array; -} -/** - * SimulateRequest is the request type for the Service.Simulate - * RPC method. - */ -export interface SimulateRequestSDKType { - /** @deprecated */ - tx?: TxSDKType; - tx_bytes: Uint8Array; -} -/** - * SimulateResponse is the response type for the - * Service.SimulateRPC method. - */ -export interface SimulateResponse { - /** gas_info is the information about gas used in the simulation. */ - gasInfo?: GasInfo; - /** result is the result of the simulation. */ - result?: Result; -} -/** - * SimulateResponse is the response type for the - * Service.SimulateRPC method. - */ -export interface SimulateResponseSDKType { - gas_info?: GasInfoSDKType; - result?: ResultSDKType; -} -/** - * GetTxRequest is the request type for the Service.GetTx - * RPC method. - */ -export interface GetTxRequest { - /** hash is the tx hash to query, encoded as a hex string. */ - hash: string; -} -/** - * GetTxRequest is the request type for the Service.GetTx - * RPC method. - */ -export interface GetTxRequestSDKType { - hash: string; -} -/** GetTxResponse is the response type for the Service.GetTx method. */ -export interface GetTxResponse { - /** tx is the queried transaction. */ - tx?: Tx; - /** tx_response is the queried TxResponses. */ - txResponse?: TxResponse; -} -/** GetTxResponse is the response type for the Service.GetTx method. */ -export interface GetTxResponseSDKType { - tx?: TxSDKType; - tx_response?: TxResponseSDKType; -} -/** - * GetBlockWithTxsRequest is the request type for the Service.GetBlockWithTxs - * RPC method. - * - * Since: cosmos-sdk 0.45.2 - */ -export interface GetBlockWithTxsRequest { - /** height is the height of the block to query. */ - height: Long; - /** pagination defines a pagination for the request. */ - pagination?: PageRequest; -} -/** - * GetBlockWithTxsRequest is the request type for the Service.GetBlockWithTxs - * RPC method. - * - * Since: cosmos-sdk 0.45.2 - */ -export interface GetBlockWithTxsRequestSDKType { - height: Long; - pagination?: PageRequestSDKType; -} -/** - * GetBlockWithTxsResponse is the response type for the Service.GetBlockWithTxs method. - * - * Since: cosmos-sdk 0.45.2 - */ -export interface GetBlockWithTxsResponse { - /** txs are the transactions in the block. */ - txs: Tx[]; - blockId?: BlockID; - block?: Block; - /** pagination defines a pagination for the response. */ - pagination?: PageResponse; -} -/** - * GetBlockWithTxsResponse is the response type for the Service.GetBlockWithTxs method. - * - * Since: cosmos-sdk 0.45.2 - */ -export interface GetBlockWithTxsResponseSDKType { - txs: TxSDKType[]; - block_id?: BlockIDSDKType; - block?: BlockSDKType; - pagination?: PageResponseSDKType; -} -export declare const GetTxsEventRequest: { - encode(message: GetTxsEventRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetTxsEventRequest; - fromPartial(object: DeepPartial): GetTxsEventRequest; -}; -export declare const GetTxsEventResponse: { - encode(message: GetTxsEventResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetTxsEventResponse; - fromPartial(object: DeepPartial): GetTxsEventResponse; -}; -export declare const BroadcastTxRequest: { - encode(message: BroadcastTxRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): BroadcastTxRequest; - fromPartial(object: DeepPartial): BroadcastTxRequest; -}; -export declare const BroadcastTxResponse: { - encode(message: BroadcastTxResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): BroadcastTxResponse; - fromPartial(object: DeepPartial): BroadcastTxResponse; -}; -export declare const SimulateRequest: { - encode(message: SimulateRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SimulateRequest; - fromPartial(object: DeepPartial): SimulateRequest; -}; -export declare const SimulateResponse: { - encode(message: SimulateResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SimulateResponse; - fromPartial(object: DeepPartial): SimulateResponse; -}; -export declare const GetTxRequest: { - encode(message: GetTxRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetTxRequest; - fromPartial(object: DeepPartial): GetTxRequest; -}; -export declare const GetTxResponse: { - encode(message: GetTxResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetTxResponse; - fromPartial(object: DeepPartial): GetTxResponse; -}; -export declare const GetBlockWithTxsRequest: { - encode(message: GetBlockWithTxsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetBlockWithTxsRequest; - fromPartial(object: DeepPartial): GetBlockWithTxsRequest; -}; -export declare const GetBlockWithTxsResponse: { - encode(message: GetBlockWithTxsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GetBlockWithTxsResponse; - fromPartial(object: DeepPartial): GetBlockWithTxsResponse; -}; diff --git a/packages/codegen/dist/cosmos/tx/v1beta1/service.lcd.d.ts b/packages/codegen/dist/cosmos/tx/v1beta1/service.lcd.d.ts deleted file mode 100644 index 5a4e8c97..00000000 --- a/packages/codegen/dist/cosmos/tx/v1beta1/service.lcd.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { GetTxRequest, GetTxResponseSDKType, GetTxsEventRequest, GetTxsEventResponseSDKType, GetBlockWithTxsRequest, GetBlockWithTxsResponseSDKType } from "./service"; -export declare class LCDQueryClient { - req: LCDClient; - constructor({ requestClient }: { - requestClient: LCDClient; - }); - getTx(params: GetTxRequest): Promise; - getTxsEvent(params: GetTxsEventRequest): Promise; - getBlockWithTxs(params: GetBlockWithTxsRequest): Promise; -} diff --git a/packages/codegen/dist/cosmos/tx/v1beta1/service.rpc.Service.d.ts b/packages/codegen/dist/cosmos/tx/v1beta1/service.rpc.Service.d.ts deleted file mode 100644 index 8ce5bc4f..00000000 --- a/packages/codegen/dist/cosmos/tx/v1beta1/service.rpc.Service.d.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { QueryClient } from "@cosmjs/stargate"; -import { SimulateRequest, SimulateResponse, GetTxRequest, GetTxResponse, BroadcastTxRequest, BroadcastTxResponse, GetTxsEventRequest, GetTxsEventResponse, GetBlockWithTxsRequest, GetBlockWithTxsResponse } from "./service"; -/** Service defines a gRPC service for interacting with transactions. */ -export interface Service { - /** Simulate simulates executing a transaction for estimating gas usage. */ - simulate(request: SimulateRequest): Promise; - /** GetTx fetches a tx by hash. */ - getTx(request: GetTxRequest): Promise; - /** BroadcastTx broadcast transaction. */ - broadcastTx(request: BroadcastTxRequest): Promise; - /** GetTxsEvent fetches txs by event. */ - getTxsEvent(request: GetTxsEventRequest): Promise; - /** - * GetBlockWithTxs fetches a block with decoded txs. - * - * Since: cosmos-sdk 0.45.2 - */ - getBlockWithTxs(request: GetBlockWithTxsRequest): Promise; -} -export declare class ServiceClientImpl implements Service { - private readonly rpc; - constructor(rpc: Rpc); - simulate(request: SimulateRequest): Promise; - getTx(request: GetTxRequest): Promise; - broadcastTx(request: BroadcastTxRequest): Promise; - getTxsEvent(request: GetTxsEventRequest): Promise; - getBlockWithTxs(request: GetBlockWithTxsRequest): Promise; -} -export declare const createRpcQueryExtension: (base: QueryClient) => { - simulate(request: SimulateRequest): Promise; - getTx(request: GetTxRequest): Promise; - broadcastTx(request: BroadcastTxRequest): Promise; - getTxsEvent(request: GetTxsEventRequest): Promise; - getBlockWithTxs(request: GetBlockWithTxsRequest): Promise; -}; diff --git a/packages/codegen/dist/cosmos/tx/v1beta1/tx.d.ts b/packages/codegen/dist/cosmos/tx/v1beta1/tx.d.ts deleted file mode 100644 index 57914e9b..00000000 --- a/packages/codegen/dist/cosmos/tx/v1beta1/tx.d.ts +++ /dev/null @@ -1,455 +0,0 @@ -/// -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import { SignMode } from "../signing/v1beta1/signing"; -import { CompactBitArray, CompactBitArraySDKType } from "../../crypto/multisig/v1beta1/multisig"; -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** Tx is the standard type used for broadcasting transactions. */ -export interface Tx { - /** body is the processable content of the transaction */ - body?: TxBody; - /** - * auth_info is the authorization related content of the transaction, - * specifically signers, signer modes and fee - */ - authInfo?: AuthInfo; - /** - * 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. - */ - signatures: Uint8Array[]; -} -/** Tx is the standard type used for broadcasting transactions. */ -export interface TxSDKType { - body?: TxBodySDKType; - auth_info?: AuthInfoSDKType; - signatures: Uint8Array[]; -} -/** - * 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. - */ -export interface TxRaw { - /** - * body_bytes is a protobuf serialization of a TxBody that matches the - * representation in SignDoc. - */ - bodyBytes: Uint8Array; - /** - * auth_info_bytes is a protobuf serialization of an AuthInfo that matches the - * representation in SignDoc. - */ - authInfoBytes: Uint8Array; - /** - * 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. - */ - signatures: Uint8Array[]; -} -/** - * 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. - */ -export interface TxRawSDKType { - body_bytes: Uint8Array; - auth_info_bytes: Uint8Array; - signatures: Uint8Array[]; -} -/** SignDoc is the type used for generating sign bytes for SIGN_MODE_DIRECT. */ -export interface SignDoc { - /** - * body_bytes is protobuf serialization of a TxBody that matches the - * representation in TxRaw. - */ - bodyBytes: Uint8Array; - /** - * auth_info_bytes is a protobuf serialization of an AuthInfo that matches the - * representation in TxRaw. - */ - authInfoBytes: Uint8Array; - /** - * 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 - */ - chainId: string; - /** account_number is the account number of the account in state */ - accountNumber: Long; -} -/** SignDoc is the type used for generating sign bytes for SIGN_MODE_DIRECT. */ -export interface SignDocSDKType { - body_bytes: Uint8Array; - auth_info_bytes: Uint8Array; - chain_id: string; - account_number: Long; -} -/** - * SignDocDirectAux is the type used for generating sign bytes for - * SIGN_MODE_DIRECT_AUX. - * - * Since: cosmos-sdk 0.46 - */ -export interface SignDocDirectAux { - /** - * body_bytes is protobuf serialization of a TxBody that matches the - * representation in TxRaw. - */ - bodyBytes: Uint8Array; - /** public_key is the public key of the signing account. */ - publicKey?: Any; - /** - * chain_id is the identifier of the chain this transaction targets. - * It prevents signed transactions from being used on another chain by an - * attacker. - */ - chainId: string; - /** account_number is the account number of the account in state. */ - accountNumber: Long; - /** sequence is the sequence number of the signing account. */ - sequence: Long; - /** - * Tip is the optional tip used for meta-transactions. It should be left - * empty if the signer is not the tipper for this transaction. - */ - tip?: Tip; -} -/** - * SignDocDirectAux is the type used for generating sign bytes for - * SIGN_MODE_DIRECT_AUX. - * - * Since: cosmos-sdk 0.46 - */ -export interface SignDocDirectAuxSDKType { - body_bytes: Uint8Array; - public_key?: AnySDKType; - chain_id: string; - account_number: Long; - sequence: Long; - tip?: TipSDKType; -} -/** TxBody is the body of a transaction that all signers sign over. */ -export interface 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. - */ - messages: Any[]; - /** - * 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). - */ - memo: string; - /** - * timeout is the block height after which this transaction will not - * be processed by the chain - */ - timeoutHeight: Long; - /** - * 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 - */ - extensionOptions: Any[]; - /** - * 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 - */ - nonCriticalExtensionOptions: Any[]; -} -/** TxBody is the body of a transaction that all signers sign over. */ -export interface TxBodySDKType { - messages: AnySDKType[]; - memo: string; - timeout_height: Long; - extension_options: AnySDKType[]; - non_critical_extension_options: AnySDKType[]; -} -/** - * AuthInfo describes the fee and signer modes that are used to sign a - * transaction. - */ -export interface 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. - */ - signerInfos: SignerInfo[]; - /** - * 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; - /** - * Tip is the optional tip used for meta-transactions. - * - * Since: cosmos-sdk 0.46 - */ - tip?: Tip; -} -/** - * AuthInfo describes the fee and signer modes that are used to sign a - * transaction. - */ -export interface AuthInfoSDKType { - signer_infos: SignerInfoSDKType[]; - fee?: FeeSDKType; - tip?: TipSDKType; -} -/** - * SignerInfo describes the public key and signing mode of a single top-level - * signer. - */ -export interface 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. - */ - publicKey?: Any; - /** - * mode_info describes the signing mode of the signer and is a nested - * structure to support nested multisig pubkey's - */ - modeInfo?: ModeInfo; - /** - * 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. - */ - sequence: Long; -} -/** - * SignerInfo describes the public key and signing mode of a single top-level - * signer. - */ -export interface SignerInfoSDKType { - public_key?: AnySDKType; - mode_info?: ModeInfoSDKType; - sequence: Long; -} -/** ModeInfo describes the signing mode of a single or nested multisig signer. */ -export interface ModeInfo { - /** single represents a single signer */ - single?: ModeInfo_Single; - /** multi represents a nested multisig signer */ - multi?: ModeInfo_Multi; -} -/** ModeInfo describes the signing mode of a single or nested multisig signer. */ -export interface ModeInfoSDKType { - single?: ModeInfo_SingleSDKType; - multi?: ModeInfo_MultiSDKType; -} -/** - * 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 - */ -export interface ModeInfo_Single { - /** mode is the signing mode of the single signer */ - mode: SignMode; -} -/** - * 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 - */ -export interface ModeInfo_SingleSDKType { - mode: SignMode; -} -/** Multi is the mode info for a multisig public key */ -export interface ModeInfo_Multi { - /** bitarray specifies which keys within the multisig are signing */ - bitarray?: CompactBitArray; - /** - * mode_infos is the corresponding modes of the signers of the multisig - * which could include nested multisig public keys - */ - modeInfos: ModeInfo[]; -} -/** Multi is the mode info for a multisig public key */ -export interface ModeInfo_MultiSDKType { - bitarray?: CompactBitArraySDKType; - mode_infos: ModeInfoSDKType[]; -} -/** - * 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. - */ -export interface Fee { - /** amount is the amount of coins to be paid as a fee */ - amount: Coin[]; - /** - * gas_limit is the maximum gas that can be used in transaction processing - * before an out of gas error occurs - */ - gasLimit: Long; - /** - * 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. - */ - payer: string; - /** - * 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 - */ - granter: string; -} -/** - * 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. - */ -export interface FeeSDKType { - amount: CoinSDKType[]; - gas_limit: Long; - payer: string; - granter: string; -} -/** - * Tip is the tip used for meta-transactions. - * - * Since: cosmos-sdk 0.46 - */ -export interface Tip { - /** amount is the amount of the tip */ - amount: Coin[]; - /** tipper is the address of the account paying for the tip */ - tipper: string; -} -/** - * Tip is the tip used for meta-transactions. - * - * Since: cosmos-sdk 0.46 - */ -export interface TipSDKType { - amount: CoinSDKType[]; - tipper: string; -} -/** - * 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 - */ -export interface 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. - */ - address: string; - /** - * sign_doc is the SIGN_MOD_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. - */ - signDoc?: SignDocDirectAux; - /** mode is the signing mode of the single signer */ - mode: SignMode; - /** sig is the signature of the sign doc. */ - sig: Uint8Array; -} -/** - * 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 - */ -export interface AuxSignerDataSDKType { - address: string; - sign_doc?: SignDocDirectAuxSDKType; - mode: SignMode; - sig: Uint8Array; -} -export declare const Tx: { - encode(message: Tx, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Tx; - fromPartial(object: DeepPartial): Tx; -}; -export declare const TxRaw: { - encode(message: TxRaw, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): TxRaw; - fromPartial(object: DeepPartial): TxRaw; -}; -export declare const SignDoc: { - encode(message: SignDoc, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SignDoc; - fromPartial(object: DeepPartial): SignDoc; -}; -export declare const SignDocDirectAux: { - encode(message: SignDocDirectAux, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SignDocDirectAux; - fromPartial(object: DeepPartial): SignDocDirectAux; -}; -export declare const TxBody: { - encode(message: TxBody, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): TxBody; - fromPartial(object: DeepPartial): TxBody; -}; -export declare const AuthInfo: { - encode(message: AuthInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): AuthInfo; - fromPartial(object: DeepPartial): AuthInfo; -}; -export declare const SignerInfo: { - encode(message: SignerInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SignerInfo; - fromPartial(object: DeepPartial): SignerInfo; -}; -export declare const ModeInfo: { - encode(message: ModeInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ModeInfo; - fromPartial(object: DeepPartial): ModeInfo; -}; -export declare const ModeInfo_Single: { - encode(message: ModeInfo_Single, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ModeInfo_Single; - fromPartial(object: DeepPartial): ModeInfo_Single; -}; -export declare const ModeInfo_Multi: { - encode(message: ModeInfo_Multi, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ModeInfo_Multi; - fromPartial(object: DeepPartial): ModeInfo_Multi; -}; -export declare const Fee: { - encode(message: Fee, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Fee; - fromPartial(object: DeepPartial): Fee; -}; -export declare const Tip: { - encode(message: Tip, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Tip; - fromPartial(object: DeepPartial): Tip; -}; -export declare const AuxSignerData: { - encode(message: AuxSignerData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): AuxSignerData; - fromPartial(object: DeepPartial): AuxSignerData; -}; diff --git a/packages/codegen/dist/cosmos/upgrade/v1beta1/query.d.ts b/packages/codegen/dist/cosmos/upgrade/v1beta1/query.d.ts deleted file mode 100644 index 1de684a7..00000000 --- a/packages/codegen/dist/cosmos/upgrade/v1beta1/query.d.ts +++ /dev/null @@ -1,220 +0,0 @@ -/// -import { Plan, PlanSDKType, ModuleVersion, ModuleVersionSDKType } from "./upgrade"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** - * QueryCurrentPlanRequest is the request type for the Query/CurrentPlan RPC - * method. - */ -export interface QueryCurrentPlanRequest { -} -/** - * QueryCurrentPlanRequest is the request type for the Query/CurrentPlan RPC - * method. - */ -export interface QueryCurrentPlanRequestSDKType { -} -/** - * QueryCurrentPlanResponse is the response type for the Query/CurrentPlan RPC - * method. - */ -export interface QueryCurrentPlanResponse { - /** plan is the current upgrade plan. */ - plan?: Plan; -} -/** - * QueryCurrentPlanResponse is the response type for the Query/CurrentPlan RPC - * method. - */ -export interface QueryCurrentPlanResponseSDKType { - plan?: PlanSDKType; -} -/** - * QueryCurrentPlanRequest is the request type for the Query/AppliedPlan RPC - * method. - */ -export interface QueryAppliedPlanRequest { - /** name is the name of the applied plan to query for. */ - name: string; -} -/** - * QueryCurrentPlanRequest is the request type for the Query/AppliedPlan RPC - * method. - */ -export interface QueryAppliedPlanRequestSDKType { - name: string; -} -/** - * QueryAppliedPlanResponse is the response type for the Query/AppliedPlan RPC - * method. - */ -export interface QueryAppliedPlanResponse { - /** height is the block height at which the plan was applied. */ - height: Long; -} -/** - * QueryAppliedPlanResponse is the response type for the Query/AppliedPlan RPC - * method. - */ -export interface QueryAppliedPlanResponseSDKType { - height: Long; -} -/** - * QueryUpgradedConsensusStateRequest is the request type for the Query/UpgradedConsensusState - * RPC method. - */ -/** @deprecated */ -export interface QueryUpgradedConsensusStateRequest { - /** - * last height of the current chain must be sent in request - * as this is the height under which next consensus state is stored - */ - lastHeight: Long; -} -/** - * QueryUpgradedConsensusStateRequest is the request type for the Query/UpgradedConsensusState - * RPC method. - */ -/** @deprecated */ -export interface QueryUpgradedConsensusStateRequestSDKType { - last_height: Long; -} -/** - * QueryUpgradedConsensusStateResponse is the response type for the Query/UpgradedConsensusState - * RPC method. - */ -/** @deprecated */ -export interface QueryUpgradedConsensusStateResponse { - /** Since: cosmos-sdk 0.43 */ - upgradedConsensusState: Uint8Array; -} -/** - * QueryUpgradedConsensusStateResponse is the response type for the Query/UpgradedConsensusState - * RPC method. - */ -/** @deprecated */ -export interface QueryUpgradedConsensusStateResponseSDKType { - upgraded_consensus_state: Uint8Array; -} -/** - * QueryModuleVersionsRequest is the request type for the Query/ModuleVersions - * RPC method. - * - * Since: cosmos-sdk 0.43 - */ -export interface 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 - */ - moduleName: string; -} -/** - * QueryModuleVersionsRequest is the request type for the Query/ModuleVersions - * RPC method. - * - * Since: cosmos-sdk 0.43 - */ -export interface QueryModuleVersionsRequestSDKType { - module_name: string; -} -/** - * QueryModuleVersionsResponse is the response type for the Query/ModuleVersions - * RPC method. - * - * Since: cosmos-sdk 0.43 - */ -export interface QueryModuleVersionsResponse { - /** module_versions is a list of module names with their consensus versions. */ - moduleVersions: ModuleVersion[]; -} -/** - * QueryModuleVersionsResponse is the response type for the Query/ModuleVersions - * RPC method. - * - * Since: cosmos-sdk 0.43 - */ -export interface QueryModuleVersionsResponseSDKType { - module_versions: ModuleVersionSDKType[]; -} -/** - * QueryAuthorityRequest is the request type for Query/Authority - * - * Since: cosmos-sdk 0.46 - */ -export interface QueryAuthorityRequest { -} -/** - * QueryAuthorityRequest is the request type for Query/Authority - * - * Since: cosmos-sdk 0.46 - */ -export interface QueryAuthorityRequestSDKType { -} -/** - * QueryAuthorityResponse is the response type for Query/Authority - * - * Since: cosmos-sdk 0.46 - */ -export interface QueryAuthorityResponse { - address: string; -} -/** - * QueryAuthorityResponse is the response type for Query/Authority - * - * Since: cosmos-sdk 0.46 - */ -export interface QueryAuthorityResponseSDKType { - address: string; -} -export declare const QueryCurrentPlanRequest: { - encode(_: QueryCurrentPlanRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryCurrentPlanRequest; - fromPartial(_: DeepPartial): QueryCurrentPlanRequest; -}; -export declare const QueryCurrentPlanResponse: { - encode(message: QueryCurrentPlanResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryCurrentPlanResponse; - fromPartial(object: DeepPartial): QueryCurrentPlanResponse; -}; -export declare const QueryAppliedPlanRequest: { - encode(message: QueryAppliedPlanRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAppliedPlanRequest; - fromPartial(object: DeepPartial): QueryAppliedPlanRequest; -}; -export declare const QueryAppliedPlanResponse: { - encode(message: QueryAppliedPlanResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAppliedPlanResponse; - fromPartial(object: DeepPartial): QueryAppliedPlanResponse; -}; -export declare const QueryUpgradedConsensusStateRequest: { - encode(message: QueryUpgradedConsensusStateRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryUpgradedConsensusStateRequest; - fromPartial(object: DeepPartial): QueryUpgradedConsensusStateRequest; -}; -export declare const QueryUpgradedConsensusStateResponse: { - encode(message: QueryUpgradedConsensusStateResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryUpgradedConsensusStateResponse; - fromPartial(object: DeepPartial): QueryUpgradedConsensusStateResponse; -}; -export declare const QueryModuleVersionsRequest: { - encode(message: QueryModuleVersionsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryModuleVersionsRequest; - fromPartial(object: DeepPartial): QueryModuleVersionsRequest; -}; -export declare const QueryModuleVersionsResponse: { - encode(message: QueryModuleVersionsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryModuleVersionsResponse; - fromPartial(object: DeepPartial): QueryModuleVersionsResponse; -}; -export declare const QueryAuthorityRequest: { - encode(_: QueryAuthorityRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAuthorityRequest; - fromPartial(_: DeepPartial): QueryAuthorityRequest; -}; -export declare const QueryAuthorityResponse: { - encode(message: QueryAuthorityResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAuthorityResponse; - fromPartial(object: DeepPartial): QueryAuthorityResponse; -}; diff --git a/packages/codegen/dist/cosmos/upgrade/v1beta1/query.lcd.d.ts b/packages/codegen/dist/cosmos/upgrade/v1beta1/query.lcd.d.ts deleted file mode 100644 index 2096c970..00000000 --- a/packages/codegen/dist/cosmos/upgrade/v1beta1/query.lcd.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { QueryCurrentPlanRequest, QueryCurrentPlanResponseSDKType, QueryAppliedPlanRequest, QueryAppliedPlanResponseSDKType, QueryUpgradedConsensusStateRequest, QueryUpgradedConsensusStateResponseSDKType, QueryModuleVersionsRequest, QueryModuleVersionsResponseSDKType, QueryAuthorityRequest, QueryAuthorityResponseSDKType } from "./query"; -export declare class LCDQueryClient { - req: LCDClient; - constructor({ requestClient }: { - requestClient: LCDClient; - }); - currentPlan(_params?: QueryCurrentPlanRequest): Promise; - appliedPlan(params: QueryAppliedPlanRequest): Promise; - upgradedConsensusState(params: QueryUpgradedConsensusStateRequest): Promise; - moduleVersions(params: QueryModuleVersionsRequest): Promise; - authority(_params?: QueryAuthorityRequest): Promise; -} diff --git a/packages/codegen/dist/cosmos/upgrade/v1beta1/query.rpc.Query.d.ts b/packages/codegen/dist/cosmos/upgrade/v1beta1/query.rpc.Query.d.ts deleted file mode 100644 index f12df5a9..00000000 --- a/packages/codegen/dist/cosmos/upgrade/v1beta1/query.rpc.Query.d.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { QueryClient } from "@cosmjs/stargate"; -import { QueryCurrentPlanRequest, QueryCurrentPlanResponse, QueryAppliedPlanRequest, QueryAppliedPlanResponse, QueryUpgradedConsensusStateRequest, QueryUpgradedConsensusStateResponse, QueryModuleVersionsRequest, QueryModuleVersionsResponse, QueryAuthorityRequest, QueryAuthorityResponse } from "./query"; -/** Query defines the gRPC upgrade querier service. */ -export interface Query { - /** CurrentPlan queries the current upgrade plan. */ - currentPlan(request?: QueryCurrentPlanRequest): Promise; - /** AppliedPlan queries a previously applied upgrade plan by its name. */ - appliedPlan(request: QueryAppliedPlanRequest): Promise; - /** - * 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) - */ - upgradedConsensusState(request: QueryUpgradedConsensusStateRequest): Promise; - /** - * ModuleVersions queries the list of module versions from state. - * - * Since: cosmos-sdk 0.43 - */ - moduleVersions(request: QueryModuleVersionsRequest): Promise; - /** Returns the account with authority to conduct upgrades */ - authority(request?: QueryAuthorityRequest): Promise; -} -export declare class QueryClientImpl implements Query { - private readonly rpc; - constructor(rpc: Rpc); - currentPlan(request?: QueryCurrentPlanRequest): Promise; - appliedPlan(request: QueryAppliedPlanRequest): Promise; - upgradedConsensusState(request: QueryUpgradedConsensusStateRequest): Promise; - moduleVersions(request: QueryModuleVersionsRequest): Promise; - authority(request?: QueryAuthorityRequest): Promise; -} -export declare const createRpcQueryExtension: (base: QueryClient) => { - currentPlan(request?: QueryCurrentPlanRequest): Promise; - appliedPlan(request: QueryAppliedPlanRequest): Promise; - upgradedConsensusState(request: QueryUpgradedConsensusStateRequest): Promise; - moduleVersions(request: QueryModuleVersionsRequest): Promise; - authority(request?: QueryAuthorityRequest): Promise; -}; diff --git a/packages/codegen/dist/cosmos/upgrade/v1beta1/tx.d.ts b/packages/codegen/dist/cosmos/upgrade/v1beta1/tx.d.ts deleted file mode 100644 index c136e51b..00000000 --- a/packages/codegen/dist/cosmos/upgrade/v1beta1/tx.d.ts +++ /dev/null @@ -1,88 +0,0 @@ -import { Plan, PlanSDKType } from "./upgrade"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * MsgSoftwareUpgrade is the Msg/SoftwareUpgrade request type. - * - * Since: cosmos-sdk 0.46 - */ -export interface MsgSoftwareUpgrade { - /** authority is the address of the governance account. */ - authority: string; - /** plan is the upgrade plan. */ - plan?: Plan; -} -/** - * MsgSoftwareUpgrade is the Msg/SoftwareUpgrade request type. - * - * Since: cosmos-sdk 0.46 - */ -export interface MsgSoftwareUpgradeSDKType { - authority: string; - plan?: PlanSDKType; -} -/** - * MsgSoftwareUpgradeResponse is the Msg/SoftwareUpgrade response type. - * - * Since: cosmos-sdk 0.46 - */ -export interface MsgSoftwareUpgradeResponse { -} -/** - * MsgSoftwareUpgradeResponse is the Msg/SoftwareUpgrade response type. - * - * Since: cosmos-sdk 0.46 - */ -export interface MsgSoftwareUpgradeResponseSDKType { -} -/** - * MsgCancelUpgrade is the Msg/CancelUpgrade request type. - * - * Since: cosmos-sdk 0.46 - */ -export interface MsgCancelUpgrade { - /** authority is the address of the governance account. */ - authority: string; -} -/** - * MsgCancelUpgrade is the Msg/CancelUpgrade request type. - * - * Since: cosmos-sdk 0.46 - */ -export interface MsgCancelUpgradeSDKType { - authority: string; -} -/** - * MsgCancelUpgradeResponse is the Msg/CancelUpgrade response type. - * - * Since: cosmos-sdk 0.46 - */ -export interface MsgCancelUpgradeResponse { -} -/** - * MsgCancelUpgradeResponse is the Msg/CancelUpgrade response type. - * - * Since: cosmos-sdk 0.46 - */ -export interface MsgCancelUpgradeResponseSDKType { -} -export declare const MsgSoftwareUpgrade: { - encode(message: MsgSoftwareUpgrade, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSoftwareUpgrade; - fromPartial(object: DeepPartial): MsgSoftwareUpgrade; -}; -export declare const MsgSoftwareUpgradeResponse: { - encode(_: MsgSoftwareUpgradeResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSoftwareUpgradeResponse; - fromPartial(_: DeepPartial): MsgSoftwareUpgradeResponse; -}; -export declare const MsgCancelUpgrade: { - encode(message: MsgCancelUpgrade, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCancelUpgrade; - fromPartial(object: DeepPartial): MsgCancelUpgrade; -}; -export declare const MsgCancelUpgradeResponse: { - encode(_: MsgCancelUpgradeResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCancelUpgradeResponse; - fromPartial(_: DeepPartial): MsgCancelUpgradeResponse; -}; diff --git a/packages/codegen/dist/cosmos/upgrade/v1beta1/tx.rpc.msg.d.ts b/packages/codegen/dist/cosmos/upgrade/v1beta1/tx.rpc.msg.d.ts deleted file mode 100644 index 66d0b9a7..00000000 --- a/packages/codegen/dist/cosmos/upgrade/v1beta1/tx.rpc.msg.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { MsgSoftwareUpgrade, MsgSoftwareUpgradeResponse, MsgCancelUpgrade, MsgCancelUpgradeResponse } from "./tx"; -/** Msg defines the upgrade Msg service. */ -export interface Msg { - /** - * SoftwareUpgrade is a governance operation for initiating a software upgrade. - * - * Since: cosmos-sdk 0.46 - */ - softwareUpgrade(request: MsgSoftwareUpgrade): Promise; - /** - * CancelUpgrade is a governance operation for cancelling a previously - * approvid software upgrade. - * - * Since: cosmos-sdk 0.46 - */ - cancelUpgrade(request: MsgCancelUpgrade): Promise; -} -export declare class MsgClientImpl implements Msg { - private readonly rpc; - constructor(rpc: Rpc); - softwareUpgrade(request: MsgSoftwareUpgrade): Promise; - cancelUpgrade(request: MsgCancelUpgrade): Promise; -} diff --git a/packages/codegen/dist/cosmos/upgrade/v1beta1/upgrade.d.ts b/packages/codegen/dist/cosmos/upgrade/v1beta1/upgrade.d.ts deleted file mode 100644 index efd09eb7..00000000 --- a/packages/codegen/dist/cosmos/upgrade/v1beta1/upgrade.d.ts +++ /dev/null @@ -1,137 +0,0 @@ -/// -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** Plan specifies information about a planned upgrade and when it should occur. */ -export interface 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. - */ - name: string; - /** - * 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. - */ - /** @deprecated */ - time?: Date; - /** - * The height at which the upgrade must be performed. - * Only used if Time is not set. - */ - height: Long; - /** - * Any application specific upgrade info to be included on-chain - * such as a git commit that validators could automatically upgrade to - */ - info: string; - /** - * 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. - */ - /** @deprecated */ - upgradedClientState?: Any; -} -/** Plan specifies information about a planned upgrade and when it should occur. */ -export interface PlanSDKType { - name: string; - /** @deprecated */ - time?: Date; - height: Long; - info: string; - /** @deprecated */ - upgraded_client_state?: AnySDKType; -} -/** - * 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. - */ -/** @deprecated */ -export interface SoftwareUpgradeProposal { - title: string; - description: string; - plan?: 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. - */ -/** @deprecated */ -export interface SoftwareUpgradeProposalSDKType { - title: string; - description: string; - plan?: PlanSDKType; -} -/** - * 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. - */ -/** @deprecated */ -export interface CancelSoftwareUpgradeProposal { - title: string; - description: string; -} -/** - * 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. - */ -/** @deprecated */ -export interface CancelSoftwareUpgradeProposalSDKType { - title: string; - description: string; -} -/** - * ModuleVersion specifies a module and its consensus version. - * - * Since: cosmos-sdk 0.43 - */ -export interface ModuleVersion { - /** name of the app module */ - name: string; - /** consensus version of the app module */ - version: Long; -} -/** - * ModuleVersion specifies a module and its consensus version. - * - * Since: cosmos-sdk 0.43 - */ -export interface ModuleVersionSDKType { - name: string; - version: Long; -} -export declare const Plan: { - encode(message: Plan, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Plan; - fromPartial(object: DeepPartial): Plan; -}; -export declare const SoftwareUpgradeProposal: { - encode(message: SoftwareUpgradeProposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SoftwareUpgradeProposal; - fromPartial(object: DeepPartial): SoftwareUpgradeProposal; -}; -export declare const CancelSoftwareUpgradeProposal: { - encode(message: CancelSoftwareUpgradeProposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): CancelSoftwareUpgradeProposal; - fromPartial(object: DeepPartial): CancelSoftwareUpgradeProposal; -}; -export declare const ModuleVersion: { - encode(message: ModuleVersion, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ModuleVersion; - fromPartial(object: DeepPartial): ModuleVersion; -}; diff --git a/packages/codegen/dist/cosmos/vesting/v1beta1/tx.d.ts b/packages/codegen/dist/cosmos/vesting/v1beta1/tx.d.ts deleted file mode 100644 index 14951d29..00000000 --- a/packages/codegen/dist/cosmos/vesting/v1beta1/tx.d.ts +++ /dev/null @@ -1,119 +0,0 @@ -/// -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import { Period, PeriodSDKType } from "./vesting"; -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * MsgCreateVestingAccount defines a message that enables creating a vesting - * account. - */ -export interface MsgCreateVestingAccount { - fromAddress: string; - toAddress: string; - amount: Coin[]; - endTime: Long; - delayed: boolean; -} -/** - * MsgCreateVestingAccount defines a message that enables creating a vesting - * account. - */ -export interface MsgCreateVestingAccountSDKType { - from_address: string; - to_address: string; - amount: CoinSDKType[]; - end_time: Long; - delayed: boolean; -} -/** MsgCreateVestingAccountResponse defines the Msg/CreateVestingAccount response type. */ -export interface MsgCreateVestingAccountResponse { -} -/** MsgCreateVestingAccountResponse defines the Msg/CreateVestingAccount response type. */ -export interface MsgCreateVestingAccountResponseSDKType { -} -/** - * MsgCreatePermanentLockedAccount defines a message that enables creating a permanent - * locked account. - */ -export interface MsgCreatePermanentLockedAccount { - fromAddress: string; - toAddress: string; - amount: Coin[]; -} -/** - * MsgCreatePermanentLockedAccount defines a message that enables creating a permanent - * locked account. - */ -export interface MsgCreatePermanentLockedAccountSDKType { - from_address: string; - to_address: string; - amount: CoinSDKType[]; -} -/** MsgCreatePermanentLockedAccountResponse defines the Msg/CreatePermanentLockedAccount response type. */ -export interface MsgCreatePermanentLockedAccountResponse { -} -/** MsgCreatePermanentLockedAccountResponse defines the Msg/CreatePermanentLockedAccount response type. */ -export interface MsgCreatePermanentLockedAccountResponseSDKType { -} -/** - * MsgCreateVestingAccount defines a message that enables creating a vesting - * account. - */ -export interface MsgCreatePeriodicVestingAccount { - fromAddress: string; - toAddress: string; - startTime: Long; - vestingPeriods: Period[]; -} -/** - * MsgCreateVestingAccount defines a message that enables creating a vesting - * account. - */ -export interface MsgCreatePeriodicVestingAccountSDKType { - from_address: string; - to_address: string; - start_time: Long; - vesting_periods: PeriodSDKType[]; -} -/** - * MsgCreateVestingAccountResponse defines the Msg/CreatePeriodicVestingAccount - * response type. - */ -export interface MsgCreatePeriodicVestingAccountResponse { -} -/** - * MsgCreateVestingAccountResponse defines the Msg/CreatePeriodicVestingAccount - * response type. - */ -export interface MsgCreatePeriodicVestingAccountResponseSDKType { -} -export declare const MsgCreateVestingAccount: { - encode(message: MsgCreateVestingAccount, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateVestingAccount; - fromPartial(object: DeepPartial): MsgCreateVestingAccount; -}; -export declare const MsgCreateVestingAccountResponse: { - encode(_: MsgCreateVestingAccountResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateVestingAccountResponse; - fromPartial(_: DeepPartial): MsgCreateVestingAccountResponse; -}; -export declare const MsgCreatePermanentLockedAccount: { - encode(message: MsgCreatePermanentLockedAccount, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreatePermanentLockedAccount; - fromPartial(object: DeepPartial): MsgCreatePermanentLockedAccount; -}; -export declare const MsgCreatePermanentLockedAccountResponse: { - encode(_: MsgCreatePermanentLockedAccountResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreatePermanentLockedAccountResponse; - fromPartial(_: DeepPartial): MsgCreatePermanentLockedAccountResponse; -}; -export declare const MsgCreatePeriodicVestingAccount: { - encode(message: MsgCreatePeriodicVestingAccount, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreatePeriodicVestingAccount; - fromPartial(object: DeepPartial): MsgCreatePeriodicVestingAccount; -}; -export declare const MsgCreatePeriodicVestingAccountResponse: { - encode(_: MsgCreatePeriodicVestingAccountResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreatePeriodicVestingAccountResponse; - fromPartial(_: DeepPartial): MsgCreatePeriodicVestingAccountResponse; -}; diff --git a/packages/codegen/dist/cosmos/vesting/v1beta1/tx.rpc.msg.d.ts b/packages/codegen/dist/cosmos/vesting/v1beta1/tx.rpc.msg.d.ts deleted file mode 100644 index 9999aa89..00000000 --- a/packages/codegen/dist/cosmos/vesting/v1beta1/tx.rpc.msg.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { MsgCreateVestingAccount, MsgCreateVestingAccountResponse, MsgCreatePermanentLockedAccount, MsgCreatePermanentLockedAccountResponse, MsgCreatePeriodicVestingAccount, MsgCreatePeriodicVestingAccountResponse } from "./tx"; -/** Msg defines the bank Msg service. */ -export interface Msg { - /** - * CreateVestingAccount defines a method that enables creating a vesting - * account. - */ - createVestingAccount(request: MsgCreateVestingAccount): Promise; - /** - * CreatePermanentLockedAccount defines a method that enables creating a permanent - * locked account. - */ - createPermanentLockedAccount(request: MsgCreatePermanentLockedAccount): Promise; - /** - * CreatePeriodicVestingAccount defines a method that enables creating a - * periodic vesting account. - */ - createPeriodicVestingAccount(request: MsgCreatePeriodicVestingAccount): Promise; -} -export declare class MsgClientImpl implements Msg { - private readonly rpc; - constructor(rpc: Rpc); - createVestingAccount(request: MsgCreateVestingAccount): Promise; - createPermanentLockedAccount(request: MsgCreatePermanentLockedAccount): Promise; - createPeriodicVestingAccount(request: MsgCreatePeriodicVestingAccount): Promise; -} diff --git a/packages/codegen/dist/cosmos/vesting/v1beta1/vesting.d.ts b/packages/codegen/dist/cosmos/vesting/v1beta1/vesting.d.ts deleted file mode 100644 index a0c7856e..00000000 --- a/packages/codegen/dist/cosmos/vesting/v1beta1/vesting.d.ts +++ /dev/null @@ -1,137 +0,0 @@ -/// -import { BaseAccount, BaseAccountSDKType } from "../../auth/v1beta1/auth"; -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * BaseVestingAccount implements the VestingAccount interface. It contains all - * the necessary fields needed for any vesting account implementation. - */ -export interface BaseVestingAccount { - baseAccount?: BaseAccount; - originalVesting: Coin[]; - delegatedFree: Coin[]; - delegatedVesting: Coin[]; - endTime: Long; -} -/** - * BaseVestingAccount implements the VestingAccount interface. It contains all - * the necessary fields needed for any vesting account implementation. - */ -export interface BaseVestingAccountSDKType { - base_account?: BaseAccountSDKType; - original_vesting: CoinSDKType[]; - delegated_free: CoinSDKType[]; - delegated_vesting: CoinSDKType[]; - end_time: Long; -} -/** - * ContinuousVestingAccount implements the VestingAccount interface. It - * continuously vests by unlocking coins linearly with respect to time. - */ -export interface ContinuousVestingAccount { - baseVestingAccount?: BaseVestingAccount; - startTime: Long; -} -/** - * ContinuousVestingAccount implements the VestingAccount interface. It - * continuously vests by unlocking coins linearly with respect to time. - */ -export interface ContinuousVestingAccountSDKType { - base_vesting_account?: BaseVestingAccountSDKType; - start_time: Long; -} -/** - * 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. - */ -export interface DelayedVestingAccount { - baseVestingAccount?: BaseVestingAccount; -} -/** - * 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. - */ -export interface DelayedVestingAccountSDKType { - base_vesting_account?: BaseVestingAccountSDKType; -} -/** Period defines a length of time and amount of coins that will vest. */ -export interface Period { - length: Long; - amount: Coin[]; -} -/** Period defines a length of time and amount of coins that will vest. */ -export interface PeriodSDKType { - length: Long; - amount: CoinSDKType[]; -} -/** - * PeriodicVestingAccount implements the VestingAccount interface. It - * periodically vests by unlocking coins during each specified period. - */ -export interface PeriodicVestingAccount { - baseVestingAccount?: BaseVestingAccount; - startTime: Long; - vestingPeriods: Period[]; -} -/** - * PeriodicVestingAccount implements the VestingAccount interface. It - * periodically vests by unlocking coins during each specified period. - */ -export interface PeriodicVestingAccountSDKType { - base_vesting_account?: BaseVestingAccountSDKType; - start_time: Long; - vesting_periods: PeriodSDKType[]; -} -/** - * 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 - */ -export interface PermanentLockedAccount { - baseVestingAccount?: BaseVestingAccount; -} -/** - * 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 - */ -export interface PermanentLockedAccountSDKType { - base_vesting_account?: BaseVestingAccountSDKType; -} -export declare const BaseVestingAccount: { - encode(message: BaseVestingAccount, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): BaseVestingAccount; - fromPartial(object: DeepPartial): BaseVestingAccount; -}; -export declare const ContinuousVestingAccount: { - encode(message: ContinuousVestingAccount, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ContinuousVestingAccount; - fromPartial(object: DeepPartial): ContinuousVestingAccount; -}; -export declare const DelayedVestingAccount: { - encode(message: DelayedVestingAccount, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): DelayedVestingAccount; - fromPartial(object: DeepPartial): DelayedVestingAccount; -}; -export declare const Period: { - encode(message: Period, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Period; - fromPartial(object: DeepPartial): Period; -}; -export declare const PeriodicVestingAccount: { - encode(message: PeriodicVestingAccount, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PeriodicVestingAccount; - fromPartial(object: DeepPartial): PeriodicVestingAccount; -}; -export declare const PermanentLockedAccount: { - encode(message: PermanentLockedAccount, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PermanentLockedAccount; - fromPartial(object: DeepPartial): PermanentLockedAccount; -}; diff --git a/packages/codegen/dist/cosmos_proto/bundle.d.ts b/packages/codegen/dist/cosmos_proto/bundle.d.ts deleted file mode 100644 index 1f962e88..00000000 --- a/packages/codegen/dist/cosmos_proto/bundle.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -import * as _2 from "./cosmos"; -export declare const cosmos_proto: { - scalarTypeFromJSON(object: any): _2.ScalarType; - scalarTypeToJSON(object: _2.ScalarType): string; - ScalarType: typeof _2.ScalarType; - ScalarTypeSDKType: typeof _2.ScalarType; - InterfaceDescriptor: { - encode(message: _2.InterfaceDescriptor, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _2.InterfaceDescriptor; - fromPartial(object: { - name?: string; - description?: string; - }): _2.InterfaceDescriptor; - }; - ScalarDescriptor: { - encode(message: _2.ScalarDescriptor, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _2.ScalarDescriptor; - fromPartial(object: { - name?: string; - description?: string; - fieldType?: _2.ScalarType[]; - }): _2.ScalarDescriptor; - }; -}; diff --git a/packages/codegen/dist/cosmos_proto/cosmos.d.ts b/packages/codegen/dist/cosmos_proto/cosmos.d.ts deleted file mode 100644 index c53b3d44..00000000 --- a/packages/codegen/dist/cosmos_proto/cosmos.d.ts +++ /dev/null @@ -1,92 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../helpers"; -export declare enum ScalarType { - SCALAR_TYPE_UNSPECIFIED = 0, - SCALAR_TYPE_STRING = 1, - SCALAR_TYPE_BYTES = 2, - UNRECOGNIZED = -1 -} -export declare const ScalarTypeSDKType: typeof ScalarType; -export declare function scalarTypeFromJSON(object: any): ScalarType; -export declare function scalarTypeToJSON(object: ScalarType): string; -/** - * InterfaceDescriptor describes an interface type to be used with - * accepts_interface and implements_interface and declared by declare_interface. - */ -export interface 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. - */ - name: string; - /** - * description is a human-readable description of the interface and its - * purpose. - */ - description: string; -} -/** - * InterfaceDescriptor describes an interface type to be used with - * accepts_interface and implements_interface and declared by declare_interface. - */ -export interface InterfaceDescriptorSDKType { - name: string; - description: string; -} -/** - * 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. - */ -export interface 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. - */ - name: string; - /** - * 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. - */ - description: string; - /** - * 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. - */ - fieldType: ScalarType[]; -} -/** - * 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. - */ -export interface ScalarDescriptorSDKType { - name: string; - description: string; - field_type: ScalarType[]; -} -export declare const InterfaceDescriptor: { - encode(message: InterfaceDescriptor, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): InterfaceDescriptor; - fromPartial(object: DeepPartial): InterfaceDescriptor; -}; -export declare const ScalarDescriptor: { - encode(message: ScalarDescriptor, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ScalarDescriptor; - fromPartial(object: DeepPartial): ScalarDescriptor; -}; diff --git a/packages/codegen/dist/cosmwasm/bundle.d.ts b/packages/codegen/dist/cosmwasm/bundle.d.ts deleted file mode 100644 index 14b8169e..00000000 --- a/packages/codegen/dist/cosmwasm/bundle.d.ts +++ /dev/null @@ -1,1284 +0,0 @@ -/// -import * as _95 from "./wasm/v1/authz"; -import * as _96 from "./wasm/v1/genesis"; -import * as _97 from "./wasm/v1/ibc"; -import * as _98 from "./wasm/v1/proposal"; -import * as _99 from "./wasm/v1/query"; -import * as _100 from "./wasm/v1/tx"; -import * as _101 from "./wasm/v1/types"; -import * as _194 from "./wasm/v1/query.lcd"; -import * as _195 from "./wasm/v1/query.rpc.Query"; -import * as _196 from "./wasm/v1/tx.rpc.msg"; -export declare namespace cosmwasm { - namespace wasm { - const v1: { - MsgClientImpl: typeof _196.MsgClientImpl; - QueryClientImpl: typeof _195.QueryClientImpl; - createRpcQueryExtension: (base: import("@cosmjs/stargate").QueryClient) => { - contractInfo(request: _99.QueryContractInfoRequest): Promise<_99.QueryContractInfoResponse>; - contractHistory(request: _99.QueryContractHistoryRequest): Promise<_99.QueryContractHistoryResponse>; - contractsByCode(request: _99.QueryContractsByCodeRequest): Promise<_99.QueryContractsByCodeResponse>; - allContractState(request: _99.QueryAllContractStateRequest): Promise<_99.QueryAllContractStateResponse>; - rawContractState(request: _99.QueryRawContractStateRequest): Promise<_99.QueryRawContractStateResponse>; - smartContractState(request: _99.QuerySmartContractStateRequest): Promise<_99.QuerySmartContractStateResponse>; - code(request: _99.QueryCodeRequest): Promise<_99.QueryCodeResponse>; - codes(request?: _99.QueryCodesRequest): Promise<_99.QueryCodesResponse>; - pinnedCodes(request?: _99.QueryPinnedCodesRequest): Promise<_99.QueryPinnedCodesResponse>; - params(request?: _99.QueryParamsRequest): Promise<_99.QueryParamsResponse>; - contractsByCreator(request: _99.QueryContractsByCreatorRequest): Promise<_99.QueryContractsByCreatorResponse>; - }; - LCDQueryClient: typeof _194.LCDQueryClient; - accessTypeFromJSON(object: any): _101.AccessType; - accessTypeToJSON(object: _101.AccessType): string; - contractCodeHistoryOperationTypeFromJSON(object: any): _101.ContractCodeHistoryOperationType; - contractCodeHistoryOperationTypeToJSON(object: _101.ContractCodeHistoryOperationType): string; - AccessType: typeof _101.AccessType; - AccessTypeSDKType: typeof _101.AccessType; - ContractCodeHistoryOperationType: typeof _101.ContractCodeHistoryOperationType; - ContractCodeHistoryOperationTypeSDKType: typeof _101.ContractCodeHistoryOperationType; - AccessTypeParam: { - encode(message: _101.AccessTypeParam, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _101.AccessTypeParam; - fromPartial(object: { - value?: _101.AccessType; - }): _101.AccessTypeParam; - }; - AccessConfig: { - encode(message: _101.AccessConfig, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _101.AccessConfig; - fromPartial(object: { - permission?: _101.AccessType; - address?: string; - addresses?: string[]; - }): _101.AccessConfig; - }; - Params: { - encode(message: _101.Params, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _101.Params; - fromPartial(object: { - codeUploadAccess?: { - permission?: _101.AccessType; - address?: string; - addresses?: string[]; - }; - instantiateDefaultPermission?: _101.AccessType; - }): _101.Params; - }; - CodeInfo: { - encode(message: _101.CodeInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _101.CodeInfo; - fromPartial(object: { - codeHash?: Uint8Array; - creator?: string; - instantiateConfig?: { - permission?: _101.AccessType; - address?: string; - addresses?: string[]; - }; - }): _101.CodeInfo; - }; - ContractInfo: { - encode(message: _101.ContractInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _101.ContractInfo; - fromPartial(object: { - codeId?: string | number | import("long").Long; - creator?: string; - admin?: string; - label?: string; - created?: { - blockHeight?: string | number | import("long").Long; - txIndex?: string | number | import("long").Long; - }; - ibcPortId?: string; - extension?: { - typeUrl?: string; - value?: Uint8Array; - }; - }): _101.ContractInfo; - }; - ContractCodeHistoryEntry: { - encode(message: _101.ContractCodeHistoryEntry, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _101.ContractCodeHistoryEntry; - fromPartial(object: { - operation?: _101.ContractCodeHistoryOperationType; - codeId?: string | number | import("long").Long; - updated?: { - blockHeight?: string | number | import("long").Long; - txIndex?: string | number | import("long").Long; - }; - msg?: Uint8Array; - }): _101.ContractCodeHistoryEntry; - }; - AbsoluteTxPosition: { - encode(message: _101.AbsoluteTxPosition, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _101.AbsoluteTxPosition; - fromPartial(object: { - blockHeight?: string | number | import("long").Long; - txIndex?: string | number | import("long").Long; - }): _101.AbsoluteTxPosition; - }; - Model: { - encode(message: _101.Model, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _101.Model; - fromPartial(object: { - key?: Uint8Array; - value?: Uint8Array; - }): _101.Model; - }; - MsgStoreCode: { - encode(message: _100.MsgStoreCode, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _100.MsgStoreCode; - fromPartial(object: { - sender?: string; - wasmByteCode?: Uint8Array; - instantiatePermission?: { - permission?: _101.AccessType; - address?: string; - addresses?: string[]; - }; - }): _100.MsgStoreCode; - }; - MsgStoreCodeResponse: { - encode(message: _100.MsgStoreCodeResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _100.MsgStoreCodeResponse; - fromPartial(object: { - codeId?: string | number | import("long").Long; - checksum?: Uint8Array; - }): _100.MsgStoreCodeResponse; - }; - MsgInstantiateContract: { - encode(message: _100.MsgInstantiateContract, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _100.MsgInstantiateContract; - fromPartial(object: { - sender?: string; - admin?: string; - codeId?: string | number | import("long").Long; - label?: string; - msg?: Uint8Array; - funds?: { - denom?: string; - amount?: string; - }[]; - }): _100.MsgInstantiateContract; - }; - MsgInstantiateContract2: { - encode(message: _100.MsgInstantiateContract2, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _100.MsgInstantiateContract2; - fromPartial(object: { - sender?: string; - admin?: string; - codeId?: string | number | import("long").Long; - label?: string; - msg?: Uint8Array; - funds?: { - denom?: string; - amount?: string; - }[]; - salt?: Uint8Array; - fixMsg?: boolean; - }): _100.MsgInstantiateContract2; - }; - MsgInstantiateContractResponse: { - encode(message: _100.MsgInstantiateContractResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _100.MsgInstantiateContractResponse; - fromPartial(object: { - address?: string; - data?: Uint8Array; - }): _100.MsgInstantiateContractResponse; - }; - MsgInstantiateContract2Response: { - encode(message: _100.MsgInstantiateContract2Response, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _100.MsgInstantiateContract2Response; - fromPartial(object: { - address?: string; - data?: Uint8Array; - }): _100.MsgInstantiateContract2Response; - }; - MsgExecuteContract: { - encode(message: _100.MsgExecuteContract, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _100.MsgExecuteContract; - fromPartial(object: { - sender?: string; - contract?: string; - msg?: Uint8Array; - funds?: { - denom?: string; - amount?: string; - }[]; - }): _100.MsgExecuteContract; - }; - MsgExecuteContractResponse: { - encode(message: _100.MsgExecuteContractResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _100.MsgExecuteContractResponse; - fromPartial(object: { - data?: Uint8Array; - }): _100.MsgExecuteContractResponse; - }; - MsgMigrateContract: { - encode(message: _100.MsgMigrateContract, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _100.MsgMigrateContract; - fromPartial(object: { - sender?: string; - contract?: string; - codeId?: string | number | import("long").Long; - msg?: Uint8Array; - }): _100.MsgMigrateContract; - }; - MsgMigrateContractResponse: { - encode(message: _100.MsgMigrateContractResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _100.MsgMigrateContractResponse; - fromPartial(object: { - data?: Uint8Array; - }): _100.MsgMigrateContractResponse; - }; - MsgUpdateAdmin: { - encode(message: _100.MsgUpdateAdmin, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _100.MsgUpdateAdmin; - fromPartial(object: { - sender?: string; - newAdmin?: string; - contract?: string; - }): _100.MsgUpdateAdmin; - }; - MsgUpdateAdminResponse: { - encode(_: _100.MsgUpdateAdminResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _100.MsgUpdateAdminResponse; - fromPartial(_: {}): _100.MsgUpdateAdminResponse; - }; - MsgClearAdmin: { - encode(message: _100.MsgClearAdmin, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _100.MsgClearAdmin; - fromPartial(object: { - sender?: string; - contract?: string; - }): _100.MsgClearAdmin; - }; - MsgClearAdminResponse: { - encode(_: _100.MsgClearAdminResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _100.MsgClearAdminResponse; - fromPartial(_: {}): _100.MsgClearAdminResponse; - }; - QueryContractInfoRequest: { - encode(message: _99.QueryContractInfoRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _99.QueryContractInfoRequest; - fromPartial(object: { - address?: string; - }): _99.QueryContractInfoRequest; - }; - QueryContractInfoResponse: { - encode(message: _99.QueryContractInfoResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _99.QueryContractInfoResponse; - fromPartial(object: { - address?: string; - contractInfo?: { - codeId?: string | number | import("long").Long; - creator?: string; - admin?: string; - label?: string; - created?: { - blockHeight?: string | number | import("long").Long; - txIndex?: string | number | import("long").Long; - }; - ibcPortId?: string; - extension?: { - typeUrl?: string; - value?: Uint8Array; - }; - }; - }): _99.QueryContractInfoResponse; - }; - QueryContractHistoryRequest: { - encode(message: _99.QueryContractHistoryRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _99.QueryContractHistoryRequest; - fromPartial(object: { - address?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _99.QueryContractHistoryRequest; - }; - QueryContractHistoryResponse: { - encode(message: _99.QueryContractHistoryResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _99.QueryContractHistoryResponse; - fromPartial(object: { - entries?: { - operation?: _101.ContractCodeHistoryOperationType; - codeId?: string | number | import("long").Long; - updated?: { - blockHeight?: string | number | import("long").Long; - txIndex?: string | number | import("long").Long; - }; - msg?: Uint8Array; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _99.QueryContractHistoryResponse; - }; - QueryContractsByCodeRequest: { - encode(message: _99.QueryContractsByCodeRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _99.QueryContractsByCodeRequest; - fromPartial(object: { - codeId?: string | number | import("long").Long; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _99.QueryContractsByCodeRequest; - }; - QueryContractsByCodeResponse: { - encode(message: _99.QueryContractsByCodeResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _99.QueryContractsByCodeResponse; - fromPartial(object: { - contracts?: string[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _99.QueryContractsByCodeResponse; - }; - QueryAllContractStateRequest: { - encode(message: _99.QueryAllContractStateRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _99.QueryAllContractStateRequest; - fromPartial(object: { - address?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _99.QueryAllContractStateRequest; - }; - QueryAllContractStateResponse: { - encode(message: _99.QueryAllContractStateResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _99.QueryAllContractStateResponse; - fromPartial(object: { - models?: { - key?: Uint8Array; - value?: Uint8Array; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _99.QueryAllContractStateResponse; - }; - QueryRawContractStateRequest: { - encode(message: _99.QueryRawContractStateRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _99.QueryRawContractStateRequest; - fromPartial(object: { - address?: string; - queryData?: Uint8Array; - }): _99.QueryRawContractStateRequest; - }; - QueryRawContractStateResponse: { - encode(message: _99.QueryRawContractStateResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _99.QueryRawContractStateResponse; - fromPartial(object: { - data?: Uint8Array; - }): _99.QueryRawContractStateResponse; - }; - QuerySmartContractStateRequest: { - encode(message: _99.QuerySmartContractStateRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _99.QuerySmartContractStateRequest; - fromPartial(object: { - address?: string; - queryData?: Uint8Array; - }): _99.QuerySmartContractStateRequest; - }; - QuerySmartContractStateResponse: { - encode(message: _99.QuerySmartContractStateResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _99.QuerySmartContractStateResponse; - fromPartial(object: { - data?: Uint8Array; - }): _99.QuerySmartContractStateResponse; - }; - QueryCodeRequest: { - encode(message: _99.QueryCodeRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _99.QueryCodeRequest; - fromPartial(object: { - codeId?: string | number | import("long").Long; - }): _99.QueryCodeRequest; - }; - CodeInfoResponse: { - encode(message: _99.CodeInfoResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _99.CodeInfoResponse; - fromPartial(object: { - codeId?: string | number | import("long").Long; - creator?: string; - dataHash?: Uint8Array; - instantiatePermission?: { - permission?: _101.AccessType; - address?: string; - addresses?: string[]; - }; - }): _99.CodeInfoResponse; - }; - QueryCodeResponse: { - encode(message: _99.QueryCodeResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _99.QueryCodeResponse; - fromPartial(object: { - codeInfo?: { - codeId?: string | number | import("long").Long; - creator?: string; - dataHash?: Uint8Array; - instantiatePermission?: { - permission?: _101.AccessType; - address?: string; - addresses?: string[]; - }; - }; - data?: Uint8Array; - }): _99.QueryCodeResponse; - }; - QueryCodesRequest: { - encode(message: _99.QueryCodesRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _99.QueryCodesRequest; - fromPartial(object: { - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _99.QueryCodesRequest; - }; - QueryCodesResponse: { - encode(message: _99.QueryCodesResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _99.QueryCodesResponse; - fromPartial(object: { - codeInfos?: { - codeId?: string | number | import("long").Long; - creator?: string; - dataHash?: Uint8Array; - instantiatePermission?: { - permission?: _101.AccessType; - address?: string; - addresses?: string[]; - }; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _99.QueryCodesResponse; - }; - QueryPinnedCodesRequest: { - encode(message: _99.QueryPinnedCodesRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _99.QueryPinnedCodesRequest; - fromPartial(object: { - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _99.QueryPinnedCodesRequest; - }; - QueryPinnedCodesResponse: { - encode(message: _99.QueryPinnedCodesResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _99.QueryPinnedCodesResponse; - fromPartial(object: { - codeIds?: (string | number | import("long").Long)[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _99.QueryPinnedCodesResponse; - }; - QueryParamsRequest: { - encode(_: _99.QueryParamsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _99.QueryParamsRequest; - fromPartial(_: {}): _99.QueryParamsRequest; - }; - QueryParamsResponse: { - encode(message: _99.QueryParamsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _99.QueryParamsResponse; - fromPartial(object: { - params?: { - codeUploadAccess?: { - permission?: _101.AccessType; - address?: string; - addresses?: string[]; - }; - instantiateDefaultPermission?: _101.AccessType; - }; - }): _99.QueryParamsResponse; - }; - QueryContractsByCreatorRequest: { - encode(message: _99.QueryContractsByCreatorRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _99.QueryContractsByCreatorRequest; - fromPartial(object: { - creatorAddress?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _99.QueryContractsByCreatorRequest; - }; - QueryContractsByCreatorResponse: { - encode(message: _99.QueryContractsByCreatorResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _99.QueryContractsByCreatorResponse; - fromPartial(object: { - contractAddresses?: string[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _99.QueryContractsByCreatorResponse; - }; - StoreCodeProposal: { - encode(message: _98.StoreCodeProposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _98.StoreCodeProposal; - fromPartial(object: { - title?: string; - description?: string; - runAs?: string; - wasmByteCode?: Uint8Array; - instantiatePermission?: { - permission?: _101.AccessType; - address?: string; - addresses?: string[]; - }; - unpinCode?: boolean; - source?: string; - builder?: string; - codeHash?: Uint8Array; - }): _98.StoreCodeProposal; - }; - InstantiateContractProposal: { - encode(message: _98.InstantiateContractProposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _98.InstantiateContractProposal; - fromPartial(object: { - title?: string; - description?: string; - runAs?: string; - admin?: string; - codeId?: string | number | import("long").Long; - label?: string; - msg?: Uint8Array; - funds?: { - denom?: string; - amount?: string; - }[]; - }): _98.InstantiateContractProposal; - }; - InstantiateContract2Proposal: { - encode(message: _98.InstantiateContract2Proposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _98.InstantiateContract2Proposal; - fromPartial(object: { - title?: string; - description?: string; - runAs?: string; - admin?: string; - codeId?: string | number | import("long").Long; - label?: string; - msg?: Uint8Array; - funds?: { - denom?: string; - amount?: string; - }[]; - salt?: Uint8Array; - fixMsg?: boolean; - }): _98.InstantiateContract2Proposal; - }; - MigrateContractProposal: { - encode(message: _98.MigrateContractProposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _98.MigrateContractProposal; - fromPartial(object: { - title?: string; - description?: string; - contract?: string; - codeId?: string | number | import("long").Long; - msg?: Uint8Array; - }): _98.MigrateContractProposal; - }; - SudoContractProposal: { - encode(message: _98.SudoContractProposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _98.SudoContractProposal; - fromPartial(object: { - title?: string; - description?: string; - contract?: string; - msg?: Uint8Array; - }): _98.SudoContractProposal; - }; - ExecuteContractProposal: { - encode(message: _98.ExecuteContractProposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _98.ExecuteContractProposal; - fromPartial(object: { - title?: string; - description?: string; - runAs?: string; - contract?: string; - msg?: Uint8Array; - funds?: { - denom?: string; - amount?: string; - }[]; - }): _98.ExecuteContractProposal; - }; - UpdateAdminProposal: { - encode(message: _98.UpdateAdminProposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _98.UpdateAdminProposal; - fromPartial(object: { - title?: string; - description?: string; - newAdmin?: string; - contract?: string; - }): _98.UpdateAdminProposal; - }; - ClearAdminProposal: { - encode(message: _98.ClearAdminProposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _98.ClearAdminProposal; - fromPartial(object: { - title?: string; - description?: string; - contract?: string; - }): _98.ClearAdminProposal; - }; - PinCodesProposal: { - encode(message: _98.PinCodesProposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _98.PinCodesProposal; - fromPartial(object: { - title?: string; - description?: string; - codeIds?: (string | number | import("long").Long)[]; - }): _98.PinCodesProposal; - }; - UnpinCodesProposal: { - encode(message: _98.UnpinCodesProposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _98.UnpinCodesProposal; - fromPartial(object: { - title?: string; - description?: string; - codeIds?: (string | number | import("long").Long)[]; - }): _98.UnpinCodesProposal; - }; - AccessConfigUpdate: { - encode(message: _98.AccessConfigUpdate, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _98.AccessConfigUpdate; - fromPartial(object: { - codeId?: string | number | import("long").Long; - instantiatePermission?: { - permission?: _101.AccessType; - address?: string; - addresses?: string[]; - }; - }): _98.AccessConfigUpdate; - }; - UpdateInstantiateConfigProposal: { - encode(message: _98.UpdateInstantiateConfigProposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _98.UpdateInstantiateConfigProposal; - fromPartial(object: { - title?: string; - description?: string; - accessConfigUpdates?: { - codeId?: string | number | import("long").Long; - instantiatePermission?: { - permission?: _101.AccessType; - address?: string; - addresses?: string[]; - }; - }[]; - }): _98.UpdateInstantiateConfigProposal; - }; - StoreAndInstantiateContractProposal: { - encode(message: _98.StoreAndInstantiateContractProposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _98.StoreAndInstantiateContractProposal; - fromPartial(object: { - title?: string; - description?: string; - runAs?: string; - wasmByteCode?: Uint8Array; - instantiatePermission?: { - permission?: _101.AccessType; - address?: string; - addresses?: string[]; - }; - unpinCode?: boolean; - admin?: string; - label?: string; - msg?: Uint8Array; - funds?: { - denom?: string; - amount?: string; - }[]; - source?: string; - builder?: string; - codeHash?: Uint8Array; - }): _98.StoreAndInstantiateContractProposal; - }; - MsgIBCSend: { - encode(message: _97.MsgIBCSend, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _97.MsgIBCSend; - fromPartial(object: { - channel?: string; - timeoutHeight?: string | number | import("long").Long; - timeoutTimestamp?: string | number | import("long").Long; - data?: Uint8Array; - }): _97.MsgIBCSend; - }; - MsgIBCCloseChannel: { - encode(message: _97.MsgIBCCloseChannel, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _97.MsgIBCCloseChannel; - fromPartial(object: { - channel?: string; - }): _97.MsgIBCCloseChannel; - }; - GenesisState: { - encode(message: _96.GenesisState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _96.GenesisState; - fromPartial(object: { - params?: { - codeUploadAccess?: { - permission?: _101.AccessType; - address?: string; - addresses?: string[]; - }; - instantiateDefaultPermission?: _101.AccessType; - }; - codes?: { - codeId?: string | number | import("long").Long; - codeInfo?: { - codeHash?: Uint8Array; - creator?: string; - instantiateConfig?: { - permission?: _101.AccessType; - address?: string; - addresses?: string[]; - }; - }; - codeBytes?: Uint8Array; - pinned?: boolean; - }[]; - contracts?: { - contractAddress?: string; - contractInfo?: { - codeId?: string | number | import("long").Long; - creator?: string; - admin?: string; - label?: string; - created?: { - blockHeight?: string | number | import("long").Long; - txIndex?: string | number | import("long").Long; - }; - ibcPortId?: string; - extension?: { - typeUrl?: string; - value?: Uint8Array; - }; - }; - contractState?: { - key?: Uint8Array; - value?: Uint8Array; - }[]; - contractCodeHistory?: { - operation?: _101.ContractCodeHistoryOperationType; - codeId?: string | number | import("long").Long; - updated?: { - blockHeight?: string | number | import("long").Long; - txIndex?: string | number | import("long").Long; - }; - msg?: Uint8Array; - }[]; - }[]; - sequences?: { - idKey?: Uint8Array; - value?: string | number | import("long").Long; - }[]; - }): _96.GenesisState; - }; - Code: { - encode(message: _96.Code, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _96.Code; - fromPartial(object: { - codeId?: string | number | import("long").Long; - codeInfo?: { - codeHash?: Uint8Array; - creator?: string; - instantiateConfig?: { - permission?: _101.AccessType; - address?: string; - addresses?: string[]; - }; - }; - codeBytes?: Uint8Array; - pinned?: boolean; - }): _96.Code; - }; - Contract: { - encode(message: _96.Contract, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _96.Contract; - fromPartial(object: { - contractAddress?: string; - contractInfo?: { - codeId?: string | number | import("long").Long; - creator?: string; - admin?: string; - label?: string; - created?: { - blockHeight?: string | number | import("long").Long; - txIndex?: string | number | import("long").Long; - }; - ibcPortId?: string; - extension?: { - typeUrl?: string; - value?: Uint8Array; - }; - }; - contractState?: { - key?: Uint8Array; - value?: Uint8Array; - }[]; - contractCodeHistory?: { - operation?: _101.ContractCodeHistoryOperationType; - codeId?: string | number | import("long").Long; - updated?: { - blockHeight?: string | number | import("long").Long; - txIndex?: string | number | import("long").Long; - }; - msg?: Uint8Array; - }[]; - }): _96.Contract; - }; - Sequence: { - encode(message: _96.Sequence, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _96.Sequence; - fromPartial(object: { - idKey?: Uint8Array; - value?: string | number | import("long").Long; - }): _96.Sequence; - }; - ContractExecutionAuthorization: { - encode(message: _95.ContractExecutionAuthorization, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _95.ContractExecutionAuthorization; - fromPartial(object: { - grants?: { - contract?: string; - limit?: { - typeUrl?: string; - value?: Uint8Array; - }; - filter?: { - typeUrl?: string; - value?: Uint8Array; - }; - }[]; - }): _95.ContractExecutionAuthorization; - }; - ContractMigrationAuthorization: { - encode(message: _95.ContractMigrationAuthorization, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _95.ContractMigrationAuthorization; - fromPartial(object: { - grants?: { - contract?: string; - limit?: { - typeUrl?: string; - value?: Uint8Array; - }; - filter?: { - typeUrl?: string; - value?: Uint8Array; - }; - }[]; - }): _95.ContractMigrationAuthorization; - }; - ContractGrant: { - encode(message: _95.ContractGrant, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _95.ContractGrant; - fromPartial(object: { - contract?: string; - limit?: { - typeUrl?: string; - value?: Uint8Array; - }; - filter?: { - typeUrl?: string; - value?: Uint8Array; - }; - }): _95.ContractGrant; - }; - MaxCallsLimit: { - encode(message: _95.MaxCallsLimit, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _95.MaxCallsLimit; - fromPartial(object: { - remaining?: string | number | import("long").Long; - }): _95.MaxCallsLimit; - }; - MaxFundsLimit: { - encode(message: _95.MaxFundsLimit, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _95.MaxFundsLimit; - fromPartial(object: { - amounts?: { - denom?: string; - amount?: string; - }[]; - }): _95.MaxFundsLimit; - }; - CombinedLimit: { - encode(message: _95.CombinedLimit, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _95.CombinedLimit; - fromPartial(object: { - callsRemaining?: string | number | import("long").Long; - amounts?: { - denom?: string; - amount?: string; - }[]; - }): _95.CombinedLimit; - }; - AllowAllMessagesFilter: { - encode(_: _95.AllowAllMessagesFilter, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _95.AllowAllMessagesFilter; - fromPartial(_: {}): _95.AllowAllMessagesFilter; - }; - AcceptedMessageKeysFilter: { - encode(message: _95.AcceptedMessageKeysFilter, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _95.AcceptedMessageKeysFilter; - fromPartial(object: { - keys?: string[]; - }): _95.AcceptedMessageKeysFilter; - }; - AcceptedMessagesFilter: { - encode(message: _95.AcceptedMessagesFilter, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _95.AcceptedMessagesFilter; - fromPartial(object: { - messages?: Uint8Array[]; - }): _95.AcceptedMessagesFilter; - }; - }; - } - const ClientFactory: { - createRPCMsgClient: ({ rpc }: { - rpc: import("../helpers").Rpc; - }) => Promise<{ - cosmos: { - authz: { - v1beta1: import("../cosmos/authz/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - bank: { - v1beta1: import("../cosmos/bank/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - crisis: { - v1beta1: import("../cosmos/crisis/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - distribution: { - v1beta1: import("../cosmos/distribution/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - evidence: { - v1beta1: import("../cosmos/evidence/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - feegrant: { - v1beta1: import("../cosmos/feegrant/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - gov: { - v1: import("../cosmos/gov/v1/tx.rpc.msg").MsgClientImpl; - v1beta1: import("../cosmos/gov/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - group: { - v1: import("../cosmos/group/v1/tx.rpc.msg").MsgClientImpl; - }; - nft: { - v1beta1: import("../cosmos/nft/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - slashing: { - v1beta1: import("../cosmos/slashing/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - staking: { - v1beta1: import("../cosmos/staking/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - upgrade: { - v1beta1: import("../cosmos/upgrade/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - vesting: { - v1beta1: import("../cosmos/vesting/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - }; - cosmwasm: { - wasm: { - v1: _196.MsgClientImpl; - }; - }; - }>; - createRPCQueryClient: ({ rpcEndpoint }: { - rpcEndpoint: string | import("@cosmjs/tendermint-rpc").HttpEndpoint; - }) => Promise<{ - cosmos: { - app: { - v1alpha1: { - config(request?: import("../cosmos/app/v1alpha1/query").QueryConfigRequest): Promise; - }; - }; - auth: { - v1beta1: { - accounts(request?: import("../cosmos/auth/v1beta1/query").QueryAccountsRequest): Promise; - account(request: import("../cosmos/auth/v1beta1/query").QueryAccountRequest): Promise; - params(request?: import("../cosmos/auth/v1beta1/query").QueryParamsRequest): Promise; - moduleAccounts(request?: import("../cosmos/auth/v1beta1/query").QueryModuleAccountsRequest): Promise; - bech32Prefix(request?: import("../cosmos/auth/v1beta1/query").Bech32PrefixRequest): Promise; - addressBytesToString(request: import("../cosmos/auth/v1beta1/query").AddressBytesToStringRequest): Promise; - addressStringToBytes(request: import("../cosmos/auth/v1beta1/query").AddressStringToBytesRequest): Promise; - }; - }; - authz: { - v1beta1: { - grants(request: import("../cosmos/authz/v1beta1/query").QueryGrantsRequest): Promise; - granterGrants(request: import("../cosmos/authz/v1beta1/query").QueryGranterGrantsRequest): Promise; - granteeGrants(request: import("../cosmos/authz/v1beta1/query").QueryGranteeGrantsRequest): Promise; - }; - }; - bank: { - v1beta1: { - balance(request: import("../cosmos/bank/v1beta1/query").QueryBalanceRequest): Promise; - allBalances(request: import("../cosmos/bank/v1beta1/query").QueryAllBalancesRequest): Promise; - spendableBalances(request: import("../cosmos/bank/v1beta1/query").QuerySpendableBalancesRequest): Promise; - totalSupply(request?: import("../cosmos/bank/v1beta1/query").QueryTotalSupplyRequest): Promise; - supplyOf(request: import("../cosmos/bank/v1beta1/query").QuerySupplyOfRequest): Promise; - params(request?: import("../cosmos/bank/v1beta1/query").QueryParamsRequest): Promise; - denomMetadata(request: import("../cosmos/bank/v1beta1/query").QueryDenomMetadataRequest): Promise; - denomsMetadata(request?: import("../cosmos/bank/v1beta1/query").QueryDenomsMetadataRequest): Promise; - denomOwners(request: import("../cosmos/bank/v1beta1/query").QueryDenomOwnersRequest): Promise; - }; - }; - base: { - tendermint: { - v1beta1: { - getNodeInfo(request?: import("../cosmos/base/tendermint/v1beta1/query").GetNodeInfoRequest): Promise; - getSyncing(request?: import("../cosmos/base/tendermint/v1beta1/query").GetSyncingRequest): Promise; - getLatestBlock(request?: import("../cosmos/base/tendermint/v1beta1/query").GetLatestBlockRequest): Promise; - getBlockByHeight(request: import("../cosmos/base/tendermint/v1beta1/query").GetBlockByHeightRequest): Promise; - getLatestValidatorSet(request?: import("../cosmos/base/tendermint/v1beta1/query").GetLatestValidatorSetRequest): Promise; - getValidatorSetByHeight(request: import("../cosmos/base/tendermint/v1beta1/query").GetValidatorSetByHeightRequest): Promise; - }; - }; - }; - distribution: { - v1beta1: { - params(request?: import("../cosmos/distribution/v1beta1/query").QueryParamsRequest): Promise; - validatorOutstandingRewards(request: import("../cosmos/distribution/v1beta1/query").QueryValidatorOutstandingRewardsRequest): Promise; - validatorCommission(request: import("../cosmos/distribution/v1beta1/query").QueryValidatorCommissionRequest): Promise; - validatorSlashes(request: import("../cosmos/distribution/v1beta1/query").QueryValidatorSlashesRequest): Promise; - delegationRewards(request: import("../cosmos/distribution/v1beta1/query").QueryDelegationRewardsRequest): Promise; - delegationTotalRewards(request: import("../cosmos/distribution/v1beta1/query").QueryDelegationTotalRewardsRequest): Promise; - delegatorValidators(request: import("../cosmos/distribution/v1beta1/query").QueryDelegatorValidatorsRequest): Promise; - delegatorWithdrawAddress(request: import("../cosmos/distribution/v1beta1/query").QueryDelegatorWithdrawAddressRequest): Promise; - communityPool(request?: import("../cosmos/distribution/v1beta1/query").QueryCommunityPoolRequest): Promise; - }; - }; - evidence: { - v1beta1: { - evidence(request: import("../cosmos/evidence/v1beta1/query").QueryEvidenceRequest): Promise; - allEvidence(request?: import("../cosmos/evidence/v1beta1/query").QueryAllEvidenceRequest): Promise; - }; - }; - feegrant: { - v1beta1: { - allowance(request: import("../cosmos/feegrant/v1beta1/query").QueryAllowanceRequest): Promise; - allowances(request: import("../cosmos/feegrant/v1beta1/query").QueryAllowancesRequest): Promise; - allowancesByGranter(request: import("../cosmos/feegrant/v1beta1/query").QueryAllowancesByGranterRequest): Promise; - }; - }; - gov: { - v1: { - proposal(request: import("../cosmos/gov/v1/query").QueryProposalRequest): Promise; - proposals(request: import("../cosmos/gov/v1/query").QueryProposalsRequest): Promise; - vote(request: import("../cosmos/gov/v1/query").QueryVoteRequest): Promise; - votes(request: import("../cosmos/gov/v1/query").QueryVotesRequest): Promise; - params(request: import("../cosmos/gov/v1/query").QueryParamsRequest): Promise; - deposit(request: import("../cosmos/gov/v1/query").QueryDepositRequest): Promise; - deposits(request: import("../cosmos/gov/v1/query").QueryDepositsRequest): Promise; - tallyResult(request: import("../cosmos/gov/v1/query").QueryTallyResultRequest): Promise; - }; - v1beta1: { - proposal(request: import("../cosmos/gov/v1beta1/query").QueryProposalRequest): Promise; - proposals(request: import("../cosmos/gov/v1beta1/query").QueryProposalsRequest): Promise; - vote(request: import("../cosmos/gov/v1beta1/query").QueryVoteRequest): Promise; - votes(request: import("../cosmos/gov/v1beta1/query").QueryVotesRequest): Promise; - params(request: import("../cosmos/gov/v1beta1/query").QueryParamsRequest): Promise; - deposit(request: import("../cosmos/gov/v1beta1/query").QueryDepositRequest): Promise; - deposits(request: import("../cosmos/gov/v1beta1/query").QueryDepositsRequest): Promise; - tallyResult(request: import("../cosmos/gov/v1beta1/query").QueryTallyResultRequest): Promise; - }; - }; - group: { - v1: { - groupInfo(request: import("../cosmos/group/v1/query").QueryGroupInfoRequest): Promise; - groupPolicyInfo(request: import("../cosmos/group/v1/query").QueryGroupPolicyInfoRequest): Promise; - groupMembers(request: import("../cosmos/group/v1/query").QueryGroupMembersRequest): Promise; - groupsByAdmin(request: import("../cosmos/group/v1/query").QueryGroupsByAdminRequest): Promise; - groupPoliciesByGroup(request: import("../cosmos/group/v1/query").QueryGroupPoliciesByGroupRequest): Promise; - groupPoliciesByAdmin(request: import("../cosmos/group/v1/query").QueryGroupPoliciesByAdminRequest): Promise; - proposal(request: import("../cosmos/group/v1/query").QueryProposalRequest): Promise; - proposalsByGroupPolicy(request: import("../cosmos/group/v1/query").QueryProposalsByGroupPolicyRequest): Promise; - voteByProposalVoter(request: import("../cosmos/group/v1/query").QueryVoteByProposalVoterRequest): Promise; - votesByProposal(request: import("../cosmos/group/v1/query").QueryVotesByProposalRequest): Promise; - votesByVoter(request: import("../cosmos/group/v1/query").QueryVotesByVoterRequest): Promise; - groupsByMember(request: import("../cosmos/group/v1/query").QueryGroupsByMemberRequest): Promise; - tallyResult(request: import("../cosmos/group/v1/query").QueryTallyResultRequest): Promise; - }; - }; - mint: { - v1beta1: { - params(request?: import("../cosmos/mint/v1beta1/query").QueryParamsRequest): Promise; - inflation(request?: import("../cosmos/mint/v1beta1/query").QueryInflationRequest): Promise; - annualProvisions(request?: import("../cosmos/mint/v1beta1/query").QueryAnnualProvisionsRequest): Promise; - }; - }; - nft: { - v1beta1: { - balance(request: import("../cosmos/nft/v1beta1/query").QueryBalanceRequest): Promise; - owner(request: import("../cosmos/nft/v1beta1/query").QueryOwnerRequest): Promise; - supply(request: import("../cosmos/nft/v1beta1/query").QuerySupplyRequest): Promise; - nFTs(request: import("../cosmos/nft/v1beta1/query").QueryNFTsRequest): Promise; - nFT(request: import("../cosmos/nft/v1beta1/query").QueryNFTRequest): Promise; - class(request: import("../cosmos/nft/v1beta1/query").QueryClassRequest): Promise; - classes(request?: import("../cosmos/nft/v1beta1/query").QueryClassesRequest): Promise; - }; - }; - params: { - v1beta1: { - params(request: import("../cosmos/params/v1beta1/query").QueryParamsRequest): Promise; - subspaces(request?: import("../cosmos/params/v1beta1/query").QuerySubspacesRequest): Promise; - }; - }; - slashing: { - v1beta1: { - params(request?: import("../cosmos/slashing/v1beta1/query").QueryParamsRequest): Promise; - signingInfo(request: import("../cosmos/slashing/v1beta1/query").QuerySigningInfoRequest): Promise; - signingInfos(request?: import("../cosmos/slashing/v1beta1/query").QuerySigningInfosRequest): Promise; - }; - }; - staking: { - v1beta1: { - validators(request: import("../cosmos/staking/v1beta1/query").QueryValidatorsRequest): Promise; - validator(request: import("../cosmos/staking/v1beta1/query").QueryValidatorRequest): Promise; - validatorDelegations(request: import("../cosmos/staking/v1beta1/query").QueryValidatorDelegationsRequest): Promise; - validatorUnbondingDelegations(request: import("../cosmos/staking/v1beta1/query").QueryValidatorUnbondingDelegationsRequest): Promise; - delegation(request: import("../cosmos/staking/v1beta1/query").QueryDelegationRequest): Promise; - unbondingDelegation(request: import("../cosmos/staking/v1beta1/query").QueryUnbondingDelegationRequest): Promise; - delegatorDelegations(request: import("../cosmos/staking/v1beta1/query").QueryDelegatorDelegationsRequest): Promise; - delegatorUnbondingDelegations(request: import("../cosmos/staking/v1beta1/query").QueryDelegatorUnbondingDelegationsRequest): Promise; - redelegations(request: import("../cosmos/staking/v1beta1/query").QueryRedelegationsRequest): Promise; - delegatorValidators(request: import("../cosmos/staking/v1beta1/query").QueryDelegatorValidatorsRequest): Promise; - delegatorValidator(request: import("../cosmos/staking/v1beta1/query").QueryDelegatorValidatorRequest): Promise; - historicalInfo(request: import("../cosmos/staking/v1beta1/query").QueryHistoricalInfoRequest): Promise; - pool(request?: import("../cosmos/staking/v1beta1/query").QueryPoolRequest): Promise; - params(request?: import("../cosmos/staking/v1beta1/query").QueryParamsRequest): Promise; - }; - }; - tx: { - v1beta1: { - simulate(request: import("../cosmos/tx/v1beta1/service").SimulateRequest): Promise; - getTx(request: import("../cosmos/tx/v1beta1/service").GetTxRequest): Promise; - broadcastTx(request: import("../cosmos/tx/v1beta1/service").BroadcastTxRequest): Promise; - getTxsEvent(request: import("../cosmos/tx/v1beta1/service").GetTxsEventRequest): Promise; - getBlockWithTxs(request: import("../cosmos/tx/v1beta1/service").GetBlockWithTxsRequest): Promise; - }; - }; - upgrade: { - v1beta1: { - currentPlan(request?: import("../cosmos/upgrade/v1beta1/query").QueryCurrentPlanRequest): Promise; - appliedPlan(request: import("../cosmos/upgrade/v1beta1/query").QueryAppliedPlanRequest): Promise; - upgradedConsensusState(request: import("../cosmos/upgrade/v1beta1/query").QueryUpgradedConsensusStateRequest): Promise; - moduleVersions(request: import("../cosmos/upgrade/v1beta1/query").QueryModuleVersionsRequest): Promise; - authority(request?: import("../cosmos/upgrade/v1beta1/query").QueryAuthorityRequest): Promise; - }; - }; - }; - cosmwasm: { - wasm: { - v1: { - contractInfo(request: _99.QueryContractInfoRequest): Promise<_99.QueryContractInfoResponse>; - contractHistory(request: _99.QueryContractHistoryRequest): Promise<_99.QueryContractHistoryResponse>; - contractsByCode(request: _99.QueryContractsByCodeRequest): Promise<_99.QueryContractsByCodeResponse>; - allContractState(request: _99.QueryAllContractStateRequest): Promise<_99.QueryAllContractStateResponse>; - rawContractState(request: _99.QueryRawContractStateRequest): Promise<_99.QueryRawContractStateResponse>; - smartContractState(request: _99.QuerySmartContractStateRequest): Promise<_99.QuerySmartContractStateResponse>; - code(request: _99.QueryCodeRequest): Promise<_99.QueryCodeResponse>; - codes(request?: _99.QueryCodesRequest): Promise<_99.QueryCodesResponse>; - pinnedCodes(request?: _99.QueryPinnedCodesRequest): Promise<_99.QueryPinnedCodesResponse>; - params(request?: _99.QueryParamsRequest): Promise<_99.QueryParamsResponse>; - contractsByCreator(request: _99.QueryContractsByCreatorRequest): Promise<_99.QueryContractsByCreatorResponse>; - }; - }; - }; - }>; - createLCDClient: ({ restEndpoint }: { - restEndpoint: string; - }) => Promise<{ - cosmos: { - auth: { - v1beta1: import("../cosmos/auth/v1beta1/query.lcd").LCDQueryClient; - }; - authz: { - v1beta1: import("../cosmos/authz/v1beta1/query.lcd").LCDQueryClient; - }; - bank: { - v1beta1: import("../cosmos/bank/v1beta1/query.lcd").LCDQueryClient; - }; - base: { - tendermint: { - v1beta1: import("../cosmos/base/tendermint/v1beta1/query.lcd").LCDQueryClient; - }; - }; - distribution: { - v1beta1: import("../cosmos/distribution/v1beta1/query.lcd").LCDQueryClient; - }; - evidence: { - v1beta1: import("../cosmos/evidence/v1beta1/query.lcd").LCDQueryClient; - }; - feegrant: { - v1beta1: import("../cosmos/feegrant/v1beta1/query.lcd").LCDQueryClient; - }; - gov: { - v1: import("../cosmos/gov/v1/query.lcd").LCDQueryClient; - v1beta1: import("../cosmos/gov/v1beta1/query.lcd").LCDQueryClient; - }; - group: { - v1: import("../cosmos/group/v1/query.lcd").LCDQueryClient; - }; - mint: { - v1beta1: import("../cosmos/mint/v1beta1/query.lcd").LCDQueryClient; - }; - nft: { - v1beta1: import("../cosmos/nft/v1beta1/query.lcd").LCDQueryClient; - }; - params: { - v1beta1: import("../cosmos/params/v1beta1/query.lcd").LCDQueryClient; - }; - slashing: { - v1beta1: import("../cosmos/slashing/v1beta1/query.lcd").LCDQueryClient; - }; - staking: { - v1beta1: import("../cosmos/staking/v1beta1/query.lcd").LCDQueryClient; - }; - tx: { - v1beta1: import("../cosmos/tx/v1beta1/service.lcd").LCDQueryClient; - }; - upgrade: { - v1beta1: import("../cosmos/upgrade/v1beta1/query.lcd").LCDQueryClient; - }; - }; - cosmwasm: { - wasm: { - v1: _194.LCDQueryClient; - }; - }; - }>; - }; -} diff --git a/packages/codegen/dist/cosmwasm/lcd.d.ts b/packages/codegen/dist/cosmwasm/lcd.d.ts deleted file mode 100644 index be718295..00000000 --- a/packages/codegen/dist/cosmwasm/lcd.d.ts +++ /dev/null @@ -1,62 +0,0 @@ -export declare const createLCDClient: ({ restEndpoint }: { - restEndpoint: string; -}) => Promise<{ - cosmos: { - auth: { - v1beta1: import("../cosmos/auth/v1beta1/query.lcd").LCDQueryClient; - }; - authz: { - v1beta1: import("../cosmos/authz/v1beta1/query.lcd").LCDQueryClient; - }; - bank: { - v1beta1: import("../cosmos/bank/v1beta1/query.lcd").LCDQueryClient; - }; - base: { - tendermint: { - v1beta1: import("../cosmos/base/tendermint/v1beta1/query.lcd").LCDQueryClient; - }; - }; - distribution: { - v1beta1: import("../cosmos/distribution/v1beta1/query.lcd").LCDQueryClient; - }; - evidence: { - v1beta1: import("../cosmos/evidence/v1beta1/query.lcd").LCDQueryClient; - }; - feegrant: { - v1beta1: import("../cosmos/feegrant/v1beta1/query.lcd").LCDQueryClient; - }; - gov: { - v1: import("../cosmos/gov/v1/query.lcd").LCDQueryClient; - v1beta1: import("../cosmos/gov/v1beta1/query.lcd").LCDQueryClient; - }; - group: { - v1: import("../cosmos/group/v1/query.lcd").LCDQueryClient; - }; - mint: { - v1beta1: import("../cosmos/mint/v1beta1/query.lcd").LCDQueryClient; - }; - nft: { - v1beta1: import("../cosmos/nft/v1beta1/query.lcd").LCDQueryClient; - }; - params: { - v1beta1: import("../cosmos/params/v1beta1/query.lcd").LCDQueryClient; - }; - slashing: { - v1beta1: import("../cosmos/slashing/v1beta1/query.lcd").LCDQueryClient; - }; - staking: { - v1beta1: import("../cosmos/staking/v1beta1/query.lcd").LCDQueryClient; - }; - tx: { - v1beta1: import("../cosmos/tx/v1beta1/service.lcd").LCDQueryClient; - }; - upgrade: { - v1beta1: import("../cosmos/upgrade/v1beta1/query.lcd").LCDQueryClient; - }; - }; - cosmwasm: { - wasm: { - v1: import("./wasm/v1/query.lcd").LCDQueryClient; - }; - }; -}>; diff --git a/packages/codegen/dist/cosmwasm/rpc.query.d.ts b/packages/codegen/dist/cosmwasm/rpc.query.d.ts deleted file mode 100644 index 0f25ccba..00000000 --- a/packages/codegen/dist/cosmwasm/rpc.query.d.ts +++ /dev/null @@ -1,204 +0,0 @@ -import { HttpEndpoint } from "@cosmjs/tendermint-rpc"; -export declare const createRPCQueryClient: ({ rpcEndpoint }: { - rpcEndpoint: string | HttpEndpoint; -}) => Promise<{ - cosmos: { - app: { - v1alpha1: { - config(request?: import("../cosmos/app/v1alpha1/query").QueryConfigRequest): Promise; - }; - }; - auth: { - v1beta1: { - accounts(request?: import("../cosmos/auth/v1beta1/query").QueryAccountsRequest): Promise; - account(request: import("../cosmos/auth/v1beta1/query").QueryAccountRequest): Promise; - params(request?: import("../cosmos/auth/v1beta1/query").QueryParamsRequest): Promise; - moduleAccounts(request?: import("../cosmos/auth/v1beta1/query").QueryModuleAccountsRequest): Promise; - bech32Prefix(request?: import("../cosmos/auth/v1beta1/query").Bech32PrefixRequest): Promise; - addressBytesToString(request: import("../cosmos/auth/v1beta1/query").AddressBytesToStringRequest): Promise; - addressStringToBytes(request: import("../cosmos/auth/v1beta1/query").AddressStringToBytesRequest): Promise; - }; - }; - authz: { - v1beta1: { - grants(request: import("../cosmos/authz/v1beta1/query").QueryGrantsRequest): Promise; - granterGrants(request: import("../cosmos/authz/v1beta1/query").QueryGranterGrantsRequest): Promise; - granteeGrants(request: import("../cosmos/authz/v1beta1/query").QueryGranteeGrantsRequest): Promise; - }; - }; - bank: { - v1beta1: { - balance(request: import("../cosmos/bank/v1beta1/query").QueryBalanceRequest): Promise; - allBalances(request: import("../cosmos/bank/v1beta1/query").QueryAllBalancesRequest): Promise; - spendableBalances(request: import("../cosmos/bank/v1beta1/query").QuerySpendableBalancesRequest): Promise; - totalSupply(request?: import("../cosmos/bank/v1beta1/query").QueryTotalSupplyRequest): Promise; - supplyOf(request: import("../cosmos/bank/v1beta1/query").QuerySupplyOfRequest): Promise; - params(request?: import("../cosmos/bank/v1beta1/query").QueryParamsRequest): Promise; - denomMetadata(request: import("../cosmos/bank/v1beta1/query").QueryDenomMetadataRequest): Promise; - denomsMetadata(request?: import("../cosmos/bank/v1beta1/query").QueryDenomsMetadataRequest): Promise; - denomOwners(request: import("../cosmos/bank/v1beta1/query").QueryDenomOwnersRequest): Promise; - }; - }; - base: { - tendermint: { - v1beta1: { - getNodeInfo(request?: import("../cosmos/base/tendermint/v1beta1/query").GetNodeInfoRequest): Promise; - getSyncing(request?: import("../cosmos/base/tendermint/v1beta1/query").GetSyncingRequest): Promise; - getLatestBlock(request?: import("../cosmos/base/tendermint/v1beta1/query").GetLatestBlockRequest): Promise; - getBlockByHeight(request: import("../cosmos/base/tendermint/v1beta1/query").GetBlockByHeightRequest): Promise; - getLatestValidatorSet(request?: import("../cosmos/base/tendermint/v1beta1/query").GetLatestValidatorSetRequest): Promise; - getValidatorSetByHeight(request: import("../cosmos/base/tendermint/v1beta1/query").GetValidatorSetByHeightRequest): Promise; - }; - }; - }; - distribution: { - v1beta1: { - params(request?: import("../cosmos/distribution/v1beta1/query").QueryParamsRequest): Promise; - validatorOutstandingRewards(request: import("../cosmos/distribution/v1beta1/query").QueryValidatorOutstandingRewardsRequest): Promise; - validatorCommission(request: import("../cosmos/distribution/v1beta1/query").QueryValidatorCommissionRequest): Promise; - validatorSlashes(request: import("../cosmos/distribution/v1beta1/query").QueryValidatorSlashesRequest): Promise; - delegationRewards(request: import("../cosmos/distribution/v1beta1/query").QueryDelegationRewardsRequest): Promise; - delegationTotalRewards(request: import("../cosmos/distribution/v1beta1/query").QueryDelegationTotalRewardsRequest): Promise; - delegatorValidators(request: import("../cosmos/distribution/v1beta1/query").QueryDelegatorValidatorsRequest): Promise; - delegatorWithdrawAddress(request: import("../cosmos/distribution/v1beta1/query").QueryDelegatorWithdrawAddressRequest): Promise; - communityPool(request?: import("../cosmos/distribution/v1beta1/query").QueryCommunityPoolRequest): Promise; - }; - }; - evidence: { - v1beta1: { - evidence(request: import("../cosmos/evidence/v1beta1/query").QueryEvidenceRequest): Promise; - allEvidence(request?: import("../cosmos/evidence/v1beta1/query").QueryAllEvidenceRequest): Promise; - }; - }; - feegrant: { - v1beta1: { - allowance(request: import("../cosmos/feegrant/v1beta1/query").QueryAllowanceRequest): Promise; - allowances(request: import("../cosmos/feegrant/v1beta1/query").QueryAllowancesRequest): Promise; - allowancesByGranter(request: import("../cosmos/feegrant/v1beta1/query").QueryAllowancesByGranterRequest): Promise; - }; - }; - gov: { - v1: { - proposal(request: import("../cosmos/gov/v1/query").QueryProposalRequest): Promise; - proposals(request: import("../cosmos/gov/v1/query").QueryProposalsRequest): Promise; - vote(request: import("../cosmos/gov/v1/query").QueryVoteRequest): Promise; - votes(request: import("../cosmos/gov/v1/query").QueryVotesRequest): Promise; - params(request: import("../cosmos/gov/v1/query").QueryParamsRequest): Promise; - deposit(request: import("../cosmos/gov/v1/query").QueryDepositRequest): Promise; - deposits(request: import("../cosmos/gov/v1/query").QueryDepositsRequest): Promise; - tallyResult(request: import("../cosmos/gov/v1/query").QueryTallyResultRequest): Promise; - }; - v1beta1: { - proposal(request: import("../cosmos/gov/v1beta1/query").QueryProposalRequest): Promise; - proposals(request: import("../cosmos/gov/v1beta1/query").QueryProposalsRequest): Promise; - vote(request: import("../cosmos/gov/v1beta1/query").QueryVoteRequest): Promise; - votes(request: import("../cosmos/gov/v1beta1/query").QueryVotesRequest): Promise; - params(request: import("../cosmos/gov/v1beta1/query").QueryParamsRequest): Promise; - deposit(request: import("../cosmos/gov/v1beta1/query").QueryDepositRequest): Promise; - deposits(request: import("../cosmos/gov/v1beta1/query").QueryDepositsRequest): Promise; - tallyResult(request: import("../cosmos/gov/v1beta1/query").QueryTallyResultRequest): Promise; - }; - }; - group: { - v1: { - groupInfo(request: import("../cosmos/group/v1/query").QueryGroupInfoRequest): Promise; - groupPolicyInfo(request: import("../cosmos/group/v1/query").QueryGroupPolicyInfoRequest): Promise; - groupMembers(request: import("../cosmos/group/v1/query").QueryGroupMembersRequest): Promise; - groupsByAdmin(request: import("../cosmos/group/v1/query").QueryGroupsByAdminRequest): Promise; - groupPoliciesByGroup(request: import("../cosmos/group/v1/query").QueryGroupPoliciesByGroupRequest): Promise; - groupPoliciesByAdmin(request: import("../cosmos/group/v1/query").QueryGroupPoliciesByAdminRequest): Promise; - proposal(request: import("../cosmos/group/v1/query").QueryProposalRequest): Promise; - proposalsByGroupPolicy(request: import("../cosmos/group/v1/query").QueryProposalsByGroupPolicyRequest): Promise; - voteByProposalVoter(request: import("../cosmos/group/v1/query").QueryVoteByProposalVoterRequest): Promise; - votesByProposal(request: import("../cosmos/group/v1/query").QueryVotesByProposalRequest): Promise; - votesByVoter(request: import("../cosmos/group/v1/query").QueryVotesByVoterRequest): Promise; - groupsByMember(request: import("../cosmos/group/v1/query").QueryGroupsByMemberRequest): Promise; - tallyResult(request: import("../cosmos/group/v1/query").QueryTallyResultRequest): Promise; - }; - }; - mint: { - v1beta1: { - params(request?: import("../cosmos/mint/v1beta1/query").QueryParamsRequest): Promise; - inflation(request?: import("../cosmos/mint/v1beta1/query").QueryInflationRequest): Promise; - annualProvisions(request?: import("../cosmos/mint/v1beta1/query").QueryAnnualProvisionsRequest): Promise; - }; - }; - nft: { - v1beta1: { - balance(request: import("../cosmos/nft/v1beta1/query").QueryBalanceRequest): Promise; - owner(request: import("../cosmos/nft/v1beta1/query").QueryOwnerRequest): Promise; - supply(request: import("../cosmos/nft/v1beta1/query").QuerySupplyRequest): Promise; - nFTs(request: import("../cosmos/nft/v1beta1/query").QueryNFTsRequest): Promise; - nFT(request: import("../cosmos/nft/v1beta1/query").QueryNFTRequest): Promise; - class(request: import("../cosmos/nft/v1beta1/query").QueryClassRequest): Promise; - classes(request?: import("../cosmos/nft/v1beta1/query").QueryClassesRequest): Promise; - }; - }; - params: { - v1beta1: { - params(request: import("../cosmos/params/v1beta1/query").QueryParamsRequest): Promise; - subspaces(request?: import("../cosmos/params/v1beta1/query").QuerySubspacesRequest): Promise; - }; - }; - slashing: { - v1beta1: { - params(request?: import("../cosmos/slashing/v1beta1/query").QueryParamsRequest): Promise; - signingInfo(request: import("../cosmos/slashing/v1beta1/query").QuerySigningInfoRequest): Promise; - signingInfos(request?: import("../cosmos/slashing/v1beta1/query").QuerySigningInfosRequest): Promise; - }; - }; - staking: { - v1beta1: { - validators(request: import("../cosmos/staking/v1beta1/query").QueryValidatorsRequest): Promise; - validator(request: import("../cosmos/staking/v1beta1/query").QueryValidatorRequest): Promise; - validatorDelegations(request: import("../cosmos/staking/v1beta1/query").QueryValidatorDelegationsRequest): Promise; - validatorUnbondingDelegations(request: import("../cosmos/staking/v1beta1/query").QueryValidatorUnbondingDelegationsRequest): Promise; - delegation(request: import("../cosmos/staking/v1beta1/query").QueryDelegationRequest): Promise; - unbondingDelegation(request: import("../cosmos/staking/v1beta1/query").QueryUnbondingDelegationRequest): Promise; - delegatorDelegations(request: import("../cosmos/staking/v1beta1/query").QueryDelegatorDelegationsRequest): Promise; - delegatorUnbondingDelegations(request: import("../cosmos/staking/v1beta1/query").QueryDelegatorUnbondingDelegationsRequest): Promise; - redelegations(request: import("../cosmos/staking/v1beta1/query").QueryRedelegationsRequest): Promise; - delegatorValidators(request: import("../cosmos/staking/v1beta1/query").QueryDelegatorValidatorsRequest): Promise; - delegatorValidator(request: import("../cosmos/staking/v1beta1/query").QueryDelegatorValidatorRequest): Promise; - historicalInfo(request: import("../cosmos/staking/v1beta1/query").QueryHistoricalInfoRequest): Promise; - pool(request?: import("../cosmos/staking/v1beta1/query").QueryPoolRequest): Promise; - params(request?: import("../cosmos/staking/v1beta1/query").QueryParamsRequest): Promise; - }; - }; - tx: { - v1beta1: { - simulate(request: import("../cosmos/tx/v1beta1/service").SimulateRequest): Promise; - getTx(request: import("../cosmos/tx/v1beta1/service").GetTxRequest): Promise; - broadcastTx(request: import("../cosmos/tx/v1beta1/service").BroadcastTxRequest): Promise; - getTxsEvent(request: import("../cosmos/tx/v1beta1/service").GetTxsEventRequest): Promise; - getBlockWithTxs(request: import("../cosmos/tx/v1beta1/service").GetBlockWithTxsRequest): Promise; - }; - }; - upgrade: { - v1beta1: { - currentPlan(request?: import("../cosmos/upgrade/v1beta1/query").QueryCurrentPlanRequest): Promise; - appliedPlan(request: import("../cosmos/upgrade/v1beta1/query").QueryAppliedPlanRequest): Promise; - upgradedConsensusState(request: import("../cosmos/upgrade/v1beta1/query").QueryUpgradedConsensusStateRequest): Promise; - moduleVersions(request: import("../cosmos/upgrade/v1beta1/query").QueryModuleVersionsRequest): Promise; - authority(request?: import("../cosmos/upgrade/v1beta1/query").QueryAuthorityRequest): Promise; - }; - }; - }; - cosmwasm: { - wasm: { - v1: { - contractInfo(request: import("./wasm/v1/query").QueryContractInfoRequest): Promise; - contractHistory(request: import("./wasm/v1/query").QueryContractHistoryRequest): Promise; - contractsByCode(request: import("./wasm/v1/query").QueryContractsByCodeRequest): Promise; - allContractState(request: import("./wasm/v1/query").QueryAllContractStateRequest): Promise; - rawContractState(request: import("./wasm/v1/query").QueryRawContractStateRequest): Promise; - smartContractState(request: import("./wasm/v1/query").QuerySmartContractStateRequest): Promise; - code(request: import("./wasm/v1/query").QueryCodeRequest): Promise; - codes(request?: import("./wasm/v1/query").QueryCodesRequest): Promise; - pinnedCodes(request?: import("./wasm/v1/query").QueryPinnedCodesRequest): Promise; - params(request?: import("./wasm/v1/query").QueryParamsRequest): Promise; - contractsByCreator(request: import("./wasm/v1/query").QueryContractsByCreatorRequest): Promise; - }; - }; - }; -}>; diff --git a/packages/codegen/dist/cosmwasm/rpc.tx.d.ts b/packages/codegen/dist/cosmwasm/rpc.tx.d.ts deleted file mode 100644 index 5c33c61a..00000000 --- a/packages/codegen/dist/cosmwasm/rpc.tx.d.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { Rpc } from "../helpers"; -export declare const createRPCMsgClient: ({ rpc }: { - rpc: Rpc; -}) => Promise<{ - cosmos: { - authz: { - v1beta1: import("../cosmos/authz/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - bank: { - v1beta1: import("../cosmos/bank/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - crisis: { - v1beta1: import("../cosmos/crisis/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - distribution: { - v1beta1: import("../cosmos/distribution/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - evidence: { - v1beta1: import("../cosmos/evidence/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - feegrant: { - v1beta1: import("../cosmos/feegrant/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - gov: { - v1: import("../cosmos/gov/v1/tx.rpc.msg").MsgClientImpl; - v1beta1: import("../cosmos/gov/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - group: { - v1: import("../cosmos/group/v1/tx.rpc.msg").MsgClientImpl; - }; - nft: { - v1beta1: import("../cosmos/nft/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - slashing: { - v1beta1: import("../cosmos/slashing/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - staking: { - v1beta1: import("../cosmos/staking/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - upgrade: { - v1beta1: import("../cosmos/upgrade/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - vesting: { - v1beta1: import("../cosmos/vesting/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - }; - cosmwasm: { - wasm: { - v1: import("./wasm/v1/tx.rpc.msg").MsgClientImpl; - }; - }; -}>; diff --git a/packages/codegen/dist/cosmwasm/wasm/v1/authz.d.ts b/packages/codegen/dist/cosmwasm/wasm/v1/authz.d.ts deleted file mode 100644 index 04931a1c..00000000 --- a/packages/codegen/dist/cosmwasm/wasm/v1/authz.d.ts +++ /dev/null @@ -1,206 +0,0 @@ -/// -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import { Coin, CoinSDKType } from "../../../cosmos/base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** - * ContractExecutionAuthorization defines authorization for wasm execute. - * Since: wasmd 0.30 - */ -export interface ContractExecutionAuthorization { - /** Grants for contract executions */ - grants: ContractGrant[]; -} -/** - * ContractExecutionAuthorization defines authorization for wasm execute. - * Since: wasmd 0.30 - */ -export interface ContractExecutionAuthorizationSDKType { - grants: ContractGrantSDKType[]; -} -/** - * ContractMigrationAuthorization defines authorization for wasm contract - * migration. Since: wasmd 0.30 - */ -export interface ContractMigrationAuthorization { - /** Grants for contract migrations */ - grants: ContractGrant[]; -} -/** - * ContractMigrationAuthorization defines authorization for wasm contract - * migration. Since: wasmd 0.30 - */ -export interface ContractMigrationAuthorizationSDKType { - grants: ContractGrantSDKType[]; -} -/** - * ContractGrant a granted permission for a single contract - * Since: wasmd 0.30 - */ -export interface ContractGrant { - /** Contract is the bech32 address of the smart contract */ - contract: string; - /** - * Limit defines execution limits that are enforced and updated when the grant - * is applied. When the limit lapsed the grant is removed. - */ - limit?: Any; - /** - * Filter define more fine-grained control on the message payload passed - * to the contract in the operation. When no filter applies on execution, the - * operation is prohibited. - */ - filter?: Any; -} -/** - * ContractGrant a granted permission for a single contract - * Since: wasmd 0.30 - */ -export interface ContractGrantSDKType { - contract: string; - limit?: AnySDKType; - filter?: AnySDKType; -} -/** - * MaxCallsLimit limited number of calls to the contract. No funds transferable. - * Since: wasmd 0.30 - */ -export interface MaxCallsLimit { - /** Remaining number that is decremented on each execution */ - remaining: Long; -} -/** - * MaxCallsLimit limited number of calls to the contract. No funds transferable. - * Since: wasmd 0.30 - */ -export interface MaxCallsLimitSDKType { - remaining: Long; -} -/** - * MaxFundsLimit defines the maximal amounts that can be sent to the contract. - * Since: wasmd 0.30 - */ -export interface MaxFundsLimit { - /** Amounts is the maximal amount of tokens transferable to the contract. */ - amounts: Coin[]; -} -/** - * MaxFundsLimit defines the maximal amounts that can be sent to the contract. - * Since: wasmd 0.30 - */ -export interface MaxFundsLimitSDKType { - amounts: CoinSDKType[]; -} -/** - * CombinedLimit defines the maximal amounts that can be sent to a contract and - * the maximal number of calls executable. Both need to remain >0 to be valid. - * Since: wasmd 0.30 - */ -export interface CombinedLimit { - /** Remaining number that is decremented on each execution */ - callsRemaining: Long; - /** Amounts is the maximal amount of tokens transferable to the contract. */ - amounts: Coin[]; -} -/** - * CombinedLimit defines the maximal amounts that can be sent to a contract and - * the maximal number of calls executable. Both need to remain >0 to be valid. - * Since: wasmd 0.30 - */ -export interface CombinedLimitSDKType { - calls_remaining: Long; - amounts: CoinSDKType[]; -} -/** - * AllowAllMessagesFilter is a wildcard to allow any type of contract payload - * message. - * Since: wasmd 0.30 - */ -export interface AllowAllMessagesFilter { -} -/** - * AllowAllMessagesFilter is a wildcard to allow any type of contract payload - * message. - * Since: wasmd 0.30 - */ -export interface AllowAllMessagesFilterSDKType { -} -/** - * AcceptedMessageKeysFilter accept only the specific contract message keys in - * the json object to be executed. - * Since: wasmd 0.30 - */ -export interface AcceptedMessageKeysFilter { - /** Messages is the list of unique keys */ - keys: string[]; -} -/** - * AcceptedMessageKeysFilter accept only the specific contract message keys in - * the json object to be executed. - * Since: wasmd 0.30 - */ -export interface AcceptedMessageKeysFilterSDKType { - keys: string[]; -} -/** - * AcceptedMessagesFilter accept only the specific raw contract messages to be - * executed. - * Since: wasmd 0.30 - */ -export interface AcceptedMessagesFilter { - /** Messages is the list of raw contract messages */ - messages: Uint8Array[]; -} -/** - * AcceptedMessagesFilter accept only the specific raw contract messages to be - * executed. - * Since: wasmd 0.30 - */ -export interface AcceptedMessagesFilterSDKType { - messages: Uint8Array[]; -} -export declare const ContractExecutionAuthorization: { - encode(message: ContractExecutionAuthorization, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ContractExecutionAuthorization; - fromPartial(object: DeepPartial): ContractExecutionAuthorization; -}; -export declare const ContractMigrationAuthorization: { - encode(message: ContractMigrationAuthorization, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ContractMigrationAuthorization; - fromPartial(object: DeepPartial): ContractMigrationAuthorization; -}; -export declare const ContractGrant: { - encode(message: ContractGrant, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ContractGrant; - fromPartial(object: DeepPartial): ContractGrant; -}; -export declare const MaxCallsLimit: { - encode(message: MaxCallsLimit, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MaxCallsLimit; - fromPartial(object: DeepPartial): MaxCallsLimit; -}; -export declare const MaxFundsLimit: { - encode(message: MaxFundsLimit, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MaxFundsLimit; - fromPartial(object: DeepPartial): MaxFundsLimit; -}; -export declare const CombinedLimit: { - encode(message: CombinedLimit, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): CombinedLimit; - fromPartial(object: DeepPartial): CombinedLimit; -}; -export declare const AllowAllMessagesFilter: { - encode(_: AllowAllMessagesFilter, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): AllowAllMessagesFilter; - fromPartial(_: DeepPartial): AllowAllMessagesFilter; -}; -export declare const AcceptedMessageKeysFilter: { - encode(message: AcceptedMessageKeysFilter, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): AcceptedMessageKeysFilter; - fromPartial(object: DeepPartial): AcceptedMessageKeysFilter; -}; -export declare const AcceptedMessagesFilter: { - encode(message: AcceptedMessagesFilter, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): AcceptedMessagesFilter; - fromPartial(object: DeepPartial): AcceptedMessagesFilter; -}; diff --git a/packages/codegen/dist/cosmwasm/wasm/v1/genesis.d.ts b/packages/codegen/dist/cosmwasm/wasm/v1/genesis.d.ts deleted file mode 100644 index 525813ea..00000000 --- a/packages/codegen/dist/cosmwasm/wasm/v1/genesis.d.ts +++ /dev/null @@ -1,77 +0,0 @@ -/// -import { Params, ParamsSDKType, CodeInfo, CodeInfoSDKType, ContractInfo, ContractInfoSDKType, Model, ModelSDKType, ContractCodeHistoryEntry, ContractCodeHistoryEntrySDKType } from "./types"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** GenesisState - genesis state of x/wasm */ -export interface GenesisState { - params?: Params; - codes: Code[]; - contracts: Contract[]; - sequences: Sequence[]; -} -/** GenesisState - genesis state of x/wasm */ -export interface GenesisStateSDKType { - params?: ParamsSDKType; - codes: CodeSDKType[]; - contracts: ContractSDKType[]; - sequences: SequenceSDKType[]; -} -/** Code struct encompasses CodeInfo and CodeBytes */ -export interface Code { - codeId: Long; - codeInfo?: CodeInfo; - codeBytes: Uint8Array; - /** Pinned to wasmvm cache */ - pinned: boolean; -} -/** Code struct encompasses CodeInfo and CodeBytes */ -export interface CodeSDKType { - code_id: Long; - code_info?: CodeInfoSDKType; - code_bytes: Uint8Array; - pinned: boolean; -} -/** Contract struct encompasses ContractAddress, ContractInfo, and ContractState */ -export interface Contract { - contractAddress: string; - contractInfo?: ContractInfo; - contractState: Model[]; - contractCodeHistory: ContractCodeHistoryEntry[]; -} -/** Contract struct encompasses ContractAddress, ContractInfo, and ContractState */ -export interface ContractSDKType { - contract_address: string; - contract_info?: ContractInfoSDKType; - contract_state: ModelSDKType[]; - contract_code_history: ContractCodeHistoryEntrySDKType[]; -} -/** Sequence key and value of an id generation counter */ -export interface Sequence { - idKey: Uint8Array; - value: Long; -} -/** Sequence key and value of an id generation counter */ -export interface SequenceSDKType { - id_key: Uint8Array; - value: Long; -} -export declare const GenesisState: { - encode(message: GenesisState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState; - fromPartial(object: DeepPartial): GenesisState; -}; -export declare const Code: { - encode(message: Code, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Code; - fromPartial(object: DeepPartial): Code; -}; -export declare const Contract: { - encode(message: Contract, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Contract; - fromPartial(object: DeepPartial): Contract; -}; -export declare const Sequence: { - encode(message: Sequence, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Sequence; - fromPartial(object: DeepPartial): Sequence; -}; diff --git a/packages/codegen/dist/cosmwasm/wasm/v1/ibc.d.ts b/packages/codegen/dist/cosmwasm/wasm/v1/ibc.d.ts deleted file mode 100644 index 8c625754..00000000 --- a/packages/codegen/dist/cosmwasm/wasm/v1/ibc.d.ts +++ /dev/null @@ -1,48 +0,0 @@ -/// -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** MsgIBCSend */ -export interface MsgIBCSend { - /** the channel by which the packet will be sent */ - channel: string; - /** - * Timeout height relative to the current block height. - * The timeout is disabled when set to 0. - */ - timeoutHeight: Long; - /** - * Timeout timestamp (in nanoseconds) relative to the current block timestamp. - * The timeout is disabled when set to 0. - */ - timeoutTimestamp: Long; - /** - * Data is the payload to transfer. We must not make assumption what format or - * content is in here. - */ - data: Uint8Array; -} -/** MsgIBCSend */ -export interface MsgIBCSendSDKType { - channel: string; - timeout_height: Long; - timeout_timestamp: Long; - data: Uint8Array; -} -/** MsgIBCCloseChannel port and channel need to be owned by the contract */ -export interface MsgIBCCloseChannel { - channel: string; -} -/** MsgIBCCloseChannel port and channel need to be owned by the contract */ -export interface MsgIBCCloseChannelSDKType { - channel: string; -} -export declare const MsgIBCSend: { - encode(message: MsgIBCSend, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgIBCSend; - fromPartial(object: DeepPartial): MsgIBCSend; -}; -export declare const MsgIBCCloseChannel: { - encode(message: MsgIBCCloseChannel, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgIBCCloseChannel; - fromPartial(object: DeepPartial): MsgIBCCloseChannel; -}; diff --git a/packages/codegen/dist/cosmwasm/wasm/v1/proposal.d.ts b/packages/codegen/dist/cosmwasm/wasm/v1/proposal.d.ts deleted file mode 100644 index b56e560f..00000000 --- a/packages/codegen/dist/cosmwasm/wasm/v1/proposal.d.ts +++ /dev/null @@ -1,439 +0,0 @@ -/// -import { AccessConfig, AccessConfigSDKType } from "./types"; -import { Coin, CoinSDKType } from "../../../cosmos/base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** StoreCodeProposal gov proposal content type to submit WASM code to the system */ -export interface StoreCodeProposal { - /** Title is a short summary */ - title: string; - /** Description is a human readable text */ - description: string; - /** RunAs is the address that is passed to the contract's environment as sender */ - runAs: string; - /** WASMByteCode can be raw or gzip compressed */ - wasmByteCode: Uint8Array; - /** InstantiatePermission to apply on contract creation, optional */ - instantiatePermission?: AccessConfig; - /** UnpinCode code on upload, optional */ - unpinCode: boolean; - /** Source is the URL where the code is hosted */ - source: string; - /** - * Builder is the docker image used to build the code deterministically, used - * for smart contract verification - */ - builder: string; - /** - * CodeHash is the SHA256 sum of the code outputted by builder, used for smart - * contract verification - */ - codeHash: Uint8Array; -} -/** StoreCodeProposal gov proposal content type to submit WASM code to the system */ -export interface StoreCodeProposalSDKType { - title: string; - description: string; - run_as: string; - wasm_byte_code: Uint8Array; - instantiate_permission?: AccessConfigSDKType; - unpin_code: boolean; - source: string; - builder: string; - code_hash: Uint8Array; -} -/** - * InstantiateContractProposal gov proposal content type to instantiate a - * contract. - */ -export interface InstantiateContractProposal { - /** Title is a short summary */ - title: string; - /** Description is a human readable text */ - description: string; - /** RunAs is the address that is passed to the contract's environment as sender */ - runAs: string; - /** Admin is an optional address that can execute migrations */ - admin: string; - /** CodeID is the reference to the stored WASM code */ - codeId: Long; - /** Label is optional metadata to be stored with a constract instance. */ - label: string; - /** Msg json encoded message to be passed to the contract on instantiation */ - msg: Uint8Array; - /** Funds coins that are transferred to the contract on instantiation */ - funds: Coin[]; -} -/** - * InstantiateContractProposal gov proposal content type to instantiate a - * contract. - */ -export interface InstantiateContractProposalSDKType { - title: string; - description: string; - run_as: string; - admin: string; - code_id: Long; - label: string; - msg: Uint8Array; - funds: CoinSDKType[]; -} -/** - * InstantiateContract2Proposal gov proposal content type to instantiate - * contract 2 - */ -export interface InstantiateContract2Proposal { - /** Title is a short summary */ - title: string; - /** Description is a human readable text */ - description: string; - /** RunAs is the address that is passed to the contract's enviroment as sender */ - runAs: string; - /** Admin is an optional address that can execute migrations */ - admin: string; - /** CodeID is the reference to the stored WASM code */ - codeId: Long; - /** Label is optional metadata to be stored with a constract instance. */ - label: string; - /** Msg json encode message to be passed to the contract on instantiation */ - msg: Uint8Array; - /** Funds coins that are transferred to the contract on instantiation */ - funds: Coin[]; - /** Salt is an arbitrary value provided by the sender. Size can be 1 to 64. */ - salt: Uint8Array; - /** - * FixMsg include the msg value into the hash for the predictable address. - * Default is false - */ - fixMsg: boolean; -} -/** - * InstantiateContract2Proposal gov proposal content type to instantiate - * contract 2 - */ -export interface InstantiateContract2ProposalSDKType { - title: string; - description: string; - run_as: string; - admin: string; - code_id: Long; - label: string; - msg: Uint8Array; - funds: CoinSDKType[]; - salt: Uint8Array; - fix_msg: boolean; -} -/** MigrateContractProposal gov proposal content type to migrate a contract. */ -export interface MigrateContractProposal { - /** Title is a short summary */ - title: string; - /** Description is a human readable text */ - description: string; - /** Contract is the address of the smart contract */ - contract: string; - /** CodeID references the new WASM code */ - codeId: Long; - /** Msg json encoded message to be passed to the contract on migration */ - msg: Uint8Array; -} -/** MigrateContractProposal gov proposal content type to migrate a contract. */ -export interface MigrateContractProposalSDKType { - title: string; - description: string; - contract: string; - code_id: Long; - msg: Uint8Array; -} -/** SudoContractProposal gov proposal content type to call sudo on a contract. */ -export interface SudoContractProposal { - /** Title is a short summary */ - title: string; - /** Description is a human readable text */ - description: string; - /** Contract is the address of the smart contract */ - contract: string; - /** Msg json encoded message to be passed to the contract as sudo */ - msg: Uint8Array; -} -/** SudoContractProposal gov proposal content type to call sudo on a contract. */ -export interface SudoContractProposalSDKType { - title: string; - description: string; - contract: string; - msg: Uint8Array; -} -/** - * ExecuteContractProposal gov proposal content type to call execute on a - * contract. - */ -export interface ExecuteContractProposal { - /** Title is a short summary */ - title: string; - /** Description is a human readable text */ - description: string; - /** RunAs is the address that is passed to the contract's environment as sender */ - runAs: string; - /** Contract is the address of the smart contract */ - contract: string; - /** Msg json encoded message to be passed to the contract as execute */ - msg: Uint8Array; - /** Funds coins that are transferred to the contract on instantiation */ - funds: Coin[]; -} -/** - * ExecuteContractProposal gov proposal content type to call execute on a - * contract. - */ -export interface ExecuteContractProposalSDKType { - title: string; - description: string; - run_as: string; - contract: string; - msg: Uint8Array; - funds: CoinSDKType[]; -} -/** UpdateAdminProposal gov proposal content type to set an admin for a contract. */ -export interface UpdateAdminProposal { - /** Title is a short summary */ - title: string; - /** Description is a human readable text */ - description: string; - /** NewAdmin address to be set */ - newAdmin: string; - /** Contract is the address of the smart contract */ - contract: string; -} -/** UpdateAdminProposal gov proposal content type to set an admin for a contract. */ -export interface UpdateAdminProposalSDKType { - title: string; - description: string; - new_admin: string; - contract: string; -} -/** - * ClearAdminProposal gov proposal content type to clear the admin of a - * contract. - */ -export interface ClearAdminProposal { - /** Title is a short summary */ - title: string; - /** Description is a human readable text */ - description: string; - /** Contract is the address of the smart contract */ - contract: string; -} -/** - * ClearAdminProposal gov proposal content type to clear the admin of a - * contract. - */ -export interface ClearAdminProposalSDKType { - title: string; - description: string; - contract: string; -} -/** - * PinCodesProposal gov proposal content type to pin a set of code ids in the - * wasmvm cache. - */ -export interface PinCodesProposal { - /** Title is a short summary */ - title: string; - /** Description is a human readable text */ - description: string; - /** CodeIDs references the new WASM codes */ - codeIds: Long[]; -} -/** - * PinCodesProposal gov proposal content type to pin a set of code ids in the - * wasmvm cache. - */ -export interface PinCodesProposalSDKType { - title: string; - description: string; - code_ids: Long[]; -} -/** - * UnpinCodesProposal gov proposal content type to unpin a set of code ids in - * the wasmvm cache. - */ -export interface UnpinCodesProposal { - /** Title is a short summary */ - title: string; - /** Description is a human readable text */ - description: string; - /** CodeIDs references the WASM codes */ - codeIds: Long[]; -} -/** - * UnpinCodesProposal gov proposal content type to unpin a set of code ids in - * the wasmvm cache. - */ -export interface UnpinCodesProposalSDKType { - title: string; - description: string; - code_ids: Long[]; -} -/** - * AccessConfigUpdate contains the code id and the access config to be - * applied. - */ -export interface AccessConfigUpdate { - /** CodeID is the reference to the stored WASM code to be updated */ - codeId: Long; - /** InstantiatePermission to apply to the set of code ids */ - instantiatePermission?: AccessConfig; -} -/** - * AccessConfigUpdate contains the code id and the access config to be - * applied. - */ -export interface AccessConfigUpdateSDKType { - code_id: Long; - instantiate_permission?: AccessConfigSDKType; -} -/** - * UpdateInstantiateConfigProposal gov proposal content type to update - * instantiate config to a set of code ids. - */ -export interface UpdateInstantiateConfigProposal { - /** Title is a short summary */ - title: string; - /** Description is a human readable text */ - description: string; - /** - * AccessConfigUpdate contains the list of code ids and the access config - * to be applied. - */ - accessConfigUpdates: AccessConfigUpdate[]; -} -/** - * UpdateInstantiateConfigProposal gov proposal content type to update - * instantiate config to a set of code ids. - */ -export interface UpdateInstantiateConfigProposalSDKType { - title: string; - description: string; - access_config_updates: AccessConfigUpdateSDKType[]; -} -/** - * StoreAndInstantiateContractProposal gov proposal content type to store - * and instantiate the contract. - */ -export interface StoreAndInstantiateContractProposal { - /** Title is a short summary */ - title: string; - /** Description is a human readable text */ - description: string; - /** RunAs is the address that is passed to the contract's environment as sender */ - runAs: string; - /** WASMByteCode can be raw or gzip compressed */ - wasmByteCode: Uint8Array; - /** InstantiatePermission to apply on contract creation, optional */ - instantiatePermission?: AccessConfig; - /** UnpinCode code on upload, optional */ - unpinCode: boolean; - /** Admin is an optional address that can execute migrations */ - admin: string; - /** Label is optional metadata to be stored with a constract instance. */ - label: string; - /** Msg json encoded message to be passed to the contract on instantiation */ - msg: Uint8Array; - /** Funds coins that are transferred to the contract on instantiation */ - funds: Coin[]; - /** Source is the URL where the code is hosted */ - source: string; - /** - * Builder is the docker image used to build the code deterministically, used - * for smart contract verification - */ - builder: string; - /** - * CodeHash is the SHA256 sum of the code outputted by builder, used for smart - * contract verification - */ - codeHash: Uint8Array; -} -/** - * StoreAndInstantiateContractProposal gov proposal content type to store - * and instantiate the contract. - */ -export interface StoreAndInstantiateContractProposalSDKType { - title: string; - description: string; - run_as: string; - wasm_byte_code: Uint8Array; - instantiate_permission?: AccessConfigSDKType; - unpin_code: boolean; - admin: string; - label: string; - msg: Uint8Array; - funds: CoinSDKType[]; - source: string; - builder: string; - code_hash: Uint8Array; -} -export declare const StoreCodeProposal: { - encode(message: StoreCodeProposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): StoreCodeProposal; - fromPartial(object: DeepPartial): StoreCodeProposal; -}; -export declare const InstantiateContractProposal: { - encode(message: InstantiateContractProposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): InstantiateContractProposal; - fromPartial(object: DeepPartial): InstantiateContractProposal; -}; -export declare const InstantiateContract2Proposal: { - encode(message: InstantiateContract2Proposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): InstantiateContract2Proposal; - fromPartial(object: DeepPartial): InstantiateContract2Proposal; -}; -export declare const MigrateContractProposal: { - encode(message: MigrateContractProposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MigrateContractProposal; - fromPartial(object: DeepPartial): MigrateContractProposal; -}; -export declare const SudoContractProposal: { - encode(message: SudoContractProposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SudoContractProposal; - fromPartial(object: DeepPartial): SudoContractProposal; -}; -export declare const ExecuteContractProposal: { - encode(message: ExecuteContractProposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ExecuteContractProposal; - fromPartial(object: DeepPartial): ExecuteContractProposal; -}; -export declare const UpdateAdminProposal: { - encode(message: UpdateAdminProposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): UpdateAdminProposal; - fromPartial(object: DeepPartial): UpdateAdminProposal; -}; -export declare const ClearAdminProposal: { - encode(message: ClearAdminProposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ClearAdminProposal; - fromPartial(object: DeepPartial): ClearAdminProposal; -}; -export declare const PinCodesProposal: { - encode(message: PinCodesProposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PinCodesProposal; - fromPartial(object: DeepPartial): PinCodesProposal; -}; -export declare const UnpinCodesProposal: { - encode(message: UnpinCodesProposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): UnpinCodesProposal; - fromPartial(object: DeepPartial): UnpinCodesProposal; -}; -export declare const AccessConfigUpdate: { - encode(message: AccessConfigUpdate, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): AccessConfigUpdate; - fromPartial(object: DeepPartial): AccessConfigUpdate; -}; -export declare const UpdateInstantiateConfigProposal: { - encode(message: UpdateInstantiateConfigProposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): UpdateInstantiateConfigProposal; - fromPartial(object: DeepPartial): UpdateInstantiateConfigProposal; -}; -export declare const StoreAndInstantiateContractProposal: { - encode(message: StoreAndInstantiateContractProposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): StoreAndInstantiateContractProposal; - fromPartial(object: DeepPartial): StoreAndInstantiateContractProposal; -}; diff --git a/packages/codegen/dist/cosmwasm/wasm/v1/query.d.ts b/packages/codegen/dist/cosmwasm/wasm/v1/query.d.ts deleted file mode 100644 index 3a446784..00000000 --- a/packages/codegen/dist/cosmwasm/wasm/v1/query.d.ts +++ /dev/null @@ -1,461 +0,0 @@ -/// -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../../cosmos/base/query/v1beta1/pagination"; -import { ContractInfo, ContractInfoSDKType, ContractCodeHistoryEntry, ContractCodeHistoryEntrySDKType, Model, ModelSDKType, AccessConfig, AccessConfigSDKType, Params, ParamsSDKType } from "./types"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** - * QueryContractInfoRequest is the request type for the Query/ContractInfo RPC - * method - */ -export interface QueryContractInfoRequest { - /** address is the address of the contract to query */ - address: string; -} -/** - * QueryContractInfoRequest is the request type for the Query/ContractInfo RPC - * method - */ -export interface QueryContractInfoRequestSDKType { - address: string; -} -/** - * QueryContractInfoResponse is the response type for the Query/ContractInfo RPC - * method - */ -export interface QueryContractInfoResponse { - /** address is the address of the contract */ - address: string; - contractInfo?: ContractInfo; -} -/** - * QueryContractInfoResponse is the response type for the Query/ContractInfo RPC - * method - */ -export interface QueryContractInfoResponseSDKType { - address: string; - contract_info?: ContractInfoSDKType; -} -/** - * QueryContractHistoryRequest is the request type for the Query/ContractHistory - * RPC method - */ -export interface QueryContractHistoryRequest { - /** address is the address of the contract to query */ - address: string; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** - * QueryContractHistoryRequest is the request type for the Query/ContractHistory - * RPC method - */ -export interface QueryContractHistoryRequestSDKType { - address: string; - pagination?: PageRequestSDKType; -} -/** - * QueryContractHistoryResponse is the response type for the - * Query/ContractHistory RPC method - */ -export interface QueryContractHistoryResponse { - entries: ContractCodeHistoryEntry[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** - * QueryContractHistoryResponse is the response type for the - * Query/ContractHistory RPC method - */ -export interface QueryContractHistoryResponseSDKType { - entries: ContractCodeHistoryEntrySDKType[]; - pagination?: PageResponseSDKType; -} -/** - * QueryContractsByCodeRequest is the request type for the Query/ContractsByCode - * RPC method - */ -export interface QueryContractsByCodeRequest { - /** - * grpc-gateway_out does not support Go style CodID - * pagination defines an optional pagination for the request. - */ - codeId: Long; - pagination?: PageRequest; -} -/** - * QueryContractsByCodeRequest is the request type for the Query/ContractsByCode - * RPC method - */ -export interface QueryContractsByCodeRequestSDKType { - code_id: Long; - pagination?: PageRequestSDKType; -} -/** - * QueryContractsByCodeResponse is the response type for the - * Query/ContractsByCode RPC method - */ -export interface QueryContractsByCodeResponse { - /** contracts are a set of contract addresses */ - contracts: string[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** - * QueryContractsByCodeResponse is the response type for the - * Query/ContractsByCode RPC method - */ -export interface QueryContractsByCodeResponseSDKType { - contracts: string[]; - pagination?: PageResponseSDKType; -} -/** - * QueryAllContractStateRequest is the request type for the - * Query/AllContractState RPC method - */ -export interface QueryAllContractStateRequest { - /** address is the address of the contract */ - address: string; - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** - * QueryAllContractStateRequest is the request type for the - * Query/AllContractState RPC method - */ -export interface QueryAllContractStateRequestSDKType { - address: string; - pagination?: PageRequestSDKType; -} -/** - * QueryAllContractStateResponse is the response type for the - * Query/AllContractState RPC method - */ -export interface QueryAllContractStateResponse { - models: Model[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** - * QueryAllContractStateResponse is the response type for the - * Query/AllContractState RPC method - */ -export interface QueryAllContractStateResponseSDKType { - models: ModelSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * QueryRawContractStateRequest is the request type for the - * Query/RawContractState RPC method - */ -export interface QueryRawContractStateRequest { - /** address is the address of the contract */ - address: string; - queryData: Uint8Array; -} -/** - * QueryRawContractStateRequest is the request type for the - * Query/RawContractState RPC method - */ -export interface QueryRawContractStateRequestSDKType { - address: string; - query_data: Uint8Array; -} -/** - * QueryRawContractStateResponse is the response type for the - * Query/RawContractState RPC method - */ -export interface QueryRawContractStateResponse { - /** Data contains the raw store data */ - data: Uint8Array; -} -/** - * QueryRawContractStateResponse is the response type for the - * Query/RawContractState RPC method - */ -export interface QueryRawContractStateResponseSDKType { - data: Uint8Array; -} -/** - * QuerySmartContractStateRequest is the request type for the - * Query/SmartContractState RPC method - */ -export interface QuerySmartContractStateRequest { - /** address is the address of the contract */ - address: string; - /** QueryData contains the query data passed to the contract */ - queryData: Uint8Array; -} -/** - * QuerySmartContractStateRequest is the request type for the - * Query/SmartContractState RPC method - */ -export interface QuerySmartContractStateRequestSDKType { - address: string; - query_data: Uint8Array; -} -/** - * QuerySmartContractStateResponse is the response type for the - * Query/SmartContractState RPC method - */ -export interface QuerySmartContractStateResponse { - /** Data contains the json data returned from the smart contract */ - data: Uint8Array; -} -/** - * QuerySmartContractStateResponse is the response type for the - * Query/SmartContractState RPC method - */ -export interface QuerySmartContractStateResponseSDKType { - data: Uint8Array; -} -/** QueryCodeRequest is the request type for the Query/Code RPC method */ -export interface QueryCodeRequest { - /** grpc-gateway_out does not support Go style CodID */ - codeId: Long; -} -/** QueryCodeRequest is the request type for the Query/Code RPC method */ -export interface QueryCodeRequestSDKType { - code_id: Long; -} -/** CodeInfoResponse contains code meta data from CodeInfo */ -export interface CodeInfoResponse { - codeId: Long; - creator: string; - dataHash: Uint8Array; - instantiatePermission?: AccessConfig; -} -/** CodeInfoResponse contains code meta data from CodeInfo */ -export interface CodeInfoResponseSDKType { - code_id: Long; - creator: string; - data_hash: Uint8Array; - instantiate_permission?: AccessConfigSDKType; -} -/** QueryCodeResponse is the response type for the Query/Code RPC method */ -export interface QueryCodeResponse { - codeInfo?: CodeInfoResponse; - data: Uint8Array; -} -/** QueryCodeResponse is the response type for the Query/Code RPC method */ -export interface QueryCodeResponseSDKType { - code_info?: CodeInfoResponseSDKType; - data: Uint8Array; -} -/** QueryCodesRequest is the request type for the Query/Codes RPC method */ -export interface QueryCodesRequest { - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** QueryCodesRequest is the request type for the Query/Codes RPC method */ -export interface QueryCodesRequestSDKType { - pagination?: PageRequestSDKType; -} -/** QueryCodesResponse is the response type for the Query/Codes RPC method */ -export interface QueryCodesResponse { - codeInfos: CodeInfoResponse[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** QueryCodesResponse is the response type for the Query/Codes RPC method */ -export interface QueryCodesResponseSDKType { - code_infos: CodeInfoResponseSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * QueryPinnedCodesRequest is the request type for the Query/PinnedCodes - * RPC method - */ -export interface QueryPinnedCodesRequest { - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** - * QueryPinnedCodesRequest is the request type for the Query/PinnedCodes - * RPC method - */ -export interface QueryPinnedCodesRequestSDKType { - pagination?: PageRequestSDKType; -} -/** - * QueryPinnedCodesResponse is the response type for the - * Query/PinnedCodes RPC method - */ -export interface QueryPinnedCodesResponse { - codeIds: Long[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** - * QueryPinnedCodesResponse is the response type for the - * Query/PinnedCodes RPC method - */ -export interface QueryPinnedCodesResponseSDKType { - code_ids: Long[]; - pagination?: PageResponseSDKType; -} -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ -export interface QueryParamsRequest { -} -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ -export interface QueryParamsRequestSDKType { -} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ -export interface QueryParamsResponse { - /** params defines the parameters of the module. */ - params?: Params; -} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ -export interface QueryParamsResponseSDKType { - params?: ParamsSDKType; -} -/** - * QueryContractsByCreatorRequest is the request type for the - * Query/ContractsByCreator RPC method. - */ -export interface QueryContractsByCreatorRequest { - /** CreatorAddress is the address of contract creator */ - creatorAddress: string; - /** Pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** - * QueryContractsByCreatorRequest is the request type for the - * Query/ContractsByCreator RPC method. - */ -export interface QueryContractsByCreatorRequestSDKType { - creator_address: string; - pagination?: PageRequestSDKType; -} -/** - * QueryContractsByCreatorResponse is the response type for the - * Query/ContractsByCreator RPC method. - */ -export interface QueryContractsByCreatorResponse { - /** ContractAddresses result set */ - contractAddresses: string[]; - /** Pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** - * QueryContractsByCreatorResponse is the response type for the - * Query/ContractsByCreator RPC method. - */ -export interface QueryContractsByCreatorResponseSDKType { - contract_addresses: string[]; - pagination?: PageResponseSDKType; -} -export declare const QueryContractInfoRequest: { - encode(message: QueryContractInfoRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryContractInfoRequest; - fromPartial(object: DeepPartial): QueryContractInfoRequest; -}; -export declare const QueryContractInfoResponse: { - encode(message: QueryContractInfoResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryContractInfoResponse; - fromPartial(object: DeepPartial): QueryContractInfoResponse; -}; -export declare const QueryContractHistoryRequest: { - encode(message: QueryContractHistoryRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryContractHistoryRequest; - fromPartial(object: DeepPartial): QueryContractHistoryRequest; -}; -export declare const QueryContractHistoryResponse: { - encode(message: QueryContractHistoryResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryContractHistoryResponse; - fromPartial(object: DeepPartial): QueryContractHistoryResponse; -}; -export declare const QueryContractsByCodeRequest: { - encode(message: QueryContractsByCodeRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryContractsByCodeRequest; - fromPartial(object: DeepPartial): QueryContractsByCodeRequest; -}; -export declare const QueryContractsByCodeResponse: { - encode(message: QueryContractsByCodeResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryContractsByCodeResponse; - fromPartial(object: DeepPartial): QueryContractsByCodeResponse; -}; -export declare const QueryAllContractStateRequest: { - encode(message: QueryAllContractStateRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllContractStateRequest; - fromPartial(object: DeepPartial): QueryAllContractStateRequest; -}; -export declare const QueryAllContractStateResponse: { - encode(message: QueryAllContractStateResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllContractStateResponse; - fromPartial(object: DeepPartial): QueryAllContractStateResponse; -}; -export declare const QueryRawContractStateRequest: { - encode(message: QueryRawContractStateRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryRawContractStateRequest; - fromPartial(object: DeepPartial): QueryRawContractStateRequest; -}; -export declare const QueryRawContractStateResponse: { - encode(message: QueryRawContractStateResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryRawContractStateResponse; - fromPartial(object: DeepPartial): QueryRawContractStateResponse; -}; -export declare const QuerySmartContractStateRequest: { - encode(message: QuerySmartContractStateRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySmartContractStateRequest; - fromPartial(object: DeepPartial): QuerySmartContractStateRequest; -}; -export declare const QuerySmartContractStateResponse: { - encode(message: QuerySmartContractStateResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySmartContractStateResponse; - fromPartial(object: DeepPartial): QuerySmartContractStateResponse; -}; -export declare const QueryCodeRequest: { - encode(message: QueryCodeRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryCodeRequest; - fromPartial(object: DeepPartial): QueryCodeRequest; -}; -export declare const CodeInfoResponse: { - encode(message: CodeInfoResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): CodeInfoResponse; - fromPartial(object: DeepPartial): CodeInfoResponse; -}; -export declare const QueryCodeResponse: { - encode(message: QueryCodeResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryCodeResponse; - fromPartial(object: DeepPartial): QueryCodeResponse; -}; -export declare const QueryCodesRequest: { - encode(message: QueryCodesRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryCodesRequest; - fromPartial(object: DeepPartial): QueryCodesRequest; -}; -export declare const QueryCodesResponse: { - encode(message: QueryCodesResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryCodesResponse; - fromPartial(object: DeepPartial): QueryCodesResponse; -}; -export declare const QueryPinnedCodesRequest: { - encode(message: QueryPinnedCodesRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPinnedCodesRequest; - fromPartial(object: DeepPartial): QueryPinnedCodesRequest; -}; -export declare const QueryPinnedCodesResponse: { - encode(message: QueryPinnedCodesResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPinnedCodesResponse; - fromPartial(object: DeepPartial): QueryPinnedCodesResponse; -}; -export declare const QueryParamsRequest: { - encode(_: QueryParamsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest; - fromPartial(_: DeepPartial): QueryParamsRequest; -}; -export declare const QueryParamsResponse: { - encode(message: QueryParamsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse; - fromPartial(object: DeepPartial): QueryParamsResponse; -}; -export declare const QueryContractsByCreatorRequest: { - encode(message: QueryContractsByCreatorRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryContractsByCreatorRequest; - fromPartial(object: DeepPartial): QueryContractsByCreatorRequest; -}; -export declare const QueryContractsByCreatorResponse: { - encode(message: QueryContractsByCreatorResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryContractsByCreatorResponse; - fromPartial(object: DeepPartial): QueryContractsByCreatorResponse; -}; diff --git a/packages/codegen/dist/cosmwasm/wasm/v1/query.lcd.d.ts b/packages/codegen/dist/cosmwasm/wasm/v1/query.lcd.d.ts deleted file mode 100644 index b897bd38..00000000 --- a/packages/codegen/dist/cosmwasm/wasm/v1/query.lcd.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { QueryContractInfoRequest, QueryContractInfoResponseSDKType, QueryContractHistoryRequest, QueryContractHistoryResponseSDKType, QueryContractsByCodeRequest, QueryContractsByCodeResponseSDKType, QueryAllContractStateRequest, QueryAllContractStateResponseSDKType, QueryRawContractStateRequest, QueryRawContractStateResponseSDKType, QuerySmartContractStateRequest, QuerySmartContractStateResponseSDKType, QueryCodeRequest, QueryCodeResponseSDKType, QueryCodesRequest, QueryCodesResponseSDKType, QueryPinnedCodesRequest, QueryPinnedCodesResponseSDKType, QueryParamsRequest, QueryParamsResponseSDKType, QueryContractsByCreatorRequest, QueryContractsByCreatorResponseSDKType } from "./query"; -export declare class LCDQueryClient { - req: LCDClient; - constructor({ requestClient }: { - requestClient: LCDClient; - }); - contractInfo(params: QueryContractInfoRequest): Promise; - contractHistory(params: QueryContractHistoryRequest): Promise; - contractsByCode(params: QueryContractsByCodeRequest): Promise; - allContractState(params: QueryAllContractStateRequest): Promise; - rawContractState(params: QueryRawContractStateRequest): Promise; - smartContractState(params: QuerySmartContractStateRequest): Promise; - code(params: QueryCodeRequest): Promise; - codes(params?: QueryCodesRequest): Promise; - pinnedCodes(params?: QueryPinnedCodesRequest): Promise; - params(_params?: QueryParamsRequest): Promise; - contractsByCreator(params: QueryContractsByCreatorRequest): Promise; -} diff --git a/packages/codegen/dist/cosmwasm/wasm/v1/query.rpc.Query.d.ts b/packages/codegen/dist/cosmwasm/wasm/v1/query.rpc.Query.d.ts deleted file mode 100644 index afcb1b95..00000000 --- a/packages/codegen/dist/cosmwasm/wasm/v1/query.rpc.Query.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { QueryClient } from "@cosmjs/stargate"; -import { QueryContractInfoRequest, QueryContractInfoResponse, QueryContractHistoryRequest, QueryContractHistoryResponse, QueryContractsByCodeRequest, QueryContractsByCodeResponse, QueryAllContractStateRequest, QueryAllContractStateResponse, QueryRawContractStateRequest, QueryRawContractStateResponse, QuerySmartContractStateRequest, QuerySmartContractStateResponse, QueryCodeRequest, QueryCodeResponse, QueryCodesRequest, QueryCodesResponse, QueryPinnedCodesRequest, QueryPinnedCodesResponse, QueryParamsRequest, QueryParamsResponse, QueryContractsByCreatorRequest, QueryContractsByCreatorResponse } from "./query"; -/** Query provides defines the gRPC querier service */ -export interface Query { - /** ContractInfo gets the contract meta data */ - contractInfo(request: QueryContractInfoRequest): Promise; - /** ContractHistory gets the contract code history */ - contractHistory(request: QueryContractHistoryRequest): Promise; - /** ContractsByCode lists all smart contracts for a code id */ - contractsByCode(request: QueryContractsByCodeRequest): Promise; - /** AllContractState gets all raw store data for a single contract */ - allContractState(request: QueryAllContractStateRequest): Promise; - /** RawContractState gets single key from the raw store data of a contract */ - rawContractState(request: QueryRawContractStateRequest): Promise; - /** SmartContractState get smart query result from the contract */ - smartContractState(request: QuerySmartContractStateRequest): Promise; - /** Code gets the binary code and metadata for a singe wasm code */ - code(request: QueryCodeRequest): Promise; - /** Codes gets the metadata for all stored wasm codes */ - codes(request?: QueryCodesRequest): Promise; - /** PinnedCodes gets the pinned code ids */ - pinnedCodes(request?: QueryPinnedCodesRequest): Promise; - /** Params gets the module params */ - params(request?: QueryParamsRequest): Promise; - /** ContractsByCreator gets the contracts by creator */ - contractsByCreator(request: QueryContractsByCreatorRequest): Promise; -} -export declare class QueryClientImpl implements Query { - private readonly rpc; - constructor(rpc: Rpc); - contractInfo(request: QueryContractInfoRequest): Promise; - contractHistory(request: QueryContractHistoryRequest): Promise; - contractsByCode(request: QueryContractsByCodeRequest): Promise; - allContractState(request: QueryAllContractStateRequest): Promise; - rawContractState(request: QueryRawContractStateRequest): Promise; - smartContractState(request: QuerySmartContractStateRequest): Promise; - code(request: QueryCodeRequest): Promise; - codes(request?: QueryCodesRequest): Promise; - pinnedCodes(request?: QueryPinnedCodesRequest): Promise; - params(request?: QueryParamsRequest): Promise; - contractsByCreator(request: QueryContractsByCreatorRequest): Promise; -} -export declare const createRpcQueryExtension: (base: QueryClient) => { - contractInfo(request: QueryContractInfoRequest): Promise; - contractHistory(request: QueryContractHistoryRequest): Promise; - contractsByCode(request: QueryContractsByCodeRequest): Promise; - allContractState(request: QueryAllContractStateRequest): Promise; - rawContractState(request: QueryRawContractStateRequest): Promise; - smartContractState(request: QuerySmartContractStateRequest): Promise; - code(request: QueryCodeRequest): Promise; - codes(request?: QueryCodesRequest): Promise; - pinnedCodes(request?: QueryPinnedCodesRequest): Promise; - params(request?: QueryParamsRequest): Promise; - contractsByCreator(request: QueryContractsByCreatorRequest): Promise; -}; diff --git a/packages/codegen/dist/cosmwasm/wasm/v1/tx.d.ts b/packages/codegen/dist/cosmwasm/wasm/v1/tx.d.ts deleted file mode 100644 index 3b41b3cf..00000000 --- a/packages/codegen/dist/cosmwasm/wasm/v1/tx.d.ts +++ /dev/null @@ -1,294 +0,0 @@ -/// -import { AccessConfig, AccessConfigSDKType } from "./types"; -import { Coin, CoinSDKType } from "../../../cosmos/base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** MsgStoreCode submit Wasm code to the system */ -export interface MsgStoreCode { - /** Sender is the that actor that signed the messages */ - sender: string; - /** WASMByteCode can be raw or gzip compressed */ - wasmByteCode: Uint8Array; - /** - * InstantiatePermission access control to apply on contract creation, - * optional - */ - instantiatePermission?: AccessConfig; -} -/** MsgStoreCode submit Wasm code to the system */ -export interface MsgStoreCodeSDKType { - sender: string; - wasm_byte_code: Uint8Array; - instantiate_permission?: AccessConfigSDKType; -} -/** MsgStoreCodeResponse returns store result data. */ -export interface MsgStoreCodeResponse { - /** CodeID is the reference to the stored WASM code */ - codeId: Long; - /** Checksum is the sha256 hash of the stored code */ - checksum: Uint8Array; -} -/** MsgStoreCodeResponse returns store result data. */ -export interface MsgStoreCodeResponseSDKType { - code_id: Long; - checksum: Uint8Array; -} -/** - * MsgInstantiateContract create a new smart contract instance for the given - * code id. - */ -export interface MsgInstantiateContract { - /** Sender is the that actor that signed the messages */ - sender: string; - /** Admin is an optional address that can execute migrations */ - admin: string; - /** CodeID is the reference to the stored WASM code */ - codeId: Long; - /** Label is optional metadata to be stored with a contract instance. */ - label: string; - /** Msg json encoded message to be passed to the contract on instantiation */ - msg: Uint8Array; - /** Funds coins that are transferred to the contract on instantiation */ - funds: Coin[]; -} -/** - * MsgInstantiateContract create a new smart contract instance for the given - * code id. - */ -export interface MsgInstantiateContractSDKType { - sender: string; - admin: string; - code_id: Long; - label: string; - msg: Uint8Array; - funds: CoinSDKType[]; -} -/** - * MsgInstantiateContract2 create a new smart contract instance for the given - * code id with a predicable address. - */ -export interface MsgInstantiateContract2 { - /** Sender is the that actor that signed the messages */ - sender: string; - /** Admin is an optional address that can execute migrations */ - admin: string; - /** CodeID is the reference to the stored WASM code */ - codeId: Long; - /** Label is optional metadata to be stored with a contract instance. */ - label: string; - /** Msg json encoded message to be passed to the contract on instantiation */ - msg: Uint8Array; - /** Funds coins that are transferred to the contract on instantiation */ - funds: Coin[]; - /** Salt is an arbitrary value provided by the sender. Size can be 1 to 64. */ - salt: Uint8Array; - /** - * FixMsg include the msg value into the hash for the predictable address. - * Default is false - */ - fixMsg: boolean; -} -/** - * MsgInstantiateContract2 create a new smart contract instance for the given - * code id with a predicable address. - */ -export interface MsgInstantiateContract2SDKType { - sender: string; - admin: string; - code_id: Long; - label: string; - msg: Uint8Array; - funds: CoinSDKType[]; - salt: Uint8Array; - fix_msg: boolean; -} -/** MsgInstantiateContractResponse return instantiation result data */ -export interface MsgInstantiateContractResponse { - /** Address is the bech32 address of the new contract instance. */ - address: string; - /** Data contains bytes to returned from the contract */ - data: Uint8Array; -} -/** MsgInstantiateContractResponse return instantiation result data */ -export interface MsgInstantiateContractResponseSDKType { - address: string; - data: Uint8Array; -} -/** MsgInstantiateContract2Response return instantiation result data */ -export interface MsgInstantiateContract2Response { - /** Address is the bech32 address of the new contract instance. */ - address: string; - /** Data contains bytes to returned from the contract */ - data: Uint8Array; -} -/** MsgInstantiateContract2Response return instantiation result data */ -export interface MsgInstantiateContract2ResponseSDKType { - address: string; - data: Uint8Array; -} -/** MsgExecuteContract submits the given message data to a smart contract */ -export interface MsgExecuteContract { - /** Sender is the that actor that signed the messages */ - sender: string; - /** Contract is the address of the smart contract */ - contract: string; - /** Msg json encoded message to be passed to the contract */ - msg: Uint8Array; - /** Funds coins that are transferred to the contract on execution */ - funds: Coin[]; -} -/** MsgExecuteContract submits the given message data to a smart contract */ -export interface MsgExecuteContractSDKType { - sender: string; - contract: string; - msg: Uint8Array; - funds: CoinSDKType[]; -} -/** MsgExecuteContractResponse returns execution result data. */ -export interface MsgExecuteContractResponse { - /** Data contains bytes to returned from the contract */ - data: Uint8Array; -} -/** MsgExecuteContractResponse returns execution result data. */ -export interface MsgExecuteContractResponseSDKType { - data: Uint8Array; -} -/** MsgMigrateContract runs a code upgrade/ downgrade for a smart contract */ -export interface MsgMigrateContract { - /** Sender is the that actor that signed the messages */ - sender: string; - /** Contract is the address of the smart contract */ - contract: string; - /** CodeID references the new WASM code */ - codeId: Long; - /** Msg json encoded message to be passed to the contract on migration */ - msg: Uint8Array; -} -/** MsgMigrateContract runs a code upgrade/ downgrade for a smart contract */ -export interface MsgMigrateContractSDKType { - sender: string; - contract: string; - code_id: Long; - msg: Uint8Array; -} -/** MsgMigrateContractResponse returns contract migration result data. */ -export interface MsgMigrateContractResponse { - /** - * Data contains same raw bytes returned as data from the wasm contract. - * (May be empty) - */ - data: Uint8Array; -} -/** MsgMigrateContractResponse returns contract migration result data. */ -export interface MsgMigrateContractResponseSDKType { - data: Uint8Array; -} -/** MsgUpdateAdmin sets a new admin for a smart contract */ -export interface MsgUpdateAdmin { - /** Sender is the that actor that signed the messages */ - sender: string; - /** NewAdmin address to be set */ - newAdmin: string; - /** Contract is the address of the smart contract */ - contract: string; -} -/** MsgUpdateAdmin sets a new admin for a smart contract */ -export interface MsgUpdateAdminSDKType { - sender: string; - new_admin: string; - contract: string; -} -/** MsgUpdateAdminResponse returns empty data */ -export interface MsgUpdateAdminResponse { -} -/** MsgUpdateAdminResponse returns empty data */ -export interface MsgUpdateAdminResponseSDKType { -} -/** MsgClearAdmin removes any admin stored for a smart contract */ -export interface MsgClearAdmin { - /** Sender is the that actor that signed the messages */ - sender: string; - /** Contract is the address of the smart contract */ - contract: string; -} -/** MsgClearAdmin removes any admin stored for a smart contract */ -export interface MsgClearAdminSDKType { - sender: string; - contract: string; -} -/** MsgClearAdminResponse returns empty data */ -export interface MsgClearAdminResponse { -} -/** MsgClearAdminResponse returns empty data */ -export interface MsgClearAdminResponseSDKType { -} -export declare const MsgStoreCode: { - encode(message: MsgStoreCode, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgStoreCode; - fromPartial(object: DeepPartial): MsgStoreCode; -}; -export declare const MsgStoreCodeResponse: { - encode(message: MsgStoreCodeResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgStoreCodeResponse; - fromPartial(object: DeepPartial): MsgStoreCodeResponse; -}; -export declare const MsgInstantiateContract: { - encode(message: MsgInstantiateContract, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgInstantiateContract; - fromPartial(object: DeepPartial): MsgInstantiateContract; -}; -export declare const MsgInstantiateContract2: { - encode(message: MsgInstantiateContract2, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgInstantiateContract2; - fromPartial(object: DeepPartial): MsgInstantiateContract2; -}; -export declare const MsgInstantiateContractResponse: { - encode(message: MsgInstantiateContractResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgInstantiateContractResponse; - fromPartial(object: DeepPartial): MsgInstantiateContractResponse; -}; -export declare const MsgInstantiateContract2Response: { - encode(message: MsgInstantiateContract2Response, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgInstantiateContract2Response; - fromPartial(object: DeepPartial): MsgInstantiateContract2Response; -}; -export declare const MsgExecuteContract: { - encode(message: MsgExecuteContract, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgExecuteContract; - fromPartial(object: DeepPartial): MsgExecuteContract; -}; -export declare const MsgExecuteContractResponse: { - encode(message: MsgExecuteContractResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgExecuteContractResponse; - fromPartial(object: DeepPartial): MsgExecuteContractResponse; -}; -export declare const MsgMigrateContract: { - encode(message: MsgMigrateContract, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgMigrateContract; - fromPartial(object: DeepPartial): MsgMigrateContract; -}; -export declare const MsgMigrateContractResponse: { - encode(message: MsgMigrateContractResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgMigrateContractResponse; - fromPartial(object: DeepPartial): MsgMigrateContractResponse; -}; -export declare const MsgUpdateAdmin: { - encode(message: MsgUpdateAdmin, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateAdmin; - fromPartial(object: DeepPartial): MsgUpdateAdmin; -}; -export declare const MsgUpdateAdminResponse: { - encode(_: MsgUpdateAdminResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateAdminResponse; - fromPartial(_: DeepPartial): MsgUpdateAdminResponse; -}; -export declare const MsgClearAdmin: { - encode(message: MsgClearAdmin, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgClearAdmin; - fromPartial(object: DeepPartial): MsgClearAdmin; -}; -export declare const MsgClearAdminResponse: { - encode(_: MsgClearAdminResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgClearAdminResponse; - fromPartial(_: DeepPartial): MsgClearAdminResponse; -}; diff --git a/packages/codegen/dist/cosmwasm/wasm/v1/tx.rpc.msg.d.ts b/packages/codegen/dist/cosmwasm/wasm/v1/tx.rpc.msg.d.ts deleted file mode 100644 index 88d6e1a7..00000000 --- a/packages/codegen/dist/cosmwasm/wasm/v1/tx.rpc.msg.d.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { Rpc } from "../../../helpers"; -import { MsgStoreCode, MsgStoreCodeResponse, MsgInstantiateContract, MsgInstantiateContractResponse, MsgInstantiateContract2, MsgInstantiateContract2Response, MsgExecuteContract, MsgExecuteContractResponse, MsgMigrateContract, MsgMigrateContractResponse, MsgUpdateAdmin, MsgUpdateAdminResponse, MsgClearAdmin, MsgClearAdminResponse } from "./tx"; -/** Msg defines the wasm Msg service. */ -export interface Msg { - /** StoreCode to submit Wasm code to the system */ - storeCode(request: MsgStoreCode): Promise; - /** - * InstantiateContract creates a new smart contract instance for the given - * code id. - */ - instantiateContract(request: MsgInstantiateContract): Promise; - /** - * InstantiateContract2 creates a new smart contract instance for the given - * code id with a predictable address - */ - instantiateContract2(request: MsgInstantiateContract2): Promise; - /** Execute submits the given message data to a smart contract */ - executeContract(request: MsgExecuteContract): Promise; - /** Migrate runs a code upgrade/ downgrade for a smart contract */ - migrateContract(request: MsgMigrateContract): Promise; - /** UpdateAdmin sets a new admin for a smart contract */ - updateAdmin(request: MsgUpdateAdmin): Promise; - /** ClearAdmin removes any admin stored for a smart contract */ - clearAdmin(request: MsgClearAdmin): Promise; -} -export declare class MsgClientImpl implements Msg { - private readonly rpc; - constructor(rpc: Rpc); - storeCode(request: MsgStoreCode): Promise; - instantiateContract(request: MsgInstantiateContract): Promise; - instantiateContract2(request: MsgInstantiateContract2): Promise; - executeContract(request: MsgExecuteContract): Promise; - migrateContract(request: MsgMigrateContract): Promise; - updateAdmin(request: MsgUpdateAdmin): Promise; - clearAdmin(request: MsgClearAdmin): Promise; -} diff --git a/packages/codegen/dist/cosmwasm/wasm/v1/types.d.ts b/packages/codegen/dist/cosmwasm/wasm/v1/types.d.ts deleted file mode 100644 index ef669234..00000000 --- a/packages/codegen/dist/cosmwasm/wasm/v1/types.d.ts +++ /dev/null @@ -1,206 +0,0 @@ -/// -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** AccessType permission types */ -export declare enum AccessType { - /** ACCESS_TYPE_UNSPECIFIED - AccessTypeUnspecified placeholder for empty value */ - ACCESS_TYPE_UNSPECIFIED = 0, - /** ACCESS_TYPE_NOBODY - AccessTypeNobody forbidden */ - ACCESS_TYPE_NOBODY = 1, - /** - * ACCESS_TYPE_ONLY_ADDRESS - AccessTypeOnlyAddress restricted to a single address - * Deprecated: use AccessTypeAnyOfAddresses instead - */ - ACCESS_TYPE_ONLY_ADDRESS = 2, - /** ACCESS_TYPE_EVERYBODY - AccessTypeEverybody unrestricted */ - ACCESS_TYPE_EVERYBODY = 3, - /** ACCESS_TYPE_ANY_OF_ADDRESSES - AccessTypeAnyOfAddresses allow any of the addresses */ - ACCESS_TYPE_ANY_OF_ADDRESSES = 4, - UNRECOGNIZED = -1 -} -export declare const AccessTypeSDKType: typeof AccessType; -export declare function accessTypeFromJSON(object: any): AccessType; -export declare function accessTypeToJSON(object: AccessType): string; -/** ContractCodeHistoryOperationType actions that caused a code change */ -export declare enum ContractCodeHistoryOperationType { - /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED - ContractCodeHistoryOperationTypeUnspecified placeholder for empty value */ - CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED = 0, - /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT - ContractCodeHistoryOperationTypeInit on chain contract instantiation */ - CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT = 1, - /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE - ContractCodeHistoryOperationTypeMigrate code migration */ - CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE = 2, - /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS - ContractCodeHistoryOperationTypeGenesis based on genesis data */ - CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS = 3, - UNRECOGNIZED = -1 -} -export declare const ContractCodeHistoryOperationTypeSDKType: typeof ContractCodeHistoryOperationType; -export declare function contractCodeHistoryOperationTypeFromJSON(object: any): ContractCodeHistoryOperationType; -export declare function contractCodeHistoryOperationTypeToJSON(object: ContractCodeHistoryOperationType): string; -/** AccessTypeParam */ -export interface AccessTypeParam { - value: AccessType; -} -/** AccessTypeParam */ -export interface AccessTypeParamSDKType { - value: AccessType; -} -/** AccessConfig access control type. */ -export interface AccessConfig { - permission: AccessType; - /** - * Address - * Deprecated: replaced by addresses - */ - address: string; - addresses: string[]; -} -/** AccessConfig access control type. */ -export interface AccessConfigSDKType { - permission: AccessType; - address: string; - addresses: string[]; -} -/** Params defines the set of wasm parameters. */ -export interface Params { - codeUploadAccess?: AccessConfig; - instantiateDefaultPermission: AccessType; -} -/** Params defines the set of wasm parameters. */ -export interface ParamsSDKType { - code_upload_access?: AccessConfigSDKType; - instantiate_default_permission: AccessType; -} -/** CodeInfo is data for the uploaded contract WASM code */ -export interface CodeInfo { - /** CodeHash is the unique identifier created by wasmvm */ - codeHash: Uint8Array; - /** Creator address who initially stored the code */ - creator: string; - /** InstantiateConfig access control to apply on contract creation, optional */ - instantiateConfig?: AccessConfig; -} -/** CodeInfo is data for the uploaded contract WASM code */ -export interface CodeInfoSDKType { - code_hash: Uint8Array; - creator: string; - instantiate_config?: AccessConfigSDKType; -} -/** ContractInfo stores a WASM contract instance */ -export interface ContractInfo { - /** CodeID is the reference to the stored Wasm code */ - codeId: Long; - /** Creator address who initially instantiated the contract */ - creator: string; - /** Admin is an optional address that can execute migrations */ - admin: string; - /** Label is optional metadata to be stored with a contract instance. */ - label: string; - /** Created Tx position when the contract was instantiated. */ - created?: AbsoluteTxPosition; - ibcPortId: string; - /** - * Extension is an extension point to store custom metadata within the - * persistence model. - */ - extension?: Any; -} -/** ContractInfo stores a WASM contract instance */ -export interface ContractInfoSDKType { - code_id: Long; - creator: string; - admin: string; - label: string; - created?: AbsoluteTxPositionSDKType; - ibc_port_id: string; - extension?: AnySDKType; -} -/** ContractCodeHistoryEntry metadata to a contract. */ -export interface ContractCodeHistoryEntry { - operation: ContractCodeHistoryOperationType; - /** CodeID is the reference to the stored WASM code */ - codeId: Long; - /** Updated Tx position when the operation was executed. */ - updated?: AbsoluteTxPosition; - msg: Uint8Array; -} -/** ContractCodeHistoryEntry metadata to a contract. */ -export interface ContractCodeHistoryEntrySDKType { - operation: ContractCodeHistoryOperationType; - code_id: Long; - updated?: AbsoluteTxPositionSDKType; - msg: Uint8Array; -} -/** - * AbsoluteTxPosition is a unique transaction position that allows for global - * ordering of transactions. - */ -export interface AbsoluteTxPosition { - /** BlockHeight is the block the contract was created at */ - blockHeight: Long; - /** - * TxIndex is a monotonic counter within the block (actual transaction index, - * or gas consumed) - */ - txIndex: Long; -} -/** - * AbsoluteTxPosition is a unique transaction position that allows for global - * ordering of transactions. - */ -export interface AbsoluteTxPositionSDKType { - block_height: Long; - tx_index: Long; -} -/** Model is a struct that holds a KV pair */ -export interface Model { - /** hex-encode key to read it better (this is often ascii) */ - key: Uint8Array; - /** base64-encode raw value */ - value: Uint8Array; -} -/** Model is a struct that holds a KV pair */ -export interface ModelSDKType { - key: Uint8Array; - value: Uint8Array; -} -export declare const AccessTypeParam: { - encode(message: AccessTypeParam, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): AccessTypeParam; - fromPartial(object: DeepPartial): AccessTypeParam; -}; -export declare const AccessConfig: { - encode(message: AccessConfig, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): AccessConfig; - fromPartial(object: DeepPartial): AccessConfig; -}; -export declare const Params: { - encode(message: Params, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Params; - fromPartial(object: DeepPartial): Params; -}; -export declare const CodeInfo: { - encode(message: CodeInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): CodeInfo; - fromPartial(object: DeepPartial): CodeInfo; -}; -export declare const ContractInfo: { - encode(message: ContractInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ContractInfo; - fromPartial(object: DeepPartial): ContractInfo; -}; -export declare const ContractCodeHistoryEntry: { - encode(message: ContractCodeHistoryEntry, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ContractCodeHistoryEntry; - fromPartial(object: DeepPartial): ContractCodeHistoryEntry; -}; -export declare const AbsoluteTxPosition: { - encode(message: AbsoluteTxPosition, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): AbsoluteTxPosition; - fromPartial(object: DeepPartial): AbsoluteTxPosition; -}; -export declare const Model: { - encode(message: Model, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Model; - fromPartial(object: DeepPartial): Model; -}; diff --git a/packages/codegen/dist/gogoproto/bundle.d.ts b/packages/codegen/dist/gogoproto/bundle.d.ts deleted file mode 100644 index 55791e68..00000000 --- a/packages/codegen/dist/gogoproto/bundle.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const gogoproto: {}; diff --git a/packages/codegen/dist/gogoproto/gogo.d.ts b/packages/codegen/dist/gogoproto/gogo.d.ts deleted file mode 100644 index cb0ff5c3..00000000 --- a/packages/codegen/dist/gogoproto/gogo.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/codegen/dist/google/api/annotations.d.ts b/packages/codegen/dist/google/api/annotations.d.ts deleted file mode 100644 index cb0ff5c3..00000000 --- a/packages/codegen/dist/google/api/annotations.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/codegen/dist/google/api/http.d.ts b/packages/codegen/dist/google/api/http.d.ts deleted file mode 100644 index 7c8bfc6c..00000000 --- a/packages/codegen/dist/google/api/http.d.ts +++ /dev/null @@ -1,666 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../helpers"; -/** - * 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. - */ -export interface Http { - /** - * A list of HTTP configuration rules that apply to individual API methods. - * - * **NOTE:** All service configuration rules follow "last one wins" order. - */ - rules: HttpRule[]; - /** - * 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. - */ - fullyDecodeReservedExpansion: boolean; -} -/** - * 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. - */ -export interface HttpSDKType { - rules: HttpRuleSDKType[]; - fully_decode_reserved_expansion: boolean; -} -/** - * # 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. - */ -export interface HttpRule { - /** - * Selects a method to which this rule applies. - * - * Refer to [selector][google.api.DocumentationRule.selector] for syntax details. - */ - selector: string; - /** - * Maps to HTTP GET. Used for listing and getting information about - * resources. - */ - get?: string; - /** Maps to HTTP PUT. Used for replacing a resource. */ - put?: string; - /** Maps to HTTP POST. Used for creating a resource or performing an action. */ - post?: string; - /** Maps to HTTP DELETE. Used for deleting a resource. */ - delete?: string; - /** Maps to HTTP PATCH. Used for updating a resource. */ - patch?: string; - /** - * 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. - */ - custom?: CustomHttpPattern; - /** - * 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. - */ - body: string; - /** - * 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. - */ - responseBody: string; - /** - * 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). - */ - additionalBindings: HttpRule[]; -} -/** - * # 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. - */ -export interface HttpRuleSDKType { - selector: string; - get?: string; - put?: string; - post?: string; - delete?: string; - patch?: string; - custom?: CustomHttpPatternSDKType; - body: string; - response_body: string; - additional_bindings: HttpRuleSDKType[]; -} -/** A custom pattern is used for defining custom HTTP verb. */ -export interface CustomHttpPattern { - /** The name of this custom HTTP verb. */ - kind: string; - /** The path matched by this custom verb. */ - path: string; -} -/** A custom pattern is used for defining custom HTTP verb. */ -export interface CustomHttpPatternSDKType { - kind: string; - path: string; -} -export declare const Http: { - encode(message: Http, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Http; - fromPartial(object: DeepPartial): Http; -}; -export declare const HttpRule: { - encode(message: HttpRule, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): HttpRule; - fromPartial(object: DeepPartial): HttpRule; -}; -export declare const CustomHttpPattern: { - encode(message: CustomHttpPattern, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): CustomHttpPattern; - fromPartial(object: DeepPartial): CustomHttpPattern; -}; diff --git a/packages/codegen/dist/google/bundle.d.ts b/packages/codegen/dist/google/bundle.d.ts deleted file mode 100644 index a38c0e4e..00000000 --- a/packages/codegen/dist/google/bundle.d.ts +++ /dev/null @@ -1,1466 +0,0 @@ -/// -import * as _104 from "./api/http"; -import * as _105 from "./protobuf/any"; -import * as _106 from "./protobuf/descriptor"; -import * as _107 from "./protobuf/duration"; -import * as _108 from "./protobuf/empty"; -import * as _109 from "./protobuf/timestamp"; -export declare namespace google { - const api: { - Http: { - encode(message: _104.Http, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _104.Http; - fromPartial(object: { - rules?: { - selector?: string; - get?: string; - put?: string; - post?: string; - delete?: string; - patch?: string; - custom?: { - kind?: string; - path?: string; - }; - body?: string; - responseBody?: string; - additionalBindings?: any[]; - }[]; - fullyDecodeReservedExpansion?: boolean; - }): _104.Http; - }; - HttpRule: { - encode(message: _104.HttpRule, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _104.HttpRule; - fromPartial(object: { - selector?: string; - get?: string; - put?: string; - post?: string; - delete?: string; - patch?: string; - custom?: { - kind?: string; - path?: string; - }; - body?: string; - responseBody?: string; - additionalBindings?: any[]; - }): _104.HttpRule; - }; - CustomHttpPattern: { - encode(message: _104.CustomHttpPattern, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _104.CustomHttpPattern; - fromPartial(object: { - kind?: string; - path?: string; - }): _104.CustomHttpPattern; - }; - }; - const protobuf: { - Timestamp: { - encode(message: _109.Timestamp, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _109.Timestamp; - fromPartial(object: { - seconds?: string | number | import("long").Long; - nanos?: number; - }): _109.Timestamp; - }; - Empty: { - encode(_: _108.Empty, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _108.Empty; - fromPartial(_: {}): _108.Empty; - }; - Duration: { - encode(message: _107.Duration, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _107.Duration; - fromPartial(object: { - seconds?: string | number | import("long").Long; - nanos?: number; - }): _107.Duration; - }; - fieldDescriptorProto_TypeFromJSON(object: any): _106.FieldDescriptorProto_Type; - fieldDescriptorProto_TypeToJSON(object: _106.FieldDescriptorProto_Type): string; - fieldDescriptorProto_LabelFromJSON(object: any): _106.FieldDescriptorProto_Label; - fieldDescriptorProto_LabelToJSON(object: _106.FieldDescriptorProto_Label): string; - fileOptions_OptimizeModeFromJSON(object: any): _106.FileOptions_OptimizeMode; - fileOptions_OptimizeModeToJSON(object: _106.FileOptions_OptimizeMode): string; - fieldOptions_CTypeFromJSON(object: any): _106.FieldOptions_CType; - fieldOptions_CTypeToJSON(object: _106.FieldOptions_CType): string; - fieldOptions_JSTypeFromJSON(object: any): _106.FieldOptions_JSType; - fieldOptions_JSTypeToJSON(object: _106.FieldOptions_JSType): string; - methodOptions_IdempotencyLevelFromJSON(object: any): _106.MethodOptions_IdempotencyLevel; - methodOptions_IdempotencyLevelToJSON(object: _106.MethodOptions_IdempotencyLevel): string; - FieldDescriptorProto_Type: typeof _106.FieldDescriptorProto_Type; - FieldDescriptorProto_TypeSDKType: typeof _106.FieldDescriptorProto_Type; - FieldDescriptorProto_Label: typeof _106.FieldDescriptorProto_Label; - FieldDescriptorProto_LabelSDKType: typeof _106.FieldDescriptorProto_Label; - FileOptions_OptimizeMode: typeof _106.FileOptions_OptimizeMode; - FileOptions_OptimizeModeSDKType: typeof _106.FileOptions_OptimizeMode; - FieldOptions_CType: typeof _106.FieldOptions_CType; - FieldOptions_CTypeSDKType: typeof _106.FieldOptions_CType; - FieldOptions_JSType: typeof _106.FieldOptions_JSType; - FieldOptions_JSTypeSDKType: typeof _106.FieldOptions_JSType; - MethodOptions_IdempotencyLevel: typeof _106.MethodOptions_IdempotencyLevel; - MethodOptions_IdempotencyLevelSDKType: typeof _106.MethodOptions_IdempotencyLevel; - FileDescriptorSet: { - encode(message: _106.FileDescriptorSet, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.FileDescriptorSet; - fromPartial(object: { - file?: { - name?: string; - package?: string; - dependency?: string[]; - publicDependency?: number[]; - weakDependency?: number[]; - messageType?: { - name?: string; - field?: { - name?: string; - number?: number; - label?: _106.FieldDescriptorProto_Label; - type?: _106.FieldDescriptorProto_Type; - typeName?: string; - extendee?: string; - defaultValue?: string; - oneofIndex?: number; - jsonName?: string; - options?: { - ctype?: _106.FieldOptions_CType; - packed?: boolean; - jstype?: _106.FieldOptions_JSType; - lazy?: boolean; - deprecated?: boolean; - weak?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }[]; - extension?: { - name?: string; - number?: number; - label?: _106.FieldDescriptorProto_Label; - type?: _106.FieldDescriptorProto_Type; - typeName?: string; - extendee?: string; - defaultValue?: string; - oneofIndex?: number; - jsonName?: string; - options?: { - ctype?: _106.FieldOptions_CType; - packed?: boolean; - jstype?: _106.FieldOptions_JSType; - lazy?: boolean; - deprecated?: boolean; - weak?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }[]; - nestedType?: any[]; - enumType?: { - name?: string; - value?: { - name?: string; - number?: number; - options?: { - deprecated?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }[]; - options?: { - allowAlias?: boolean; - deprecated?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - reservedRange?: { - start?: number; - end?: number; - }[]; - reservedName?: string[]; - }[]; - extensionRange?: { - start?: number; - end?: number; - options?: { - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }[]; - oneofDecl?: { - name?: string; - options?: { - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }[]; - options?: { - messageSetWireFormat?: boolean; - noStandardDescriptorAccessor?: boolean; - deprecated?: boolean; - mapEntry?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - reservedRange?: { - start?: number; - end?: number; - }[]; - reservedName?: string[]; - }[]; - enumType?: { - name?: string; - value?: { - name?: string; - number?: number; - options?: { - deprecated?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }[]; - options?: { - allowAlias?: boolean; - deprecated?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - reservedRange?: { - start?: number; - end?: number; - }[]; - reservedName?: string[]; - }[]; - service?: { - name?: string; - method?: { - name?: string; - inputType?: string; - outputType?: string; - options?: { - deprecated?: boolean; - idempotencyLevel?: _106.MethodOptions_IdempotencyLevel; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - clientStreaming?: boolean; - serverStreaming?: boolean; - }[]; - options?: { - deprecated?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }[]; - extension?: { - name?: string; - number?: number; - label?: _106.FieldDescriptorProto_Label; - type?: _106.FieldDescriptorProto_Type; - typeName?: string; - extendee?: string; - defaultValue?: string; - oneofIndex?: number; - jsonName?: string; - options?: { - ctype?: _106.FieldOptions_CType; - packed?: boolean; - jstype?: _106.FieldOptions_JSType; - lazy?: boolean; - deprecated?: boolean; - weak?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }[]; - options?: { - javaPackage?: string; - javaOuterClassname?: string; - javaMultipleFiles?: boolean; - javaGenerateEqualsAndHash?: boolean; - javaStringCheckUtf8?: boolean; - optimizeFor?: _106.FileOptions_OptimizeMode; - goPackage?: string; - ccGenericServices?: boolean; - javaGenericServices?: boolean; - pyGenericServices?: boolean; - phpGenericServices?: boolean; - deprecated?: boolean; - ccEnableArenas?: boolean; - objcClassPrefix?: string; - csharpNamespace?: string; - swiftPrefix?: string; - phpClassPrefix?: string; - phpNamespace?: string; - phpMetadataNamespace?: string; - rubyPackage?: string; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - sourceCodeInfo?: { - location?: { - path?: number[]; - span?: number[]; - leadingComments?: string; - trailingComments?: string; - leadingDetachedComments?: string[]; - }[]; - }; - syntax?: string; - }[]; - }): _106.FileDescriptorSet; - }; - FileDescriptorProto: { - encode(message: _106.FileDescriptorProto, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.FileDescriptorProto; - fromPartial(object: { - name?: string; - package?: string; - dependency?: string[]; - publicDependency?: number[]; - weakDependency?: number[]; - messageType?: { - name?: string; - field?: { - name?: string; - number?: number; - label?: _106.FieldDescriptorProto_Label; - type?: _106.FieldDescriptorProto_Type; - typeName?: string; - extendee?: string; - defaultValue?: string; - oneofIndex?: number; - jsonName?: string; - options?: { - ctype?: _106.FieldOptions_CType; - packed?: boolean; - jstype?: _106.FieldOptions_JSType; - lazy?: boolean; - deprecated?: boolean; - weak?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }[]; - extension?: { - name?: string; - number?: number; - label?: _106.FieldDescriptorProto_Label; - type?: _106.FieldDescriptorProto_Type; - typeName?: string; - extendee?: string; - defaultValue?: string; - oneofIndex?: number; - jsonName?: string; - options?: { - ctype?: _106.FieldOptions_CType; - packed?: boolean; - jstype?: _106.FieldOptions_JSType; - lazy?: boolean; - deprecated?: boolean; - weak?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }[]; - nestedType?: any[]; - enumType?: { - name?: string; - value?: { - name?: string; - number?: number; - options?: { - deprecated?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }[]; - options?: { - allowAlias?: boolean; - deprecated?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - reservedRange?: { - start?: number; - end?: number; - }[]; - reservedName?: string[]; - }[]; - extensionRange?: { - start?: number; - end?: number; - options?: { - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }[]; - oneofDecl?: { - name?: string; - options?: { - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }[]; - options?: { - messageSetWireFormat?: boolean; - noStandardDescriptorAccessor?: boolean; - deprecated?: boolean; - mapEntry?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - reservedRange?: { - start?: number; - end?: number; - }[]; - reservedName?: string[]; - }[]; - enumType?: { - name?: string; - value?: { - name?: string; - number?: number; - options?: { - deprecated?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }[]; - options?: { - allowAlias?: boolean; - deprecated?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - reservedRange?: { - start?: number; - end?: number; - }[]; - reservedName?: string[]; - }[]; - service?: { - name?: string; - method?: { - name?: string; - inputType?: string; - outputType?: string; - options?: { - deprecated?: boolean; - idempotencyLevel?: _106.MethodOptions_IdempotencyLevel; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - clientStreaming?: boolean; - serverStreaming?: boolean; - }[]; - options?: { - deprecated?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }[]; - extension?: { - name?: string; - number?: number; - label?: _106.FieldDescriptorProto_Label; - type?: _106.FieldDescriptorProto_Type; - typeName?: string; - extendee?: string; - defaultValue?: string; - oneofIndex?: number; - jsonName?: string; - options?: { - ctype?: _106.FieldOptions_CType; - packed?: boolean; - jstype?: _106.FieldOptions_JSType; - lazy?: boolean; - deprecated?: boolean; - weak?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }[]; - options?: { - javaPackage?: string; - javaOuterClassname?: string; - javaMultipleFiles?: boolean; - javaGenerateEqualsAndHash?: boolean; - javaStringCheckUtf8?: boolean; - optimizeFor?: _106.FileOptions_OptimizeMode; - goPackage?: string; - ccGenericServices?: boolean; - javaGenericServices?: boolean; - pyGenericServices?: boolean; - phpGenericServices?: boolean; - deprecated?: boolean; - ccEnableArenas?: boolean; - objcClassPrefix?: string; - csharpNamespace?: string; - swiftPrefix?: string; - phpClassPrefix?: string; - phpNamespace?: string; - phpMetadataNamespace?: string; - rubyPackage?: string; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - sourceCodeInfo?: { - location?: { - path?: number[]; - span?: number[]; - leadingComments?: string; - trailingComments?: string; - leadingDetachedComments?: string[]; - }[]; - }; - syntax?: string; - }): _106.FileDescriptorProto; - }; - DescriptorProto: { - encode(message: _106.DescriptorProto, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.DescriptorProto; - fromPartial(object: { - name?: string; - field?: { - name?: string; - number?: number; - label?: _106.FieldDescriptorProto_Label; - type?: _106.FieldDescriptorProto_Type; - typeName?: string; - extendee?: string; - defaultValue?: string; - oneofIndex?: number; - jsonName?: string; - options?: { - ctype?: _106.FieldOptions_CType; - packed?: boolean; - jstype?: _106.FieldOptions_JSType; - lazy?: boolean; - deprecated?: boolean; - weak?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }[]; - extension?: { - name?: string; - number?: number; - label?: _106.FieldDescriptorProto_Label; - type?: _106.FieldDescriptorProto_Type; - typeName?: string; - extendee?: string; - defaultValue?: string; - oneofIndex?: number; - jsonName?: string; - options?: { - ctype?: _106.FieldOptions_CType; - packed?: boolean; - jstype?: _106.FieldOptions_JSType; - lazy?: boolean; - deprecated?: boolean; - weak?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }[]; - nestedType?: any[]; - enumType?: { - name?: string; - value?: { - name?: string; - number?: number; - options?: { - deprecated?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }[]; - options?: { - allowAlias?: boolean; - deprecated?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - reservedRange?: { - start?: number; - end?: number; - }[]; - reservedName?: string[]; - }[]; - extensionRange?: { - start?: number; - end?: number; - options?: { - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }[]; - oneofDecl?: { - name?: string; - options?: { - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }[]; - options?: { - messageSetWireFormat?: boolean; - noStandardDescriptorAccessor?: boolean; - deprecated?: boolean; - mapEntry?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - reservedRange?: { - start?: number; - end?: number; - }[]; - reservedName?: string[]; - }): _106.DescriptorProto; - }; - DescriptorProto_ExtensionRange: { - encode(message: _106.DescriptorProto_ExtensionRange, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.DescriptorProto_ExtensionRange; - fromPartial(object: { - start?: number; - end?: number; - options?: { - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }): _106.DescriptorProto_ExtensionRange; - }; - DescriptorProto_ReservedRange: { - encode(message: _106.DescriptorProto_ReservedRange, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.DescriptorProto_ReservedRange; - fromPartial(object: { - start?: number; - end?: number; - }): _106.DescriptorProto_ReservedRange; - }; - ExtensionRangeOptions: { - encode(message: _106.ExtensionRangeOptions, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.ExtensionRangeOptions; - fromPartial(object: { - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }): _106.ExtensionRangeOptions; - }; - FieldDescriptorProto: { - encode(message: _106.FieldDescriptorProto, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.FieldDescriptorProto; - fromPartial(object: { - name?: string; - number?: number; - label?: _106.FieldDescriptorProto_Label; - type?: _106.FieldDescriptorProto_Type; - typeName?: string; - extendee?: string; - defaultValue?: string; - oneofIndex?: number; - jsonName?: string; - options?: { - ctype?: _106.FieldOptions_CType; - packed?: boolean; - jstype?: _106.FieldOptions_JSType; - lazy?: boolean; - deprecated?: boolean; - weak?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }): _106.FieldDescriptorProto; - }; - OneofDescriptorProto: { - encode(message: _106.OneofDescriptorProto, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.OneofDescriptorProto; - fromPartial(object: { - name?: string; - options?: { - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }): _106.OneofDescriptorProto; - }; - EnumDescriptorProto: { - encode(message: _106.EnumDescriptorProto, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.EnumDescriptorProto; - fromPartial(object: { - name?: string; - value?: { - name?: string; - number?: number; - options?: { - deprecated?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }[]; - options?: { - allowAlias?: boolean; - deprecated?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - reservedRange?: { - start?: number; - end?: number; - }[]; - reservedName?: string[]; - }): _106.EnumDescriptorProto; - }; - EnumDescriptorProto_EnumReservedRange: { - encode(message: _106.EnumDescriptorProto_EnumReservedRange, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.EnumDescriptorProto_EnumReservedRange; - fromPartial(object: { - start?: number; - end?: number; - }): _106.EnumDescriptorProto_EnumReservedRange; - }; - EnumValueDescriptorProto: { - encode(message: _106.EnumValueDescriptorProto, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.EnumValueDescriptorProto; - fromPartial(object: { - name?: string; - number?: number; - options?: { - deprecated?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }): _106.EnumValueDescriptorProto; - }; - ServiceDescriptorProto: { - encode(message: _106.ServiceDescriptorProto, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.ServiceDescriptorProto; - fromPartial(object: { - name?: string; - method?: { - name?: string; - inputType?: string; - outputType?: string; - options?: { - deprecated?: boolean; - idempotencyLevel?: _106.MethodOptions_IdempotencyLevel; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - clientStreaming?: boolean; - serverStreaming?: boolean; - }[]; - options?: { - deprecated?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - }): _106.ServiceDescriptorProto; - }; - MethodDescriptorProto: { - encode(message: _106.MethodDescriptorProto, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.MethodDescriptorProto; - fromPartial(object: { - name?: string; - inputType?: string; - outputType?: string; - options?: { - deprecated?: boolean; - idempotencyLevel?: _106.MethodOptions_IdempotencyLevel; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }; - clientStreaming?: boolean; - serverStreaming?: boolean; - }): _106.MethodDescriptorProto; - }; - FileOptions: { - encode(message: _106.FileOptions, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.FileOptions; - fromPartial(object: { - javaPackage?: string; - javaOuterClassname?: string; - javaMultipleFiles?: boolean; - javaGenerateEqualsAndHash?: boolean; - javaStringCheckUtf8?: boolean; - optimizeFor?: _106.FileOptions_OptimizeMode; - goPackage?: string; - ccGenericServices?: boolean; - javaGenericServices?: boolean; - pyGenericServices?: boolean; - phpGenericServices?: boolean; - deprecated?: boolean; - ccEnableArenas?: boolean; - objcClassPrefix?: string; - csharpNamespace?: string; - swiftPrefix?: string; - phpClassPrefix?: string; - phpNamespace?: string; - phpMetadataNamespace?: string; - rubyPackage?: string; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }): _106.FileOptions; - }; - MessageOptions: { - encode(message: _106.MessageOptions, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.MessageOptions; - fromPartial(object: { - messageSetWireFormat?: boolean; - noStandardDescriptorAccessor?: boolean; - deprecated?: boolean; - mapEntry?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }): _106.MessageOptions; - }; - FieldOptions: { - encode(message: _106.FieldOptions, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.FieldOptions; - fromPartial(object: { - ctype?: _106.FieldOptions_CType; - packed?: boolean; - jstype?: _106.FieldOptions_JSType; - lazy?: boolean; - deprecated?: boolean; - weak?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }): _106.FieldOptions; - }; - OneofOptions: { - encode(message: _106.OneofOptions, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.OneofOptions; - fromPartial(object: { - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }): _106.OneofOptions; - }; - EnumOptions: { - encode(message: _106.EnumOptions, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.EnumOptions; - fromPartial(object: { - allowAlias?: boolean; - deprecated?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }): _106.EnumOptions; - }; - EnumValueOptions: { - encode(message: _106.EnumValueOptions, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.EnumValueOptions; - fromPartial(object: { - deprecated?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }): _106.EnumValueOptions; - }; - ServiceOptions: { - encode(message: _106.ServiceOptions, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.ServiceOptions; - fromPartial(object: { - deprecated?: boolean; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }): _106.ServiceOptions; - }; - MethodOptions: { - encode(message: _106.MethodOptions, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.MethodOptions; - fromPartial(object: { - deprecated?: boolean; - idempotencyLevel?: _106.MethodOptions_IdempotencyLevel; - uninterpretedOption?: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }[]; - }): _106.MethodOptions; - }; - UninterpretedOption: { - encode(message: _106.UninterpretedOption, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.UninterpretedOption; - fromPartial(object: { - name?: { - namePart?: string; - isExtension?: boolean; - }[]; - identifierValue?: string; - positiveIntValue?: string | number | import("long").Long; - negativeIntValue?: string | number | import("long").Long; - doubleValue?: number; - stringValue?: Uint8Array; - aggregateValue?: string; - }): _106.UninterpretedOption; - }; - UninterpretedOption_NamePart: { - encode(message: _106.UninterpretedOption_NamePart, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.UninterpretedOption_NamePart; - fromPartial(object: { - namePart?: string; - isExtension?: boolean; - }): _106.UninterpretedOption_NamePart; - }; - SourceCodeInfo: { - encode(message: _106.SourceCodeInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.SourceCodeInfo; - fromPartial(object: { - location?: { - path?: number[]; - span?: number[]; - leadingComments?: string; - trailingComments?: string; - leadingDetachedComments?: string[]; - }[]; - }): _106.SourceCodeInfo; - }; - SourceCodeInfo_Location: { - encode(message: _106.SourceCodeInfo_Location, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.SourceCodeInfo_Location; - fromPartial(object: { - path?: number[]; - span?: number[]; - leadingComments?: string; - trailingComments?: string; - leadingDetachedComments?: string[]; - }): _106.SourceCodeInfo_Location; - }; - GeneratedCodeInfo: { - encode(message: _106.GeneratedCodeInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.GeneratedCodeInfo; - fromPartial(object: { - annotation?: { - path?: number[]; - sourceFile?: string; - begin?: number; - end?: number; - }[]; - }): _106.GeneratedCodeInfo; - }; - GeneratedCodeInfo_Annotation: { - encode(message: _106.GeneratedCodeInfo_Annotation, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _106.GeneratedCodeInfo_Annotation; - fromPartial(object: { - path?: number[]; - sourceFile?: string; - begin?: number; - end?: number; - }): _106.GeneratedCodeInfo_Annotation; - }; - Any: { - encode(message: _105.Any, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _105.Any; - fromPartial(object: { - typeUrl?: string; - value?: Uint8Array; - }): _105.Any; - }; - }; -} diff --git a/packages/codegen/dist/google/protobuf/any.d.ts b/packages/codegen/dist/google/protobuf/any.d.ts deleted file mode 100644 index 122b1c66..00000000 --- a/packages/codegen/dist/google/protobuf/any.d.ts +++ /dev/null @@ -1,207 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../helpers"; -/** - * `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); - * } - * - * 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 := ptypes.MarshalAny(foo) - * ... - * foo := &pb.Foo{} - * if err := ptypes.UnmarshalAny(any, 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" - * } - */ -export interface 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. - * - * Schemes other than `http`, `https` (or the empty scheme) might be - * used with implementation specific semantics. - */ - typeUrl: string; - /** Must be a valid serialized protocol buffer of the above specified type. */ - value: Uint8Array; -} -/** - * `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); - * } - * - * 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 := ptypes.MarshalAny(foo) - * ... - * foo := &pb.Foo{} - * if err := ptypes.UnmarshalAny(any, 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" - * } - */ -export interface AnySDKType { - type_url: string; - value: Uint8Array; -} -export declare const Any: { - encode(message: Any, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Any; - fromPartial(object: DeepPartial): Any; -}; diff --git a/packages/codegen/dist/google/protobuf/descriptor.d.ts b/packages/codegen/dist/google/protobuf/descriptor.d.ts deleted file mode 100644 index 32ae6277..00000000 --- a/packages/codegen/dist/google/protobuf/descriptor.d.ts +++ /dev/null @@ -1,1172 +0,0 @@ -/// -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../helpers"; -export declare enum FieldDescriptorProto_Type { - /** - * TYPE_DOUBLE - 0 is reserved for errors. - * Order is weird for historical reasons. - */ - TYPE_DOUBLE = 1, - TYPE_FLOAT = 2, - /** - * TYPE_INT64 - Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if - * negative values are likely. - */ - TYPE_INT64 = 3, - TYPE_UINT64 = 4, - /** - * TYPE_INT32 - 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, - /** - * TYPE_GROUP - Tag-delimited aggregate. - * Group type is deprecated and not supported in proto3. However, Proto3 - * implementations should still be able to parse the group wire format and - * treat group fields as unknown fields. - */ - TYPE_GROUP = 10, - TYPE_MESSAGE = 11, - /** TYPE_BYTES - New in version 2. */ - TYPE_BYTES = 12, - TYPE_UINT32 = 13, - TYPE_ENUM = 14, - TYPE_SFIXED32 = 15, - TYPE_SFIXED64 = 16, - /** TYPE_SINT32 - Uses ZigZag encoding. */ - TYPE_SINT32 = 17, - /** TYPE_SINT64 - Uses ZigZag encoding. */ - TYPE_SINT64 = 18, - UNRECOGNIZED = -1 -} -export declare const FieldDescriptorProto_TypeSDKType: typeof FieldDescriptorProto_Type; -export declare function fieldDescriptorProto_TypeFromJSON(object: any): FieldDescriptorProto_Type; -export declare function fieldDescriptorProto_TypeToJSON(object: FieldDescriptorProto_Type): string; -export declare enum FieldDescriptorProto_Label { - /** LABEL_OPTIONAL - 0 is reserved for errors */ - LABEL_OPTIONAL = 1, - LABEL_REQUIRED = 2, - LABEL_REPEATED = 3, - UNRECOGNIZED = -1 -} -export declare const FieldDescriptorProto_LabelSDKType: typeof FieldDescriptorProto_Label; -export declare function fieldDescriptorProto_LabelFromJSON(object: any): FieldDescriptorProto_Label; -export declare function fieldDescriptorProto_LabelToJSON(object: FieldDescriptorProto_Label): string; -/** Generated classes can be optimized for speed or code size. */ -export declare enum FileOptions_OptimizeMode { - /** - * SPEED - Generate complete code for parsing, serialization, - * etc. - */ - SPEED = 1, - /** CODE_SIZE - Use ReflectionOps to implement these methods. */ - CODE_SIZE = 2, - /** LITE_RUNTIME - Generate code using MessageLite and the lite runtime. */ - LITE_RUNTIME = 3, - UNRECOGNIZED = -1 -} -export declare const FileOptions_OptimizeModeSDKType: typeof FileOptions_OptimizeMode; -export declare function fileOptions_OptimizeModeFromJSON(object: any): FileOptions_OptimizeMode; -export declare function fileOptions_OptimizeModeToJSON(object: FileOptions_OptimizeMode): string; -export declare enum FieldOptions_CType { - /** STRING - Default mode. */ - STRING = 0, - CORD = 1, - STRING_PIECE = 2, - UNRECOGNIZED = -1 -} -export declare const FieldOptions_CTypeSDKType: typeof FieldOptions_CType; -export declare function fieldOptions_CTypeFromJSON(object: any): FieldOptions_CType; -export declare function fieldOptions_CTypeToJSON(object: FieldOptions_CType): string; -export declare enum FieldOptions_JSType { - /** JS_NORMAL - Use the default type. */ - JS_NORMAL = 0, - /** JS_STRING - Use JavaScript strings. */ - JS_STRING = 1, - /** JS_NUMBER - Use JavaScript numbers. */ - JS_NUMBER = 2, - UNRECOGNIZED = -1 -} -export declare const FieldOptions_JSTypeSDKType: typeof FieldOptions_JSType; -export declare function fieldOptions_JSTypeFromJSON(object: any): FieldOptions_JSType; -export declare function fieldOptions_JSTypeToJSON(object: FieldOptions_JSType): string; -/** - * 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. - */ -export declare enum MethodOptions_IdempotencyLevel { - IDEMPOTENCY_UNKNOWN = 0, - /** NO_SIDE_EFFECTS - implies idempotent */ - NO_SIDE_EFFECTS = 1, - /** IDEMPOTENT - idempotent, but may have side effects */ - IDEMPOTENT = 2, - UNRECOGNIZED = -1 -} -export declare const MethodOptions_IdempotencyLevelSDKType: typeof MethodOptions_IdempotencyLevel; -export declare function methodOptions_IdempotencyLevelFromJSON(object: any): MethodOptions_IdempotencyLevel; -export declare function methodOptions_IdempotencyLevelToJSON(object: MethodOptions_IdempotencyLevel): string; -/** - * The protocol compiler can output a FileDescriptorSet containing the .proto - * files it parses. - */ -export interface FileDescriptorSet { - file: FileDescriptorProto[]; -} -/** - * The protocol compiler can output a FileDescriptorSet containing the .proto - * files it parses. - */ -export interface FileDescriptorSetSDKType { - file: FileDescriptorProtoSDKType[]; -} -/** Describes a complete .proto file. */ -export interface FileDescriptorProto { - /** file name, relative to root of source tree */ - name: string; - package: string; - /** Names of files imported by this file. */ - dependency: string[]; - /** Indexes of the public imported files in the dependency list above. */ - publicDependency: number[]; - /** - * Indexes of the weak imported files in the dependency list. - * For Google-internal migration only. Do not use. - */ - weakDependency: number[]; - /** All top-level definitions in this file. */ - messageType: DescriptorProto[]; - enumType: EnumDescriptorProto[]; - service: ServiceDescriptorProto[]; - extension: FieldDescriptorProto[]; - options?: FileOptions; - /** - * 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. - */ - sourceCodeInfo?: SourceCodeInfo; - /** - * The syntax of the proto file. - * The supported values are "proto2" and "proto3". - */ - syntax: string; -} -/** Describes a complete .proto file. */ -export interface FileDescriptorProtoSDKType { - name: string; - package: string; - dependency: string[]; - public_dependency: number[]; - weak_dependency: number[]; - message_type: DescriptorProtoSDKType[]; - enum_type: EnumDescriptorProtoSDKType[]; - service: ServiceDescriptorProtoSDKType[]; - extension: FieldDescriptorProtoSDKType[]; - options?: FileOptionsSDKType; - source_code_info?: SourceCodeInfoSDKType; - syntax: string; -} -/** Describes a message type. */ -export interface DescriptorProto { - name: string; - field: FieldDescriptorProto[]; - extension: FieldDescriptorProto[]; - nestedType: DescriptorProto[]; - enumType: EnumDescriptorProto[]; - extensionRange: DescriptorProto_ExtensionRange[]; - oneofDecl: OneofDescriptorProto[]; - options?: MessageOptions; - reservedRange: DescriptorProto_ReservedRange[]; - /** - * Reserved field names, which may not be used by fields in the same message. - * A given name may only be reserved once. - */ - reservedName: string[]; -} -/** Describes a message type. */ -export interface DescriptorProtoSDKType { - name: string; - field: FieldDescriptorProtoSDKType[]; - extension: FieldDescriptorProtoSDKType[]; - nested_type: DescriptorProtoSDKType[]; - enum_type: EnumDescriptorProtoSDKType[]; - extension_range: DescriptorProto_ExtensionRangeSDKType[]; - oneof_decl: OneofDescriptorProtoSDKType[]; - options?: MessageOptionsSDKType; - reserved_range: DescriptorProto_ReservedRangeSDKType[]; - reserved_name: string[]; -} -export interface DescriptorProto_ExtensionRange { - /** Inclusive. */ - start: number; - /** Exclusive. */ - end: number; - options?: ExtensionRangeOptions; -} -export interface DescriptorProto_ExtensionRangeSDKType { - start: number; - end: number; - options?: ExtensionRangeOptionsSDKType; -} -/** - * 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. - */ -export interface DescriptorProto_ReservedRange { - /** Inclusive. */ - start: number; - /** Exclusive. */ - end: number; -} -/** - * 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. - */ -export interface DescriptorProto_ReservedRangeSDKType { - start: number; - end: number; -} -export interface ExtensionRangeOptions { - /** The parser stores options it doesn't recognize here. See above. */ - uninterpretedOption: UninterpretedOption[]; -} -export interface ExtensionRangeOptionsSDKType { - uninterpreted_option: UninterpretedOptionSDKType[]; -} -/** Describes a field within a message. */ -export interface FieldDescriptorProto { - name: string; - number: number; - label: FieldDescriptorProto_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. - */ - type: FieldDescriptorProto_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). - */ - typeName: string; - /** - * For extensions, this is the name of the type being extended. It is - * resolved in the same manner as type_name. - */ - extendee: string; - /** - * 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. - * TODO(kenton): Base-64 encode? - */ - defaultValue: string; - /** - * If set, gives the index of a oneof in the containing type's oneof_decl - * list. This field is a member of that oneof. - */ - oneofIndex: number; - /** - * 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. - */ - jsonName: string; - options?: FieldOptions; -} -/** Describes a field within a message. */ -export interface FieldDescriptorProtoSDKType { - name: string; - number: number; - label: FieldDescriptorProto_Label; - type: FieldDescriptorProto_Type; - type_name: string; - extendee: string; - default_value: string; - oneof_index: number; - json_name: string; - options?: FieldOptionsSDKType; -} -/** Describes a oneof. */ -export interface OneofDescriptorProto { - name: string; - options?: OneofOptions; -} -/** Describes a oneof. */ -export interface OneofDescriptorProtoSDKType { - name: string; - options?: OneofOptionsSDKType; -} -/** Describes an enum type. */ -export interface EnumDescriptorProto { - name: string; - value: EnumValueDescriptorProto[]; - options?: EnumOptions; - /** - * 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. - */ - reservedRange: EnumDescriptorProto_EnumReservedRange[]; - /** - * Reserved enum value names, which may not be reused. A given name may only - * be reserved once. - */ - reservedName: string[]; -} -/** Describes an enum type. */ -export interface EnumDescriptorProtoSDKType { - name: string; - value: EnumValueDescriptorProtoSDKType[]; - options?: EnumOptionsSDKType; - reserved_range: EnumDescriptorProto_EnumReservedRangeSDKType[]; - reserved_name: string[]; -} -/** - * 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. - */ -export interface EnumDescriptorProto_EnumReservedRange { - /** Inclusive. */ - start: number; - /** Inclusive. */ - end: number; -} -/** - * 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. - */ -export interface EnumDescriptorProto_EnumReservedRangeSDKType { - start: number; - end: number; -} -/** Describes a value within an enum. */ -export interface EnumValueDescriptorProto { - name: string; - number: number; - options?: EnumValueOptions; -} -/** Describes a value within an enum. */ -export interface EnumValueDescriptorProtoSDKType { - name: string; - number: number; - options?: EnumValueOptionsSDKType; -} -/** Describes a service. */ -export interface ServiceDescriptorProto { - name: string; - method: MethodDescriptorProto[]; - options?: ServiceOptions; -} -/** Describes a service. */ -export interface ServiceDescriptorProtoSDKType { - name: string; - method: MethodDescriptorProtoSDKType[]; - options?: ServiceOptionsSDKType; -} -/** Describes a method of a service. */ -export interface MethodDescriptorProto { - name: string; - /** - * Input and output type names. These are resolved in the same way as - * FieldDescriptorProto.type_name, but must refer to a message type. - */ - inputType: string; - outputType: string; - options?: MethodOptions; - /** Identifies if client streams multiple client messages */ - clientStreaming: boolean; - /** Identifies if server streams multiple server messages */ - serverStreaming: boolean; -} -/** Describes a method of a service. */ -export interface MethodDescriptorProtoSDKType { - name: string; - input_type: string; - output_type: string; - options?: MethodOptionsSDKType; - client_streaming: boolean; - server_streaming: boolean; -} -export interface 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. - */ - javaPackage: string; - /** - * If set, all the classes from the .proto file are wrapped in a single - * outer class with the given name. This applies to both Proto1 - * (equivalent to the old "--one_java_file" option) and Proto2 (where - * a .proto always translates to a single class, but you may want to - * explicitly choose the class name). - */ - javaOuterClassname: string; - /** - * If set true, 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 outer class - * named by java_outer_classname. However, the outer class will still be - * generated to contain the file's getDescriptor() method as well as any - * top-level extensions defined in the file. - */ - javaMultipleFiles: boolean; - /** This option does nothing. */ - /** @deprecated */ - javaGenerateEqualsAndHash: boolean; - /** - * If set true, then the Java2 code generator will generate code that - * throws an exception whenever an attempt is made to assign a non-UTF-8 - * byte sequence to a string field. - * Message reflection will do the same. - * However, an extension field still accepts non-UTF-8 byte sequences. - * This option has no effect on when used with the lite runtime. - */ - javaStringCheckUtf8: boolean; - optimizeFor: FileOptions_OptimizeMode; - /** - * 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. - */ - goPackage: string; - /** - * 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. - */ - ccGenericServices: boolean; - javaGenericServices: boolean; - pyGenericServices: boolean; - phpGenericServices: boolean; - /** - * 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. - */ - deprecated: boolean; - /** - * Enables the use of arenas for the proto messages in this file. This applies - * only to generated classes for C++. - */ - ccEnableArenas: boolean; - /** - * Sets the objective c class prefix which is prepended to all objective c - * generated classes from this .proto. There is no default. - */ - objcClassPrefix: string; - /** Namespace for generated classes; defaults to the package. */ - csharpNamespace: string; - /** - * 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. - */ - swiftPrefix: string; - /** - * Sets the php class prefix which is prepended to all php generated classes - * from this .proto. Default is empty. - */ - phpClassPrefix: string; - /** - * 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. - */ - phpNamespace: string; - /** - * 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. - */ - phpMetadataNamespace: string; - /** - * 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. - */ - rubyPackage: string; - /** - * The parser stores options it doesn't recognize here. - * See the documentation for the "Options" section above. - */ - uninterpretedOption: UninterpretedOption[]; -} -export interface FileOptionsSDKType { - java_package: string; - java_outer_classname: string; - java_multiple_files: boolean; - /** @deprecated */ - java_generate_equals_and_hash: boolean; - java_string_check_utf8: boolean; - optimize_for: FileOptions_OptimizeMode; - go_package: string; - cc_generic_services: boolean; - java_generic_services: boolean; - py_generic_services: boolean; - php_generic_services: boolean; - deprecated: boolean; - cc_enable_arenas: boolean; - objc_class_prefix: string; - csharp_namespace: string; - swift_prefix: string; - php_class_prefix: string; - php_namespace: string; - php_metadata_namespace: string; - ruby_package: string; - uninterpreted_option: UninterpretedOptionSDKType[]; -} -export interface 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. - */ - messageSetWireFormat: boolean; - /** - * 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". - */ - noStandardDescriptorAccessor: boolean; - /** - * 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. - */ - deprecated: boolean; - /** - * 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. - */ - mapEntry: boolean; - /** The parser stores options it doesn't recognize here. See above. */ - uninterpretedOption: UninterpretedOption[]; -} -export interface MessageOptionsSDKType { - message_set_wire_format: boolean; - no_standard_descriptor_accessor: boolean; - deprecated: boolean; - map_entry: boolean; - uninterpreted_option: UninterpretedOptionSDKType[]; -} -export interface FieldOptions { - /** - * 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 not yet implemented in the open source - * release -- sorry, we'll try to include it in a future version! - */ - ctype: FieldOptions_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. - */ - packed: boolean; - /** - * 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. - */ - jstype: FieldOptions_JSType; - /** - * 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 implementations may choose not to check required fields within - * a lazy sub-message. That is, calling IsInitialized() on the outer message - * may return true even if the inner message has missing required fields. - * This is necessary because otherwise the inner message would have to be - * parsed in order to perform the check, defeating the purpose of lazy - * parsing. An implementation which chooses not to check required fields - * must be consistent about it. That is, for any particular sub-message, the - * implementation must either *always* check its required fields, or *never* - * check its required fields, regardless of whether or not the message has - * been parsed. - */ - lazy: boolean; - /** - * 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. - */ - deprecated: boolean; - /** For Google-internal migration only. Do not use. */ - weak: boolean; - /** The parser stores options it doesn't recognize here. See above. */ - uninterpretedOption: UninterpretedOption[]; -} -export interface FieldOptionsSDKType { - ctype: FieldOptions_CType; - packed: boolean; - jstype: FieldOptions_JSType; - lazy: boolean; - deprecated: boolean; - weak: boolean; - uninterpreted_option: UninterpretedOptionSDKType[]; -} -export interface OneofOptions { - /** The parser stores options it doesn't recognize here. See above. */ - uninterpretedOption: UninterpretedOption[]; -} -export interface OneofOptionsSDKType { - uninterpreted_option: UninterpretedOptionSDKType[]; -} -export interface EnumOptions { - /** - * Set this option to true to allow mapping different tag names to the same - * value. - */ - allowAlias: boolean; - /** - * 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. - */ - deprecated: boolean; - /** The parser stores options it doesn't recognize here. See above. */ - uninterpretedOption: UninterpretedOption[]; -} -export interface EnumOptionsSDKType { - allow_alias: boolean; - deprecated: boolean; - uninterpreted_option: UninterpretedOptionSDKType[]; -} -export interface 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. - */ - deprecated: boolean; - /** The parser stores options it doesn't recognize here. See above. */ - uninterpretedOption: UninterpretedOption[]; -} -export interface EnumValueOptionsSDKType { - deprecated: boolean; - uninterpreted_option: UninterpretedOptionSDKType[]; -} -export interface 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. - */ - deprecated: boolean; - /** The parser stores options it doesn't recognize here. See above. */ - uninterpretedOption: UninterpretedOption[]; -} -export interface ServiceOptionsSDKType { - deprecated: boolean; - uninterpreted_option: UninterpretedOptionSDKType[]; -} -export interface 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. - */ - deprecated: boolean; - idempotencyLevel: MethodOptions_IdempotencyLevel; - /** The parser stores options it doesn't recognize here. See above. */ - uninterpretedOption: UninterpretedOption[]; -} -export interface MethodOptionsSDKType { - deprecated: boolean; - idempotency_level: MethodOptions_IdempotencyLevel; - uninterpreted_option: UninterpretedOptionSDKType[]; -} -/** - * 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. - */ -export interface UninterpretedOption { - name: UninterpretedOption_NamePart[]; - /** - * The value of the uninterpreted option, in whatever type the tokenizer - * identified it as during parsing. Exactly one of these should be set. - */ - identifierValue: string; - positiveIntValue: Long; - negativeIntValue: Long; - doubleValue: number; - stringValue: Uint8Array; - aggregateValue: string; -} -/** - * 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. - */ -export interface UninterpretedOptionSDKType { - name: UninterpretedOption_NamePartSDKType[]; - identifier_value: string; - positive_int_value: Long; - negative_int_value: Long; - double_value: number; - string_value: Uint8Array; - aggregate_value: string; -} -/** - * 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], ["qux", false] } represents - * "foo.(bar.baz).qux". - */ -export interface UninterpretedOption_NamePart { - namePart: string; - isExtension: boolean; -} -/** - * 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], ["qux", false] } represents - * "foo.(bar.baz).qux". - */ -export interface UninterpretedOption_NamePartSDKType { - name_part: string; - is_extension: boolean; -} -/** - * Encapsulates information about the original source file from which a - * FileDescriptorProto was generated. - */ -export interface 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. - */ - location: SourceCodeInfo_Location[]; -} -/** - * Encapsulates information about the original source file from which a - * FileDescriptorProto was generated. - */ -export interface SourceCodeInfoSDKType { - location: SourceCodeInfo_LocationSDKType[]; -} -export interface 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. 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). - */ - path: number[]; - /** - * 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. - */ - span: number[]; - /** - * 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 qux. - * // - * // Another line attached to qux. - * optional double qux = 4; - * - * // Detached comment for corge. This is not leading or trailing comments - * // to qux 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. - */ - leadingComments: string; - trailingComments: string; - leadingDetachedComments: string[]; -} -export interface SourceCodeInfo_LocationSDKType { - path: number[]; - span: number[]; - leading_comments: string; - trailing_comments: string; - leading_detached_comments: string[]; -} -/** - * 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. - */ -export interface GeneratedCodeInfo { - /** - * An Annotation connects some span of text in generated code to an element - * of its generating .proto file. - */ - annotation: GeneratedCodeInfo_Annotation[]; -} -/** - * 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. - */ -export interface GeneratedCodeInfoSDKType { - annotation: GeneratedCodeInfo_AnnotationSDKType[]; -} -export interface GeneratedCodeInfo_Annotation { - /** - * Identifies the element in the original source .proto file. This field - * is formatted the same as SourceCodeInfo.Location.path. - */ - path: number[]; - /** Identifies the filesystem path to the original source .proto. */ - sourceFile: string; - /** - * Identifies the starting offset in bytes in the generated code - * that relates to the identified object. - */ - begin: number; - /** - * Identifies the ending offset in bytes in the generated code that - * relates to the identified offset. The end offset should be one past - * the last relevant byte (so the length of the text = end - begin). - */ - end: number; -} -export interface GeneratedCodeInfo_AnnotationSDKType { - path: number[]; - source_file: string; - begin: number; - end: number; -} -export declare const FileDescriptorSet: { - encode(message: FileDescriptorSet, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): FileDescriptorSet; - fromPartial(object: DeepPartial): FileDescriptorSet; -}; -export declare const FileDescriptorProto: { - encode(message: FileDescriptorProto, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): FileDescriptorProto; - fromPartial(object: DeepPartial): FileDescriptorProto; -}; -export declare const DescriptorProto: { - encode(message: DescriptorProto, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): DescriptorProto; - fromPartial(object: DeepPartial): DescriptorProto; -}; -export declare const DescriptorProto_ExtensionRange: { - encode(message: DescriptorProto_ExtensionRange, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): DescriptorProto_ExtensionRange; - fromPartial(object: DeepPartial): DescriptorProto_ExtensionRange; -}; -export declare const DescriptorProto_ReservedRange: { - encode(message: DescriptorProto_ReservedRange, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): DescriptorProto_ReservedRange; - fromPartial(object: DeepPartial): DescriptorProto_ReservedRange; -}; -export declare const ExtensionRangeOptions: { - encode(message: ExtensionRangeOptions, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ExtensionRangeOptions; - fromPartial(object: DeepPartial): ExtensionRangeOptions; -}; -export declare const FieldDescriptorProto: { - encode(message: FieldDescriptorProto, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): FieldDescriptorProto; - fromPartial(object: DeepPartial): FieldDescriptorProto; -}; -export declare const OneofDescriptorProto: { - encode(message: OneofDescriptorProto, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): OneofDescriptorProto; - fromPartial(object: DeepPartial): OneofDescriptorProto; -}; -export declare const EnumDescriptorProto: { - encode(message: EnumDescriptorProto, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): EnumDescriptorProto; - fromPartial(object: DeepPartial): EnumDescriptorProto; -}; -export declare const EnumDescriptorProto_EnumReservedRange: { - encode(message: EnumDescriptorProto_EnumReservedRange, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): EnumDescriptorProto_EnumReservedRange; - fromPartial(object: DeepPartial): EnumDescriptorProto_EnumReservedRange; -}; -export declare const EnumValueDescriptorProto: { - encode(message: EnumValueDescriptorProto, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): EnumValueDescriptorProto; - fromPartial(object: DeepPartial): EnumValueDescriptorProto; -}; -export declare const ServiceDescriptorProto: { - encode(message: ServiceDescriptorProto, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ServiceDescriptorProto; - fromPartial(object: DeepPartial): ServiceDescriptorProto; -}; -export declare const MethodDescriptorProto: { - encode(message: MethodDescriptorProto, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MethodDescriptorProto; - fromPartial(object: DeepPartial): MethodDescriptorProto; -}; -export declare const FileOptions: { - encode(message: FileOptions, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): FileOptions; - fromPartial(object: DeepPartial): FileOptions; -}; -export declare const MessageOptions: { - encode(message: MessageOptions, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MessageOptions; - fromPartial(object: DeepPartial): MessageOptions; -}; -export declare const FieldOptions: { - encode(message: FieldOptions, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): FieldOptions; - fromPartial(object: DeepPartial): FieldOptions; -}; -export declare const OneofOptions: { - encode(message: OneofOptions, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): OneofOptions; - fromPartial(object: DeepPartial): OneofOptions; -}; -export declare const EnumOptions: { - encode(message: EnumOptions, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): EnumOptions; - fromPartial(object: DeepPartial): EnumOptions; -}; -export declare const EnumValueOptions: { - encode(message: EnumValueOptions, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): EnumValueOptions; - fromPartial(object: DeepPartial): EnumValueOptions; -}; -export declare const ServiceOptions: { - encode(message: ServiceOptions, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ServiceOptions; - fromPartial(object: DeepPartial): ServiceOptions; -}; -export declare const MethodOptions: { - encode(message: MethodOptions, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MethodOptions; - fromPartial(object: DeepPartial): MethodOptions; -}; -export declare const UninterpretedOption: { - encode(message: UninterpretedOption, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): UninterpretedOption; - fromPartial(object: DeepPartial): UninterpretedOption; -}; -export declare const UninterpretedOption_NamePart: { - encode(message: UninterpretedOption_NamePart, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): UninterpretedOption_NamePart; - fromPartial(object: DeepPartial): UninterpretedOption_NamePart; -}; -export declare const SourceCodeInfo: { - encode(message: SourceCodeInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SourceCodeInfo; - fromPartial(object: DeepPartial): SourceCodeInfo; -}; -export declare const SourceCodeInfo_Location: { - encode(message: SourceCodeInfo_Location, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SourceCodeInfo_Location; - fromPartial(object: DeepPartial): SourceCodeInfo_Location; -}; -export declare const GeneratedCodeInfo: { - encode(message: GeneratedCodeInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GeneratedCodeInfo; - fromPartial(object: DeepPartial): GeneratedCodeInfo; -}; -export declare const GeneratedCodeInfo_Annotation: { - encode(message: GeneratedCodeInfo_Annotation, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GeneratedCodeInfo_Annotation; - fromPartial(object: DeepPartial): GeneratedCodeInfo_Annotation; -}; diff --git a/packages/codegen/dist/google/protobuf/duration.d.ts b/packages/codegen/dist/google/protobuf/duration.d.ts deleted file mode 100644 index 7b970f92..00000000 --- a/packages/codegen/dist/google/protobuf/duration.d.ts +++ /dev/null @@ -1,149 +0,0 @@ -/// -import { Long, DeepPartial } from "../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * 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 (durations.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". - */ -export interface 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 - */ - seconds: Long; - /** - * 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. - */ - nanos: number; -} -/** - * 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 (durations.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". - */ -export interface DurationSDKType { - seconds: Long; - nanos: number; -} -export declare const Duration: { - encode(message: Duration, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Duration; - fromPartial(object: DeepPartial): Duration; -}; diff --git a/packages/codegen/dist/google/protobuf/empty.d.ts b/packages/codegen/dist/google/protobuf/empty.d.ts deleted file mode 100644 index 91c16741..00000000 --- a/packages/codegen/dist/google/protobuf/empty.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../helpers"; -/** - * A generic empty message that you can re-use to avoid defining duplicated - * empty messages in your APIs. A typical example is to use it as the request - * or the response type of an API method. For instance: - * - * service Foo { - * rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); - * } - * - * The JSON representation for `Empty` is empty JSON object `{}`. - */ -export interface Empty { -} -/** - * A generic empty message that you can re-use to avoid defining duplicated - * empty messages in your APIs. A typical example is to use it as the request - * or the response type of an API method. For instance: - * - * service Foo { - * rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); - * } - * - * The JSON representation for `Empty` is empty JSON object `{}`. - */ -export interface EmptySDKType { -} -export declare const Empty: { - encode(_: Empty, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Empty; - fromPartial(_: DeepPartial): Empty; -}; diff --git a/packages/codegen/dist/google/protobuf/timestamp.d.ts b/packages/codegen/dist/google/protobuf/timestamp.d.ts deleted file mode 100644 index 523728e1..00000000 --- a/packages/codegen/dist/google/protobuf/timestamp.d.ts +++ /dev/null @@ -1,195 +0,0 @@ -/// -import { Long, DeepPartial } from "../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * 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 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://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D - * ) to obtain a formatter capable of generating timestamps in this format. - */ -export interface 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. - */ - seconds: Long; - /** - * 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. - */ - nanos: number; -} -/** - * 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 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://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D - * ) to obtain a formatter capable of generating timestamps in this format. - */ -export interface TimestampSDKType { - seconds: Long; - nanos: number; -} -export declare const Timestamp: { - encode(message: Timestamp, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Timestamp; - fromPartial(object: DeepPartial): Timestamp; -}; diff --git a/packages/codegen/dist/helpers.d.ts b/packages/codegen/dist/helpers.d.ts deleted file mode 100644 index 02a5732c..00000000 --- a/packages/codegen/dist/helpers.d.ts +++ /dev/null @@ -1,82 +0,0 @@ -/** -* This file and any referenced files were automatically generated by @osmonauts/telescope@0.88.2 -* DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain -* and run the transpile command or yarn proto command to regenerate this bundle. -*/ -import Long from 'long'; -export { Long }; -export declare function bytesFromBase64(b64: string): Uint8Array; -export declare function base64FromBytes(arr: Uint8Array): string; -export interface AminoHeight { - readonly revision_number?: string; - readonly revision_height?: string; -} -export declare function omitDefault(input: T): T | undefined; -interface 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 - */ - seconds: Long; - /** - * 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. - */ - nanos: number; -} -export declare function toDuration(duration: string): Duration; -export declare function fromDuration(duration: Duration): string; -export declare function isSet(value: any): boolean; -export declare function isObject(value: any): boolean; -export interface PageRequest { - key: Uint8Array; - offset: Long; - limit: Long; - countTotal: boolean; - reverse: boolean; -} -export interface PageRequestParams { - "pagination.key"?: string; - "pagination.offset"?: string; - "pagination.limit"?: string; - "pagination.count_total"?: boolean; - "pagination.reverse"?: boolean; -} -export interface Params { - params: PageRequestParams; -} -export declare const setPaginationParams: (options: Params, pagination?: PageRequest) => Params; -type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; -export type DeepPartial = T extends Builtin ? T : T extends Long ? string | number | Long : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends {} ? { - [K in keyof T]?: DeepPartial; -} : Partial; -type KeysOfUnion = T extends T ? keyof T : never; -export type Exact = P extends Builtin ? P : P & { - [K in keyof P]: Exact; -} & Record>, never>; -export interface Rpc { - request(service: string, method: string, data: Uint8Array): Promise; -} -interface 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. - */ - seconds: Long; - /** - * 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. - */ - nanos: number; -} -export declare function toTimestamp(date: Date): Timestamp; -export declare function fromTimestamp(t: Timestamp): Date; -export declare function fromJsonTimestamp(o: any): Timestamp; diff --git a/packages/codegen/dist/ibc/applications/transfer/v1/genesis.d.ts b/packages/codegen/dist/ibc/applications/transfer/v1/genesis.d.ts deleted file mode 100644 index 4bbee85f..00000000 --- a/packages/codegen/dist/ibc/applications/transfer/v1/genesis.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { DenomTrace, DenomTraceSDKType, Params, ParamsSDKType } from "./transfer"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** GenesisState defines the ibc-transfer genesis state */ -export interface GenesisState { - portId: string; - denomTraces: DenomTrace[]; - params?: Params; -} -/** GenesisState defines the ibc-transfer genesis state */ -export interface GenesisStateSDKType { - port_id: string; - denom_traces: DenomTraceSDKType[]; - params?: ParamsSDKType; -} -export declare const GenesisState: { - encode(message: GenesisState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState; - fromPartial(object: DeepPartial): GenesisState; -}; diff --git a/packages/codegen/dist/ibc/applications/transfer/v1/query.d.ts b/packages/codegen/dist/ibc/applications/transfer/v1/query.d.ts deleted file mode 100644 index 9657b84a..00000000 --- a/packages/codegen/dist/ibc/applications/transfer/v1/query.d.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../../../cosmos/base/query/v1beta1/pagination"; -import { DenomTrace, DenomTraceSDKType, Params, ParamsSDKType } from "./transfer"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** - * QueryDenomTraceRequest is the request type for the Query/DenomTrace RPC - * method - */ -export interface QueryDenomTraceRequest { - /** hash (in hex format) of the denomination trace information. */ - hash: string; -} -/** - * QueryDenomTraceRequest is the request type for the Query/DenomTrace RPC - * method - */ -export interface QueryDenomTraceRequestSDKType { - hash: string; -} -/** - * QueryDenomTraceResponse is the response type for the Query/DenomTrace RPC - * method. - */ -export interface QueryDenomTraceResponse { - /** denom_trace returns the requested denomination trace information. */ - denomTrace?: DenomTrace; -} -/** - * QueryDenomTraceResponse is the response type for the Query/DenomTrace RPC - * method. - */ -export interface QueryDenomTraceResponseSDKType { - denom_trace?: DenomTraceSDKType; -} -/** - * QueryConnectionsRequest is the request type for the Query/DenomTraces RPC - * method - */ -export interface QueryDenomTracesRequest { - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** - * QueryConnectionsRequest is the request type for the Query/DenomTraces RPC - * method - */ -export interface QueryDenomTracesRequestSDKType { - pagination?: PageRequestSDKType; -} -/** - * QueryConnectionsResponse is the response type for the Query/DenomTraces RPC - * method. - */ -export interface QueryDenomTracesResponse { - /** denom_traces returns all denominations trace information. */ - denomTraces: DenomTrace[]; - /** pagination defines the pagination in the response. */ - pagination?: PageResponse; -} -/** - * QueryConnectionsResponse is the response type for the Query/DenomTraces RPC - * method. - */ -export interface QueryDenomTracesResponseSDKType { - denom_traces: DenomTraceSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ -export interface QueryParamsRequest { -} -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ -export interface QueryParamsRequestSDKType { -} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ -export interface QueryParamsResponse { - /** params defines the parameters of the module. */ - params?: Params; -} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ -export interface QueryParamsResponseSDKType { - params?: ParamsSDKType; -} -export declare const QueryDenomTraceRequest: { - encode(message: QueryDenomTraceRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDenomTraceRequest; - fromPartial(object: DeepPartial): QueryDenomTraceRequest; -}; -export declare const QueryDenomTraceResponse: { - encode(message: QueryDenomTraceResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDenomTraceResponse; - fromPartial(object: DeepPartial): QueryDenomTraceResponse; -}; -export declare const QueryDenomTracesRequest: { - encode(message: QueryDenomTracesRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDenomTracesRequest; - fromPartial(object: DeepPartial): QueryDenomTracesRequest; -}; -export declare const QueryDenomTracesResponse: { - encode(message: QueryDenomTracesResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDenomTracesResponse; - fromPartial(object: DeepPartial): QueryDenomTracesResponse; -}; -export declare const QueryParamsRequest: { - encode(_: QueryParamsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest; - fromPartial(_: DeepPartial): QueryParamsRequest; -}; -export declare const QueryParamsResponse: { - encode(message: QueryParamsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse; - fromPartial(object: DeepPartial): QueryParamsResponse; -}; diff --git a/packages/codegen/dist/ibc/applications/transfer/v1/query.lcd.d.ts b/packages/codegen/dist/ibc/applications/transfer/v1/query.lcd.d.ts deleted file mode 100644 index 41187bb2..00000000 --- a/packages/codegen/dist/ibc/applications/transfer/v1/query.lcd.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { QueryDenomTraceRequest, QueryDenomTraceResponseSDKType, QueryDenomTracesRequest, QueryDenomTracesResponseSDKType, QueryParamsRequest, QueryParamsResponseSDKType } from "./query"; -export declare class LCDQueryClient { - req: LCDClient; - constructor({ requestClient }: { - requestClient: LCDClient; - }); - denomTrace(params: QueryDenomTraceRequest): Promise; - denomTraces(params?: QueryDenomTracesRequest): Promise; - params(_params?: QueryParamsRequest): Promise; -} diff --git a/packages/codegen/dist/ibc/applications/transfer/v1/query.rpc.Query.d.ts b/packages/codegen/dist/ibc/applications/transfer/v1/query.rpc.Query.d.ts deleted file mode 100644 index d86b260e..00000000 --- a/packages/codegen/dist/ibc/applications/transfer/v1/query.rpc.Query.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Rpc } from "../../../../helpers"; -import { QueryClient } from "@cosmjs/stargate"; -import { QueryDenomTraceRequest, QueryDenomTraceResponse, QueryDenomTracesRequest, QueryDenomTracesResponse, QueryParamsRequest, QueryParamsResponse } from "./query"; -/** Query provides defines the gRPC querier service. */ -export interface Query { - /** DenomTrace queries a denomination trace information. */ - denomTrace(request: QueryDenomTraceRequest): Promise; - /** DenomTraces queries all denomination traces. */ - denomTraces(request?: QueryDenomTracesRequest): Promise; - /** Params queries all parameters of the ibc-transfer module. */ - params(request?: QueryParamsRequest): Promise; -} -export declare class QueryClientImpl implements Query { - private readonly rpc; - constructor(rpc: Rpc); - denomTrace(request: QueryDenomTraceRequest): Promise; - denomTraces(request?: QueryDenomTracesRequest): Promise; - params(request?: QueryParamsRequest): Promise; -} -export declare const createRpcQueryExtension: (base: QueryClient) => { - denomTrace(request: QueryDenomTraceRequest): Promise; - denomTraces(request?: QueryDenomTracesRequest): Promise; - params(request?: QueryParamsRequest): Promise; -}; diff --git a/packages/codegen/dist/ibc/applications/transfer/v1/transfer.d.ts b/packages/codegen/dist/ibc/applications/transfer/v1/transfer.d.ts deleted file mode 100644 index b756617b..00000000 --- a/packages/codegen/dist/ibc/applications/transfer/v1/transfer.d.ts +++ /dev/null @@ -1,61 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** - * DenomTrace contains the base denomination for ICS20 fungible tokens and the - * source tracing information path. - */ -export interface DenomTrace { - /** - * path defines the chain of port/channel identifiers used for tracing the - * source of the fungible token. - */ - path: string; - /** base denomination of the relayed fungible token. */ - baseDenom: string; -} -/** - * DenomTrace contains the base denomination for ICS20 fungible tokens and the - * source tracing information path. - */ -export interface DenomTraceSDKType { - path: string; - base_denom: string; -} -/** - * 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. - */ -export interface Params { - /** - * send_enabled enables or disables all cross-chain token transfers from this - * chain. - */ - sendEnabled: boolean; - /** - * receive_enabled enables or disables all cross-chain token transfers to this - * chain. - */ - receiveEnabled: boolean; -} -/** - * 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. - */ -export interface ParamsSDKType { - send_enabled: boolean; - receive_enabled: boolean; -} -export declare const DenomTrace: { - encode(message: DenomTrace, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): DenomTrace; - fromPartial(object: DeepPartial): DenomTrace; -}; -export declare const Params: { - encode(message: Params, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Params; - fromPartial(object: DeepPartial): Params; -}; diff --git a/packages/codegen/dist/ibc/applications/transfer/v1/tx.d.ts b/packages/codegen/dist/ibc/applications/transfer/v1/tx.d.ts deleted file mode 100644 index 2b24603a..00000000 --- a/packages/codegen/dist/ibc/applications/transfer/v1/tx.d.ts +++ /dev/null @@ -1,62 +0,0 @@ -/// -import { Coin, CoinSDKType } from "../../../../cosmos/base/v1beta1/coin"; -import { Height, HeightSDKType } from "../../../core/client/v1/client"; -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * 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 - */ -export interface MsgTransfer { - /** the port on which the packet will be sent */ - sourcePort: string; - /** the channel by which the packet will be sent */ - sourceChannel: string; - /** the tokens to be transferred */ - token?: Coin; - /** the sender address */ - sender: string; - /** the recipient address on the destination chain */ - receiver: string; - /** - * Timeout height relative to the current block height. - * The timeout is disabled when set to 0. - */ - timeoutHeight?: Height; - /** - * Timeout timestamp (in nanoseconds) relative to the current block timestamp. - * The timeout is disabled when set to 0. - */ - timeoutTimestamp: Long; -} -/** - * 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 - */ -export interface MsgTransferSDKType { - source_port: string; - source_channel: string; - token?: CoinSDKType; - sender: string; - receiver: string; - timeout_height?: HeightSDKType; - timeout_timestamp: Long; -} -/** MsgTransferResponse defines the Msg/Transfer response type. */ -export interface MsgTransferResponse { -} -/** MsgTransferResponse defines the Msg/Transfer response type. */ -export interface MsgTransferResponseSDKType { -} -export declare const MsgTransfer: { - encode(message: MsgTransfer, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgTransfer; - fromPartial(object: DeepPartial): MsgTransfer; -}; -export declare const MsgTransferResponse: { - encode(_: MsgTransferResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgTransferResponse; - fromPartial(_: DeepPartial): MsgTransferResponse; -}; diff --git a/packages/codegen/dist/ibc/applications/transfer/v1/tx.rpc.msg.d.ts b/packages/codegen/dist/ibc/applications/transfer/v1/tx.rpc.msg.d.ts deleted file mode 100644 index d000d7b5..00000000 --- a/packages/codegen/dist/ibc/applications/transfer/v1/tx.rpc.msg.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Rpc } from "../../../../helpers"; -import { MsgTransfer, MsgTransferResponse } from "./tx"; -/** Msg defines the ibc/transfer Msg service. */ -export interface Msg { - /** Transfer defines a rpc handler method for MsgTransfer. */ - transfer(request: MsgTransfer): Promise; -} -export declare class MsgClientImpl implements Msg { - private readonly rpc; - constructor(rpc: Rpc); - transfer(request: MsgTransfer): Promise; -} diff --git a/packages/codegen/dist/ibc/applications/transfer/v2/packet.d.ts b/packages/codegen/dist/ibc/applications/transfer/v2/packet.d.ts deleted file mode 100644 index fbd3d0e5..00000000 --- a/packages/codegen/dist/ibc/applications/transfer/v2/packet.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** - * 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 - */ -export interface FungibleTokenPacketData { - /** the token denomination to be transferred */ - denom: string; - /** the token amount to be transferred */ - amount: string; - /** the sender address */ - sender: string; - /** the recipient address on the destination chain */ - receiver: string; -} -/** - * 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 - */ -export interface FungibleTokenPacketDataSDKType { - denom: string; - amount: string; - sender: string; - receiver: string; -} -export declare const FungibleTokenPacketData: { - encode(message: FungibleTokenPacketData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): FungibleTokenPacketData; - fromPartial(object: DeepPartial): FungibleTokenPacketData; -}; diff --git a/packages/codegen/dist/ibc/bundle.d.ts b/packages/codegen/dist/ibc/bundle.d.ts deleted file mode 100644 index 57b561c4..00000000 --- a/packages/codegen/dist/ibc/bundle.d.ts +++ /dev/null @@ -1,3259 +0,0 @@ -/// -import * as _110 from "./applications/transfer/v1/genesis"; -import * as _111 from "./applications/transfer/v1/query"; -import * as _112 from "./applications/transfer/v1/transfer"; -import * as _113 from "./applications/transfer/v1/tx"; -import * as _114 from "./applications/transfer/v2/packet"; -import * as _115 from "./core/channel/v1/channel"; -import * as _116 from "./core/channel/v1/genesis"; -import * as _117 from "./core/channel/v1/query"; -import * as _118 from "./core/channel/v1/tx"; -import * as _119 from "./core/client/v1/client"; -import * as _120 from "./core/client/v1/genesis"; -import * as _121 from "./core/client/v1/query"; -import * as _122 from "./core/client/v1/tx"; -import * as _123 from "./core/commitment/v1/commitment"; -import * as _124 from "./core/connection/v1/connection"; -import * as _125 from "./core/connection/v1/genesis"; -import * as _126 from "./core/connection/v1/query"; -import * as _127 from "./core/connection/v1/tx"; -import * as _128 from "./core/port/v1/query"; -import * as _129 from "./core/types/v1/genesis"; -import * as _130 from "./lightclients/localhost/v1/localhost"; -import * as _131 from "./lightclients/solomachine/v1/solomachine"; -import * as _132 from "./lightclients/solomachine/v2/solomachine"; -import * as _133 from "./lightclients/tendermint/v1/tendermint"; -import * as _197 from "./applications/transfer/v1/query.lcd"; -import * as _198 from "./core/channel/v1/query.lcd"; -import * as _199 from "./core/client/v1/query.lcd"; -import * as _200 from "./core/connection/v1/query.lcd"; -import * as _201 from "./applications/transfer/v1/query.rpc.Query"; -import * as _202 from "./core/channel/v1/query.rpc.Query"; -import * as _203 from "./core/client/v1/query.rpc.Query"; -import * as _204 from "./core/connection/v1/query.rpc.Query"; -import * as _205 from "./core/port/v1/query.rpc.Query"; -import * as _206 from "./applications/transfer/v1/tx.rpc.msg"; -import * as _207 from "./core/channel/v1/tx.rpc.msg"; -import * as _208 from "./core/client/v1/tx.rpc.msg"; -import * as _209 from "./core/connection/v1/tx.rpc.msg"; -export declare namespace ibc { - namespace applications { - namespace transfer { - const v1: { - MsgClientImpl: typeof _206.MsgClientImpl; - QueryClientImpl: typeof _201.QueryClientImpl; - createRpcQueryExtension: (base: import("@cosmjs/stargate").QueryClient) => { - denomTrace(request: _111.QueryDenomTraceRequest): Promise<_111.QueryDenomTraceResponse>; - denomTraces(request?: _111.QueryDenomTracesRequest): Promise<_111.QueryDenomTracesResponse>; - params(request?: _111.QueryParamsRequest): Promise<_111.QueryParamsResponse>; - }; - LCDQueryClient: typeof _197.LCDQueryClient; - MsgTransfer: { - encode(message: _113.MsgTransfer, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _113.MsgTransfer; - fromPartial(object: { - sourcePort?: string; - sourceChannel?: string; - token?: { - denom?: string; - amount?: string; - }; - sender?: string; - receiver?: string; - timeoutHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - timeoutTimestamp?: string | number | import("long").Long; - }): _113.MsgTransfer; - }; - MsgTransferResponse: { - encode(_: _113.MsgTransferResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _113.MsgTransferResponse; - fromPartial(_: {}): _113.MsgTransferResponse; - }; - DenomTrace: { - encode(message: _112.DenomTrace, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _112.DenomTrace; - fromPartial(object: { - path?: string; - baseDenom?: string; - }): _112.DenomTrace; - }; - Params: { - encode(message: _112.Params, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _112.Params; - fromPartial(object: { - sendEnabled?: boolean; - receiveEnabled?: boolean; - }): _112.Params; - }; - QueryDenomTraceRequest: { - encode(message: _111.QueryDenomTraceRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _111.QueryDenomTraceRequest; - fromPartial(object: { - hash?: string; - }): _111.QueryDenomTraceRequest; - }; - QueryDenomTraceResponse: { - encode(message: _111.QueryDenomTraceResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _111.QueryDenomTraceResponse; - fromPartial(object: { - denomTrace?: { - path?: string; - baseDenom?: string; - }; - }): _111.QueryDenomTraceResponse; - }; - QueryDenomTracesRequest: { - encode(message: _111.QueryDenomTracesRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _111.QueryDenomTracesRequest; - fromPartial(object: { - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _111.QueryDenomTracesRequest; - }; - QueryDenomTracesResponse: { - encode(message: _111.QueryDenomTracesResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _111.QueryDenomTracesResponse; - fromPartial(object: { - denomTraces?: { - path?: string; - baseDenom?: string; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _111.QueryDenomTracesResponse; - }; - QueryParamsRequest: { - encode(_: _111.QueryParamsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _111.QueryParamsRequest; - fromPartial(_: {}): _111.QueryParamsRequest; - }; - QueryParamsResponse: { - encode(message: _111.QueryParamsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _111.QueryParamsResponse; - fromPartial(object: { - params?: { - sendEnabled?: boolean; - receiveEnabled?: boolean; - }; - }): _111.QueryParamsResponse; - }; - GenesisState: { - encode(message: _110.GenesisState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _110.GenesisState; - fromPartial(object: { - portId?: string; - denomTraces?: { - path?: string; - baseDenom?: string; - }[]; - params?: { - sendEnabled?: boolean; - receiveEnabled?: boolean; - }; - }): _110.GenesisState; - }; - }; - const v2: { - FungibleTokenPacketData: { - encode(message: _114.FungibleTokenPacketData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _114.FungibleTokenPacketData; - fromPartial(object: { - denom?: string; - amount?: string; - sender?: string; - receiver?: string; - }): _114.FungibleTokenPacketData; - }; - }; - } - } - namespace core { - namespace channel { - const v1: { - MsgClientImpl: typeof _207.MsgClientImpl; - QueryClientImpl: typeof _202.QueryClientImpl; - createRpcQueryExtension: (base: import("@cosmjs/stargate").QueryClient) => { - channel(request: _117.QueryChannelRequest): Promise<_117.QueryChannelResponse>; - channels(request?: _117.QueryChannelsRequest): Promise<_117.QueryChannelsResponse>; - connectionChannels(request: _117.QueryConnectionChannelsRequest): Promise<_117.QueryConnectionChannelsResponse>; - channelClientState(request: _117.QueryChannelClientStateRequest): Promise<_117.QueryChannelClientStateResponse>; - channelConsensusState(request: _117.QueryChannelConsensusStateRequest): Promise<_117.QueryChannelConsensusStateResponse>; - packetCommitment(request: _117.QueryPacketCommitmentRequest): Promise<_117.QueryPacketCommitmentResponse>; - packetCommitments(request: _117.QueryPacketCommitmentsRequest): Promise<_117.QueryPacketCommitmentsResponse>; - packetReceipt(request: _117.QueryPacketReceiptRequest): Promise<_117.QueryPacketReceiptResponse>; - packetAcknowledgement(request: _117.QueryPacketAcknowledgementRequest): Promise<_117.QueryPacketAcknowledgementResponse>; - packetAcknowledgements(request: _117.QueryPacketAcknowledgementsRequest): Promise<_117.QueryPacketAcknowledgementsResponse>; - unreceivedPackets(request: _117.QueryUnreceivedPacketsRequest): Promise<_117.QueryUnreceivedPacketsResponse>; - unreceivedAcks(request: _117.QueryUnreceivedAcksRequest): Promise<_117.QueryUnreceivedAcksResponse>; - nextSequenceReceive(request: _117.QueryNextSequenceReceiveRequest): Promise<_117.QueryNextSequenceReceiveResponse>; - }; - LCDQueryClient: typeof _198.LCDQueryClient; - MsgChannelOpenInit: { - encode(message: _118.MsgChannelOpenInit, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _118.MsgChannelOpenInit; - fromPartial(object: { - portId?: string; - channel?: { - state?: _115.State; - ordering?: _115.Order; - counterparty?: { - portId?: string; - channelId?: string; - }; - connectionHops?: string[]; - version?: string; - }; - signer?: string; - }): _118.MsgChannelOpenInit; - }; - MsgChannelOpenInitResponse: { - encode(_: _118.MsgChannelOpenInitResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _118.MsgChannelOpenInitResponse; - fromPartial(_: {}): _118.MsgChannelOpenInitResponse; - }; - MsgChannelOpenTry: { - encode(message: _118.MsgChannelOpenTry, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _118.MsgChannelOpenTry; - fromPartial(object: { - portId?: string; - previousChannelId?: string; - channel?: { - state?: _115.State; - ordering?: _115.Order; - counterparty?: { - portId?: string; - channelId?: string; - }; - connectionHops?: string[]; - version?: string; - }; - counterpartyVersion?: string; - proofInit?: Uint8Array; - proofHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - signer?: string; - }): _118.MsgChannelOpenTry; - }; - MsgChannelOpenTryResponse: { - encode(_: _118.MsgChannelOpenTryResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _118.MsgChannelOpenTryResponse; - fromPartial(_: {}): _118.MsgChannelOpenTryResponse; - }; - MsgChannelOpenAck: { - encode(message: _118.MsgChannelOpenAck, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _118.MsgChannelOpenAck; - fromPartial(object: { - portId?: string; - channelId?: string; - counterpartyChannelId?: string; - counterpartyVersion?: string; - proofTry?: Uint8Array; - proofHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - signer?: string; - }): _118.MsgChannelOpenAck; - }; - MsgChannelOpenAckResponse: { - encode(_: _118.MsgChannelOpenAckResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _118.MsgChannelOpenAckResponse; - fromPartial(_: {}): _118.MsgChannelOpenAckResponse; - }; - MsgChannelOpenConfirm: { - encode(message: _118.MsgChannelOpenConfirm, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _118.MsgChannelOpenConfirm; - fromPartial(object: { - portId?: string; - channelId?: string; - proofAck?: Uint8Array; - proofHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - signer?: string; - }): _118.MsgChannelOpenConfirm; - }; - MsgChannelOpenConfirmResponse: { - encode(_: _118.MsgChannelOpenConfirmResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _118.MsgChannelOpenConfirmResponse; - fromPartial(_: {}): _118.MsgChannelOpenConfirmResponse; - }; - MsgChannelCloseInit: { - encode(message: _118.MsgChannelCloseInit, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _118.MsgChannelCloseInit; - fromPartial(object: { - portId?: string; - channelId?: string; - signer?: string; - }): _118.MsgChannelCloseInit; - }; - MsgChannelCloseInitResponse: { - encode(_: _118.MsgChannelCloseInitResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _118.MsgChannelCloseInitResponse; - fromPartial(_: {}): _118.MsgChannelCloseInitResponse; - }; - MsgChannelCloseConfirm: { - encode(message: _118.MsgChannelCloseConfirm, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _118.MsgChannelCloseConfirm; - fromPartial(object: { - portId?: string; - channelId?: string; - proofInit?: Uint8Array; - proofHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - signer?: string; - }): _118.MsgChannelCloseConfirm; - }; - MsgChannelCloseConfirmResponse: { - encode(_: _118.MsgChannelCloseConfirmResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _118.MsgChannelCloseConfirmResponse; - fromPartial(_: {}): _118.MsgChannelCloseConfirmResponse; - }; - MsgRecvPacket: { - encode(message: _118.MsgRecvPacket, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _118.MsgRecvPacket; - fromPartial(object: { - packet?: { - sequence?: string | number | import("long").Long; - sourcePort?: string; - sourceChannel?: string; - destinationPort?: string; - destinationChannel?: string; - data?: Uint8Array; - timeoutHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - timeoutTimestamp?: string | number | import("long").Long; - }; - proofCommitment?: Uint8Array; - proofHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - signer?: string; - }): _118.MsgRecvPacket; - }; - MsgRecvPacketResponse: { - encode(_: _118.MsgRecvPacketResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _118.MsgRecvPacketResponse; - fromPartial(_: {}): _118.MsgRecvPacketResponse; - }; - MsgTimeout: { - encode(message: _118.MsgTimeout, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _118.MsgTimeout; - fromPartial(object: { - packet?: { - sequence?: string | number | import("long").Long; - sourcePort?: string; - sourceChannel?: string; - destinationPort?: string; - destinationChannel?: string; - data?: Uint8Array; - timeoutHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - timeoutTimestamp?: string | number | import("long").Long; - }; - proofUnreceived?: Uint8Array; - proofHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - nextSequenceRecv?: string | number | import("long").Long; - signer?: string; - }): _118.MsgTimeout; - }; - MsgTimeoutResponse: { - encode(_: _118.MsgTimeoutResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _118.MsgTimeoutResponse; - fromPartial(_: {}): _118.MsgTimeoutResponse; - }; - MsgTimeoutOnClose: { - encode(message: _118.MsgTimeoutOnClose, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _118.MsgTimeoutOnClose; - fromPartial(object: { - packet?: { - sequence?: string | number | import("long").Long; - sourcePort?: string; - sourceChannel?: string; - destinationPort?: string; - destinationChannel?: string; - data?: Uint8Array; - timeoutHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - timeoutTimestamp?: string | number | import("long").Long; - }; - proofUnreceived?: Uint8Array; - proofClose?: Uint8Array; - proofHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - nextSequenceRecv?: string | number | import("long").Long; - signer?: string; - }): _118.MsgTimeoutOnClose; - }; - MsgTimeoutOnCloseResponse: { - encode(_: _118.MsgTimeoutOnCloseResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _118.MsgTimeoutOnCloseResponse; - fromPartial(_: {}): _118.MsgTimeoutOnCloseResponse; - }; - MsgAcknowledgement: { - encode(message: _118.MsgAcknowledgement, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _118.MsgAcknowledgement; - fromPartial(object: { - packet?: { - sequence?: string | number | import("long").Long; - sourcePort?: string; - sourceChannel?: string; - destinationPort?: string; - destinationChannel?: string; - data?: Uint8Array; - timeoutHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - timeoutTimestamp?: string | number | import("long").Long; - }; - acknowledgement?: Uint8Array; - proofAcked?: Uint8Array; - proofHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - signer?: string; - }): _118.MsgAcknowledgement; - }; - MsgAcknowledgementResponse: { - encode(_: _118.MsgAcknowledgementResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _118.MsgAcknowledgementResponse; - fromPartial(_: {}): _118.MsgAcknowledgementResponse; - }; - QueryChannelRequest: { - encode(message: _117.QueryChannelRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryChannelRequest; - fromPartial(object: { - portId?: string; - channelId?: string; - }): _117.QueryChannelRequest; - }; - QueryChannelResponse: { - encode(message: _117.QueryChannelResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryChannelResponse; - fromPartial(object: { - channel?: { - state?: _115.State; - ordering?: _115.Order; - counterparty?: { - portId?: string; - channelId?: string; - }; - connectionHops?: string[]; - version?: string; - }; - proof?: Uint8Array; - proofHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - }): _117.QueryChannelResponse; - }; - QueryChannelsRequest: { - encode(message: _117.QueryChannelsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryChannelsRequest; - fromPartial(object: { - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _117.QueryChannelsRequest; - }; - QueryChannelsResponse: { - encode(message: _117.QueryChannelsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryChannelsResponse; - fromPartial(object: { - channels?: { - state?: _115.State; - ordering?: _115.Order; - counterparty?: { - portId?: string; - channelId?: string; - }; - connectionHops?: string[]; - version?: string; - portId?: string; - channelId?: string; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - height?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - }): _117.QueryChannelsResponse; - }; - QueryConnectionChannelsRequest: { - encode(message: _117.QueryConnectionChannelsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryConnectionChannelsRequest; - fromPartial(object: { - connection?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _117.QueryConnectionChannelsRequest; - }; - QueryConnectionChannelsResponse: { - encode(message: _117.QueryConnectionChannelsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryConnectionChannelsResponse; - fromPartial(object: { - channels?: { - state?: _115.State; - ordering?: _115.Order; - counterparty?: { - portId?: string; - channelId?: string; - }; - connectionHops?: string[]; - version?: string; - portId?: string; - channelId?: string; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - height?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - }): _117.QueryConnectionChannelsResponse; - }; - QueryChannelClientStateRequest: { - encode(message: _117.QueryChannelClientStateRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryChannelClientStateRequest; - fromPartial(object: { - portId?: string; - channelId?: string; - }): _117.QueryChannelClientStateRequest; - }; - QueryChannelClientStateResponse: { - encode(message: _117.QueryChannelClientStateResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryChannelClientStateResponse; - fromPartial(object: { - identifiedClientState?: { - clientId?: string; - clientState?: { - typeUrl?: string; - value?: Uint8Array; - }; - }; - proof?: Uint8Array; - proofHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - }): _117.QueryChannelClientStateResponse; - }; - QueryChannelConsensusStateRequest: { - encode(message: _117.QueryChannelConsensusStateRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryChannelConsensusStateRequest; - fromPartial(object: { - portId?: string; - channelId?: string; - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }): _117.QueryChannelConsensusStateRequest; - }; - QueryChannelConsensusStateResponse: { - encode(message: _117.QueryChannelConsensusStateResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryChannelConsensusStateResponse; - fromPartial(object: { - consensusState?: { - typeUrl?: string; - value?: Uint8Array; - }; - clientId?: string; - proof?: Uint8Array; - proofHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - }): _117.QueryChannelConsensusStateResponse; - }; - QueryPacketCommitmentRequest: { - encode(message: _117.QueryPacketCommitmentRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryPacketCommitmentRequest; - fromPartial(object: { - portId?: string; - channelId?: string; - sequence?: string | number | import("long").Long; - }): _117.QueryPacketCommitmentRequest; - }; - QueryPacketCommitmentResponse: { - encode(message: _117.QueryPacketCommitmentResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryPacketCommitmentResponse; - fromPartial(object: { - commitment?: Uint8Array; - proof?: Uint8Array; - proofHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - }): _117.QueryPacketCommitmentResponse; - }; - QueryPacketCommitmentsRequest: { - encode(message: _117.QueryPacketCommitmentsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryPacketCommitmentsRequest; - fromPartial(object: { - portId?: string; - channelId?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _117.QueryPacketCommitmentsRequest; - }; - QueryPacketCommitmentsResponse: { - encode(message: _117.QueryPacketCommitmentsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryPacketCommitmentsResponse; - fromPartial(object: { - commitments?: { - portId?: string; - channelId?: string; - sequence?: string | number | import("long").Long; - data?: Uint8Array; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - height?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - }): _117.QueryPacketCommitmentsResponse; - }; - QueryPacketReceiptRequest: { - encode(message: _117.QueryPacketReceiptRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryPacketReceiptRequest; - fromPartial(object: { - portId?: string; - channelId?: string; - sequence?: string | number | import("long").Long; - }): _117.QueryPacketReceiptRequest; - }; - QueryPacketReceiptResponse: { - encode(message: _117.QueryPacketReceiptResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryPacketReceiptResponse; - fromPartial(object: { - received?: boolean; - proof?: Uint8Array; - proofHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - }): _117.QueryPacketReceiptResponse; - }; - QueryPacketAcknowledgementRequest: { - encode(message: _117.QueryPacketAcknowledgementRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryPacketAcknowledgementRequest; - fromPartial(object: { - portId?: string; - channelId?: string; - sequence?: string | number | import("long").Long; - }): _117.QueryPacketAcknowledgementRequest; - }; - QueryPacketAcknowledgementResponse: { - encode(message: _117.QueryPacketAcknowledgementResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryPacketAcknowledgementResponse; - fromPartial(object: { - acknowledgement?: Uint8Array; - proof?: Uint8Array; - proofHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - }): _117.QueryPacketAcknowledgementResponse; - }; - QueryPacketAcknowledgementsRequest: { - encode(message: _117.QueryPacketAcknowledgementsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryPacketAcknowledgementsRequest; - fromPartial(object: { - portId?: string; - channelId?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - packetCommitmentSequences?: (string | number | import("long").Long)[]; - }): _117.QueryPacketAcknowledgementsRequest; - }; - QueryPacketAcknowledgementsResponse: { - encode(message: _117.QueryPacketAcknowledgementsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryPacketAcknowledgementsResponse; - fromPartial(object: { - acknowledgements?: { - portId?: string; - channelId?: string; - sequence?: string | number | import("long").Long; - data?: Uint8Array; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - height?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - }): _117.QueryPacketAcknowledgementsResponse; - }; - QueryUnreceivedPacketsRequest: { - encode(message: _117.QueryUnreceivedPacketsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryUnreceivedPacketsRequest; - fromPartial(object: { - portId?: string; - channelId?: string; - packetCommitmentSequences?: (string | number | import("long").Long)[]; - }): _117.QueryUnreceivedPacketsRequest; - }; - QueryUnreceivedPacketsResponse: { - encode(message: _117.QueryUnreceivedPacketsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryUnreceivedPacketsResponse; - fromPartial(object: { - sequences?: (string | number | import("long").Long)[]; - height?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - }): _117.QueryUnreceivedPacketsResponse; - }; - QueryUnreceivedAcksRequest: { - encode(message: _117.QueryUnreceivedAcksRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryUnreceivedAcksRequest; - fromPartial(object: { - portId?: string; - channelId?: string; - packetAckSequences?: (string | number | import("long").Long)[]; - }): _117.QueryUnreceivedAcksRequest; - }; - QueryUnreceivedAcksResponse: { - encode(message: _117.QueryUnreceivedAcksResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryUnreceivedAcksResponse; - fromPartial(object: { - sequences?: (string | number | import("long").Long)[]; - height?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - }): _117.QueryUnreceivedAcksResponse; - }; - QueryNextSequenceReceiveRequest: { - encode(message: _117.QueryNextSequenceReceiveRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryNextSequenceReceiveRequest; - fromPartial(object: { - portId?: string; - channelId?: string; - }): _117.QueryNextSequenceReceiveRequest; - }; - QueryNextSequenceReceiveResponse: { - encode(message: _117.QueryNextSequenceReceiveResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _117.QueryNextSequenceReceiveResponse; - fromPartial(object: { - nextSequenceReceive?: string | number | import("long").Long; - proof?: Uint8Array; - proofHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - }): _117.QueryNextSequenceReceiveResponse; - }; - GenesisState: { - encode(message: _116.GenesisState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _116.GenesisState; - fromPartial(object: { - channels?: { - state?: _115.State; - ordering?: _115.Order; - counterparty?: { - portId?: string; - channelId?: string; - }; - connectionHops?: string[]; - version?: string; - portId?: string; - channelId?: string; - }[]; - acknowledgements?: { - portId?: string; - channelId?: string; - sequence?: string | number | import("long").Long; - data?: Uint8Array; - }[]; - commitments?: { - portId?: string; - channelId?: string; - sequence?: string | number | import("long").Long; - data?: Uint8Array; - }[]; - receipts?: { - portId?: string; - channelId?: string; - sequence?: string | number | import("long").Long; - data?: Uint8Array; - }[]; - sendSequences?: { - portId?: string; - channelId?: string; - sequence?: string | number | import("long").Long; - }[]; - recvSequences?: { - portId?: string; - channelId?: string; - sequence?: string | number | import("long").Long; - }[]; - ackSequences?: { - portId?: string; - channelId?: string; - sequence?: string | number | import("long").Long; - }[]; - nextChannelSequence?: string | number | import("long").Long; - }): _116.GenesisState; - }; - PacketSequence: { - encode(message: _116.PacketSequence, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _116.PacketSequence; - fromPartial(object: { - portId?: string; - channelId?: string; - sequence?: string | number | import("long").Long; - }): _116.PacketSequence; - }; - stateFromJSON(object: any): _115.State; - stateToJSON(object: _115.State): string; - orderFromJSON(object: any): _115.Order; - orderToJSON(object: _115.Order): string; - State: typeof _115.State; - StateSDKType: typeof _115.State; - Order: typeof _115.Order; - OrderSDKType: typeof _115.Order; - Channel: { - encode(message: _115.Channel, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _115.Channel; - fromPartial(object: { - state?: _115.State; - ordering?: _115.Order; - counterparty?: { - portId?: string; - channelId?: string; - }; - connectionHops?: string[]; - version?: string; - }): _115.Channel; - }; - IdentifiedChannel: { - encode(message: _115.IdentifiedChannel, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _115.IdentifiedChannel; - fromPartial(object: { - state?: _115.State; - ordering?: _115.Order; - counterparty?: { - portId?: string; - channelId?: string; - }; - connectionHops?: string[]; - version?: string; - portId?: string; - channelId?: string; - }): _115.IdentifiedChannel; - }; - Counterparty: { - encode(message: _115.Counterparty, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _115.Counterparty; - fromPartial(object: { - portId?: string; - channelId?: string; - }): _115.Counterparty; - }; - Packet: { - encode(message: _115.Packet, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _115.Packet; - fromPartial(object: { - sequence?: string | number | import("long").Long; - sourcePort?: string; - sourceChannel?: string; - destinationPort?: string; - destinationChannel?: string; - data?: Uint8Array; - timeoutHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - timeoutTimestamp?: string | number | import("long").Long; - }): _115.Packet; - }; - PacketState: { - encode(message: _115.PacketState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _115.PacketState; - fromPartial(object: { - portId?: string; - channelId?: string; - sequence?: string | number | import("long").Long; - data?: Uint8Array; - }): _115.PacketState; - }; - Acknowledgement: { - encode(message: _115.Acknowledgement, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _115.Acknowledgement; - fromPartial(object: { - result?: Uint8Array; - error?: string; - }): _115.Acknowledgement; - }; - }; - } - namespace client { - const v1: { - MsgClientImpl: typeof _208.MsgClientImpl; - QueryClientImpl: typeof _203.QueryClientImpl; - createRpcQueryExtension: (base: import("@cosmjs/stargate").QueryClient) => { - clientState(request: _121.QueryClientStateRequest): Promise<_121.QueryClientStateResponse>; - clientStates(request?: _121.QueryClientStatesRequest): Promise<_121.QueryClientStatesResponse>; - consensusState(request: _121.QueryConsensusStateRequest): Promise<_121.QueryConsensusStateResponse>; - consensusStates(request: _121.QueryConsensusStatesRequest): Promise<_121.QueryConsensusStatesResponse>; - clientStatus(request: _121.QueryClientStatusRequest): Promise<_121.QueryClientStatusResponse>; - clientParams(request?: _121.QueryClientParamsRequest): Promise<_121.QueryClientParamsResponse>; - upgradedClientState(request?: _121.QueryUpgradedClientStateRequest): Promise<_121.QueryUpgradedClientStateResponse>; - upgradedConsensusState(request?: _121.QueryUpgradedConsensusStateRequest): Promise<_121.QueryUpgradedConsensusStateResponse>; - }; - LCDQueryClient: typeof _199.LCDQueryClient; - MsgCreateClient: { - encode(message: _122.MsgCreateClient, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _122.MsgCreateClient; - fromPartial(object: { - clientState?: { - typeUrl?: string; - value?: Uint8Array; - }; - consensusState?: { - typeUrl?: string; - value?: Uint8Array; - }; - signer?: string; - }): _122.MsgCreateClient; - }; - MsgCreateClientResponse: { - encode(_: _122.MsgCreateClientResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _122.MsgCreateClientResponse; - fromPartial(_: {}): _122.MsgCreateClientResponse; - }; - MsgUpdateClient: { - encode(message: _122.MsgUpdateClient, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _122.MsgUpdateClient; - fromPartial(object: { - clientId?: string; - header?: { - typeUrl?: string; - value?: Uint8Array; - }; - signer?: string; - }): _122.MsgUpdateClient; - }; - MsgUpdateClientResponse: { - encode(_: _122.MsgUpdateClientResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _122.MsgUpdateClientResponse; - fromPartial(_: {}): _122.MsgUpdateClientResponse; - }; - MsgUpgradeClient: { - encode(message: _122.MsgUpgradeClient, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _122.MsgUpgradeClient; - fromPartial(object: { - clientId?: string; - clientState?: { - typeUrl?: string; - value?: Uint8Array; - }; - consensusState?: { - typeUrl?: string; - value?: Uint8Array; - }; - proofUpgradeClient?: Uint8Array; - proofUpgradeConsensusState?: Uint8Array; - signer?: string; - }): _122.MsgUpgradeClient; - }; - MsgUpgradeClientResponse: { - encode(_: _122.MsgUpgradeClientResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _122.MsgUpgradeClientResponse; - fromPartial(_: {}): _122.MsgUpgradeClientResponse; - }; - MsgSubmitMisbehaviour: { - encode(message: _122.MsgSubmitMisbehaviour, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _122.MsgSubmitMisbehaviour; - fromPartial(object: { - clientId?: string; - misbehaviour?: { - typeUrl?: string; - value?: Uint8Array; - }; - signer?: string; - }): _122.MsgSubmitMisbehaviour; - }; - MsgSubmitMisbehaviourResponse: { - encode(_: _122.MsgSubmitMisbehaviourResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _122.MsgSubmitMisbehaviourResponse; - fromPartial(_: {}): _122.MsgSubmitMisbehaviourResponse; - }; - QueryClientStateRequest: { - encode(message: _121.QueryClientStateRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _121.QueryClientStateRequest; - fromPartial(object: { - clientId?: string; - }): _121.QueryClientStateRequest; - }; - QueryClientStateResponse: { - encode(message: _121.QueryClientStateResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _121.QueryClientStateResponse; - fromPartial(object: { - clientState?: { - typeUrl?: string; - value?: Uint8Array; - }; - proof?: Uint8Array; - proofHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - }): _121.QueryClientStateResponse; - }; - QueryClientStatesRequest: { - encode(message: _121.QueryClientStatesRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _121.QueryClientStatesRequest; - fromPartial(object: { - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _121.QueryClientStatesRequest; - }; - QueryClientStatesResponse: { - encode(message: _121.QueryClientStatesResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _121.QueryClientStatesResponse; - fromPartial(object: { - clientStates?: { - clientId?: string; - clientState?: { - typeUrl?: string; - value?: Uint8Array; - }; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _121.QueryClientStatesResponse; - }; - QueryConsensusStateRequest: { - encode(message: _121.QueryConsensusStateRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _121.QueryConsensusStateRequest; - fromPartial(object: { - clientId?: string; - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - latestHeight?: boolean; - }): _121.QueryConsensusStateRequest; - }; - QueryConsensusStateResponse: { - encode(message: _121.QueryConsensusStateResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _121.QueryConsensusStateResponse; - fromPartial(object: { - consensusState?: { - typeUrl?: string; - value?: Uint8Array; - }; - proof?: Uint8Array; - proofHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - }): _121.QueryConsensusStateResponse; - }; - QueryConsensusStatesRequest: { - encode(message: _121.QueryConsensusStatesRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _121.QueryConsensusStatesRequest; - fromPartial(object: { - clientId?: string; - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _121.QueryConsensusStatesRequest; - }; - QueryConsensusStatesResponse: { - encode(message: _121.QueryConsensusStatesResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _121.QueryConsensusStatesResponse; - fromPartial(object: { - consensusStates?: { - height?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - consensusState?: { - typeUrl?: string; - value?: Uint8Array; - }; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - }): _121.QueryConsensusStatesResponse; - }; - QueryClientStatusRequest: { - encode(message: _121.QueryClientStatusRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _121.QueryClientStatusRequest; - fromPartial(object: { - clientId?: string; - }): _121.QueryClientStatusRequest; - }; - QueryClientStatusResponse: { - encode(message: _121.QueryClientStatusResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _121.QueryClientStatusResponse; - fromPartial(object: { - status?: string; - }): _121.QueryClientStatusResponse; - }; - QueryClientParamsRequest: { - encode(_: _121.QueryClientParamsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _121.QueryClientParamsRequest; - fromPartial(_: {}): _121.QueryClientParamsRequest; - }; - QueryClientParamsResponse: { - encode(message: _121.QueryClientParamsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _121.QueryClientParamsResponse; - fromPartial(object: { - params?: { - allowedClients?: string[]; - }; - }): _121.QueryClientParamsResponse; - }; - QueryUpgradedClientStateRequest: { - encode(_: _121.QueryUpgradedClientStateRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _121.QueryUpgradedClientStateRequest; - fromPartial(_: {}): _121.QueryUpgradedClientStateRequest; - }; - QueryUpgradedClientStateResponse: { - encode(message: _121.QueryUpgradedClientStateResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _121.QueryUpgradedClientStateResponse; - fromPartial(object: { - upgradedClientState?: { - typeUrl?: string; - value?: Uint8Array; - }; - }): _121.QueryUpgradedClientStateResponse; - }; - QueryUpgradedConsensusStateRequest: { - encode(_: _121.QueryUpgradedConsensusStateRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _121.QueryUpgradedConsensusStateRequest; - fromPartial(_: {}): _121.QueryUpgradedConsensusStateRequest; - }; - QueryUpgradedConsensusStateResponse: { - encode(message: _121.QueryUpgradedConsensusStateResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _121.QueryUpgradedConsensusStateResponse; - fromPartial(object: { - upgradedConsensusState?: { - typeUrl?: string; - value?: Uint8Array; - }; - }): _121.QueryUpgradedConsensusStateResponse; - }; - GenesisState: { - encode(message: _120.GenesisState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _120.GenesisState; - fromPartial(object: { - clients?: { - clientId?: string; - clientState?: { - typeUrl?: string; - value?: Uint8Array; - }; - }[]; - clientsConsensus?: { - clientId?: string; - consensusStates?: { - height?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - consensusState?: { - typeUrl?: string; - value?: Uint8Array; - }; - }[]; - }[]; - clientsMetadata?: { - clientId?: string; - clientMetadata?: { - key?: Uint8Array; - value?: Uint8Array; - }[]; - }[]; - params?: { - allowedClients?: string[]; - }; - createLocalhost?: boolean; - nextClientSequence?: string | number | import("long").Long; - }): _120.GenesisState; - }; - GenesisMetadata: { - encode(message: _120.GenesisMetadata, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _120.GenesisMetadata; - fromPartial(object: { - key?: Uint8Array; - value?: Uint8Array; - }): _120.GenesisMetadata; - }; - IdentifiedGenesisMetadata: { - encode(message: _120.IdentifiedGenesisMetadata, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _120.IdentifiedGenesisMetadata; - fromPartial(object: { - clientId?: string; - clientMetadata?: { - key?: Uint8Array; - value?: Uint8Array; - }[]; - }): _120.IdentifiedGenesisMetadata; - }; - IdentifiedClientState: { - encode(message: _119.IdentifiedClientState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _119.IdentifiedClientState; - fromPartial(object: { - clientId?: string; - clientState?: { - typeUrl?: string; - value?: Uint8Array; - }; - }): _119.IdentifiedClientState; - }; - ConsensusStateWithHeight: { - encode(message: _119.ConsensusStateWithHeight, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _119.ConsensusStateWithHeight; - fromPartial(object: { - height?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - consensusState?: { - typeUrl?: string; - value?: Uint8Array; - }; - }): _119.ConsensusStateWithHeight; - }; - ClientConsensusStates: { - encode(message: _119.ClientConsensusStates, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _119.ClientConsensusStates; - fromPartial(object: { - clientId?: string; - consensusStates?: { - height?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - consensusState?: { - typeUrl?: string; - value?: Uint8Array; - }; - }[]; - }): _119.ClientConsensusStates; - }; - ClientUpdateProposal: { - encode(message: _119.ClientUpdateProposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _119.ClientUpdateProposal; - fromPartial(object: { - title?: string; - description?: string; - subjectClientId?: string; - substituteClientId?: string; - }): _119.ClientUpdateProposal; - }; - UpgradeProposal: { - encode(message: _119.UpgradeProposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _119.UpgradeProposal; - fromPartial(object: { - title?: string; - description?: string; - plan?: { - name?: string; - time?: Date; - height?: string | number | import("long").Long; - info?: string; - upgradedClientState?: { - typeUrl?: string; - value?: Uint8Array; - }; - }; - upgradedClientState?: { - typeUrl?: string; - value?: Uint8Array; - }; - }): _119.UpgradeProposal; - }; - Height: { - encode(message: _119.Height, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _119.Height; - fromPartial(object: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }): _119.Height; - }; - Params: { - encode(message: _119.Params, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _119.Params; - fromPartial(object: { - allowedClients?: string[]; - }): _119.Params; - }; - }; - } - namespace commitment { - const v1: { - MerkleRoot: { - encode(message: _123.MerkleRoot, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _123.MerkleRoot; - fromPartial(object: { - hash?: Uint8Array; - }): _123.MerkleRoot; - }; - MerklePrefix: { - encode(message: _123.MerklePrefix, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _123.MerklePrefix; - fromPartial(object: { - keyPrefix?: Uint8Array; - }): _123.MerklePrefix; - }; - MerklePath: { - encode(message: _123.MerklePath, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _123.MerklePath; - fromPartial(object: { - keyPath?: string[]; - }): _123.MerklePath; - }; - MerkleProof: { - encode(message: _123.MerkleProof, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _123.MerkleProof; - fromPartial(object: { - proofs?: { - exist?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: import("../confio/proofs").HashOp; - prehashKey?: import("../confio/proofs").HashOp; - prehashValue?: import("../confio/proofs").HashOp; - length?: import("../confio/proofs").LengthOp; - prefix?: Uint8Array; - }; - path?: { - hash?: import("../confio/proofs").HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }[]; - }; - nonexist?: { - key?: Uint8Array; - left?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: import("../confio/proofs").HashOp; - prehashKey?: import("../confio/proofs").HashOp; - prehashValue?: import("../confio/proofs").HashOp; - length?: import("../confio/proofs").LengthOp; - prefix?: Uint8Array; - }; - path?: { - hash?: import("../confio/proofs").HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }[]; - }; - right?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: import("../confio/proofs").HashOp; - prehashKey?: import("../confio/proofs").HashOp; - prehashValue?: import("../confio/proofs").HashOp; - length?: import("../confio/proofs").LengthOp; - prefix?: Uint8Array; - }; - path?: { - hash?: import("../confio/proofs").HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }[]; - }; - }; - batch?: { - entries?: { - exist?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: import("../confio/proofs").HashOp; - prehashKey?: import("../confio/proofs").HashOp; - prehashValue?: import("../confio/proofs").HashOp; - length?: import("../confio/proofs").LengthOp; - prefix?: Uint8Array; - }; - path?: { - hash?: import("../confio/proofs").HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }[]; - }; - nonexist?: { - key?: Uint8Array; - left?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: import("../confio/proofs").HashOp; - prehashKey?: import("../confio/proofs").HashOp; - prehashValue?: import("../confio/proofs").HashOp; - length?: import("../confio/proofs").LengthOp; - prefix?: Uint8Array; - }; - path?: { - hash?: import("../confio/proofs").HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }[]; - }; - right?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: import("../confio/proofs").HashOp; - prehashKey?: import("../confio/proofs").HashOp; - prehashValue?: import("../confio/proofs").HashOp; - length?: import("../confio/proofs").LengthOp; - prefix?: Uint8Array; - }; - path?: { - hash?: import("../confio/proofs").HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }[]; - }; - }; - }[]; - }; - compressed?: { - entries?: { - exist?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: import("../confio/proofs").HashOp; - prehashKey?: import("../confio/proofs").HashOp; - prehashValue?: import("../confio/proofs").HashOp; - length?: import("../confio/proofs").LengthOp; - prefix?: Uint8Array; - }; - path?: number[]; - }; - nonexist?: { - key?: Uint8Array; - left?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: import("../confio/proofs").HashOp; - prehashKey?: import("../confio/proofs").HashOp; - prehashValue?: import("../confio/proofs").HashOp; - length?: import("../confio/proofs").LengthOp; - prefix?: Uint8Array; - }; - path?: number[]; - }; - right?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: import("../confio/proofs").HashOp; - prehashKey?: import("../confio/proofs").HashOp; - prehashValue?: import("../confio/proofs").HashOp; - length?: import("../confio/proofs").LengthOp; - prefix?: Uint8Array; - }; - path?: number[]; - }; - }; - }[]; - lookupInners?: { - hash?: import("../confio/proofs").HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }[]; - }; - }[]; - }): _123.MerkleProof; - }; - }; - } - namespace connection { - const v1: { - MsgClientImpl: typeof _209.MsgClientImpl; - QueryClientImpl: typeof _204.QueryClientImpl; - createRpcQueryExtension: (base: import("@cosmjs/stargate").QueryClient) => { - connection(request: _126.QueryConnectionRequest): Promise<_126.QueryConnectionResponse>; - connections(request?: _126.QueryConnectionsRequest): Promise<_126.QueryConnectionsResponse>; - clientConnections(request: _126.QueryClientConnectionsRequest): Promise<_126.QueryClientConnectionsResponse>; - connectionClientState(request: _126.QueryConnectionClientStateRequest): Promise<_126.QueryConnectionClientStateResponse>; - connectionConsensusState(request: _126.QueryConnectionConsensusStateRequest): Promise<_126.QueryConnectionConsensusStateResponse>; - }; - LCDQueryClient: typeof _200.LCDQueryClient; - MsgConnectionOpenInit: { - encode(message: _127.MsgConnectionOpenInit, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _127.MsgConnectionOpenInit; - fromPartial(object: { - clientId?: string; - counterparty?: { - clientId?: string; - connectionId?: string; - prefix?: { - keyPrefix?: Uint8Array; - }; - }; - version?: { - identifier?: string; - features?: string[]; - }; - delayPeriod?: string | number | import("long").Long; - signer?: string; - }): _127.MsgConnectionOpenInit; - }; - MsgConnectionOpenInitResponse: { - encode(_: _127.MsgConnectionOpenInitResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _127.MsgConnectionOpenInitResponse; - fromPartial(_: {}): _127.MsgConnectionOpenInitResponse; - }; - MsgConnectionOpenTry: { - encode(message: _127.MsgConnectionOpenTry, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _127.MsgConnectionOpenTry; - fromPartial(object: { - clientId?: string; - previousConnectionId?: string; - clientState?: { - typeUrl?: string; - value?: Uint8Array; - }; - counterparty?: { - clientId?: string; - connectionId?: string; - prefix?: { - keyPrefix?: Uint8Array; - }; - }; - delayPeriod?: string | number | import("long").Long; - counterpartyVersions?: { - identifier?: string; - features?: string[]; - }[]; - proofHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - proofInit?: Uint8Array; - proofClient?: Uint8Array; - proofConsensus?: Uint8Array; - consensusHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - signer?: string; - }): _127.MsgConnectionOpenTry; - }; - MsgConnectionOpenTryResponse: { - encode(_: _127.MsgConnectionOpenTryResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _127.MsgConnectionOpenTryResponse; - fromPartial(_: {}): _127.MsgConnectionOpenTryResponse; - }; - MsgConnectionOpenAck: { - encode(message: _127.MsgConnectionOpenAck, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _127.MsgConnectionOpenAck; - fromPartial(object: { - connectionId?: string; - counterpartyConnectionId?: string; - version?: { - identifier?: string; - features?: string[]; - }; - clientState?: { - typeUrl?: string; - value?: Uint8Array; - }; - proofHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - proofTry?: Uint8Array; - proofClient?: Uint8Array; - proofConsensus?: Uint8Array; - consensusHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - signer?: string; - }): _127.MsgConnectionOpenAck; - }; - MsgConnectionOpenAckResponse: { - encode(_: _127.MsgConnectionOpenAckResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _127.MsgConnectionOpenAckResponse; - fromPartial(_: {}): _127.MsgConnectionOpenAckResponse; - }; - MsgConnectionOpenConfirm: { - encode(message: _127.MsgConnectionOpenConfirm, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _127.MsgConnectionOpenConfirm; - fromPartial(object: { - connectionId?: string; - proofAck?: Uint8Array; - proofHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - signer?: string; - }): _127.MsgConnectionOpenConfirm; - }; - MsgConnectionOpenConfirmResponse: { - encode(_: _127.MsgConnectionOpenConfirmResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _127.MsgConnectionOpenConfirmResponse; - fromPartial(_: {}): _127.MsgConnectionOpenConfirmResponse; - }; - QueryConnectionRequest: { - encode(message: _126.QueryConnectionRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _126.QueryConnectionRequest; - fromPartial(object: { - connectionId?: string; - }): _126.QueryConnectionRequest; - }; - QueryConnectionResponse: { - encode(message: _126.QueryConnectionResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _126.QueryConnectionResponse; - fromPartial(object: { - connection?: { - clientId?: string; - versions?: { - identifier?: string; - features?: string[]; - }[]; - state?: _124.State; - counterparty?: { - clientId?: string; - connectionId?: string; - prefix?: { - keyPrefix?: Uint8Array; - }; - }; - delayPeriod?: string | number | import("long").Long; - }; - proof?: Uint8Array; - proofHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - }): _126.QueryConnectionResponse; - }; - QueryConnectionsRequest: { - encode(message: _126.QueryConnectionsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _126.QueryConnectionsRequest; - fromPartial(object: { - pagination?: { - key?: Uint8Array; - offset?: string | number | import("long").Long; - limit?: string | number | import("long").Long; - countTotal?: boolean; - reverse?: boolean; - }; - }): _126.QueryConnectionsRequest; - }; - QueryConnectionsResponse: { - encode(message: _126.QueryConnectionsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _126.QueryConnectionsResponse; - fromPartial(object: { - connections?: { - id?: string; - clientId?: string; - versions?: { - identifier?: string; - features?: string[]; - }[]; - state?: _124.State; - counterparty?: { - clientId?: string; - connectionId?: string; - prefix?: { - keyPrefix?: Uint8Array; - }; - }; - delayPeriod?: string | number | import("long").Long; - }[]; - pagination?: { - nextKey?: Uint8Array; - total?: string | number | import("long").Long; - }; - height?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - }): _126.QueryConnectionsResponse; - }; - QueryClientConnectionsRequest: { - encode(message: _126.QueryClientConnectionsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _126.QueryClientConnectionsRequest; - fromPartial(object: { - clientId?: string; - }): _126.QueryClientConnectionsRequest; - }; - QueryClientConnectionsResponse: { - encode(message: _126.QueryClientConnectionsResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _126.QueryClientConnectionsResponse; - fromPartial(object: { - connectionPaths?: string[]; - proof?: Uint8Array; - proofHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - }): _126.QueryClientConnectionsResponse; - }; - QueryConnectionClientStateRequest: { - encode(message: _126.QueryConnectionClientStateRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _126.QueryConnectionClientStateRequest; - fromPartial(object: { - connectionId?: string; - }): _126.QueryConnectionClientStateRequest; - }; - QueryConnectionClientStateResponse: { - encode(message: _126.QueryConnectionClientStateResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _126.QueryConnectionClientStateResponse; - fromPartial(object: { - identifiedClientState?: { - clientId?: string; - clientState?: { - typeUrl?: string; - value?: Uint8Array; - }; - }; - proof?: Uint8Array; - proofHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - }): _126.QueryConnectionClientStateResponse; - }; - QueryConnectionConsensusStateRequest: { - encode(message: _126.QueryConnectionConsensusStateRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _126.QueryConnectionConsensusStateRequest; - fromPartial(object: { - connectionId?: string; - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }): _126.QueryConnectionConsensusStateRequest; - }; - QueryConnectionConsensusStateResponse: { - encode(message: _126.QueryConnectionConsensusStateResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _126.QueryConnectionConsensusStateResponse; - fromPartial(object: { - consensusState?: { - typeUrl?: string; - value?: Uint8Array; - }; - clientId?: string; - proof?: Uint8Array; - proofHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - }): _126.QueryConnectionConsensusStateResponse; - }; - GenesisState: { - encode(message: _125.GenesisState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _125.GenesisState; - fromPartial(object: { - connections?: { - id?: string; - clientId?: string; - versions?: { - identifier?: string; - features?: string[]; - }[]; - state?: _124.State; - counterparty?: { - clientId?: string; - connectionId?: string; - prefix?: { - keyPrefix?: Uint8Array; - }; - }; - delayPeriod?: string | number | import("long").Long; - }[]; - clientConnectionPaths?: { - clientId?: string; - paths?: string[]; - }[]; - nextConnectionSequence?: string | number | import("long").Long; - params?: { - maxExpectedTimePerBlock?: string | number | import("long").Long; - }; - }): _125.GenesisState; - }; - stateFromJSON(object: any): _124.State; - stateToJSON(object: _124.State): string; - State: typeof _124.State; - StateSDKType: typeof _124.State; - ConnectionEnd: { - encode(message: _124.ConnectionEnd, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _124.ConnectionEnd; - fromPartial(object: { - clientId?: string; - versions?: { - identifier?: string; - features?: string[]; - }[]; - state?: _124.State; - counterparty?: { - clientId?: string; - connectionId?: string; - prefix?: { - keyPrefix?: Uint8Array; - }; - }; - delayPeriod?: string | number | import("long").Long; - }): _124.ConnectionEnd; - }; - IdentifiedConnection: { - encode(message: _124.IdentifiedConnection, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _124.IdentifiedConnection; - fromPartial(object: { - id?: string; - clientId?: string; - versions?: { - identifier?: string; - features?: string[]; - }[]; - state?: _124.State; - counterparty?: { - clientId?: string; - connectionId?: string; - prefix?: { - keyPrefix?: Uint8Array; - }; - }; - delayPeriod?: string | number | import("long").Long; - }): _124.IdentifiedConnection; - }; - Counterparty: { - encode(message: _124.Counterparty, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _124.Counterparty; - fromPartial(object: { - clientId?: string; - connectionId?: string; - prefix?: { - keyPrefix?: Uint8Array; - }; - }): _124.Counterparty; - }; - ClientPaths: { - encode(message: _124.ClientPaths, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _124.ClientPaths; - fromPartial(object: { - paths?: string[]; - }): _124.ClientPaths; - }; - ConnectionPaths: { - encode(message: _124.ConnectionPaths, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _124.ConnectionPaths; - fromPartial(object: { - clientId?: string; - paths?: string[]; - }): _124.ConnectionPaths; - }; - Version: { - encode(message: _124.Version, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _124.Version; - fromPartial(object: { - identifier?: string; - features?: string[]; - }): _124.Version; - }; - Params: { - encode(message: _124.Params, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _124.Params; - fromPartial(object: { - maxExpectedTimePerBlock?: string | number | import("long").Long; - }): _124.Params; - }; - }; - } - namespace port { - const v1: { - QueryClientImpl: typeof _205.QueryClientImpl; - createRpcQueryExtension: (base: import("@cosmjs/stargate").QueryClient) => { - appVersion(request: _128.QueryAppVersionRequest): Promise<_128.QueryAppVersionResponse>; - }; - QueryAppVersionRequest: { - encode(message: _128.QueryAppVersionRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _128.QueryAppVersionRequest; - fromPartial(object: { - portId?: string; - connectionId?: string; - ordering?: _115.Order; - counterparty?: { - portId?: string; - channelId?: string; - }; - proposedVersion?: string; - }): _128.QueryAppVersionRequest; - }; - QueryAppVersionResponse: { - encode(message: _128.QueryAppVersionResponse, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _128.QueryAppVersionResponse; - fromPartial(object: { - portId?: string; - version?: string; - }): _128.QueryAppVersionResponse; - }; - }; - } - namespace types { - const v1: { - GenesisState: { - encode(message: _129.GenesisState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _129.GenesisState; - fromPartial(object: { - clientGenesis?: { - clients?: { - clientId?: string; - clientState?: { - typeUrl?: string; - value?: Uint8Array; - }; - }[]; - clientsConsensus?: { - clientId?: string; - consensusStates?: { - height?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - consensusState?: { - typeUrl?: string; - value?: Uint8Array; - }; - }[]; - }[]; - clientsMetadata?: { - clientId?: string; - clientMetadata?: { - key?: Uint8Array; - value?: Uint8Array; - }[]; - }[]; - params?: { - allowedClients?: string[]; - }; - createLocalhost?: boolean; - nextClientSequence?: string | number | import("long").Long; - }; - connectionGenesis?: { - connections?: { - id?: string; - clientId?: string; - versions?: { - identifier?: string; - features?: string[]; - }[]; - state?: _124.State; - counterparty?: { - clientId?: string; - connectionId?: string; - prefix?: { - keyPrefix?: Uint8Array; - }; - }; - delayPeriod?: string | number | import("long").Long; - }[]; - clientConnectionPaths?: { - clientId?: string; - paths?: string[]; - }[]; - nextConnectionSequence?: string | number | import("long").Long; - params?: { - maxExpectedTimePerBlock?: string | number | import("long").Long; - }; - }; - channelGenesis?: { - channels?: { - state?: _115.State; - ordering?: _115.Order; - counterparty?: { - portId?: string; - channelId?: string; - }; - connectionHops?: string[]; - version?: string; - portId?: string; - channelId?: string; - }[]; - acknowledgements?: { - portId?: string; - channelId?: string; - sequence?: string | number | import("long").Long; - data?: Uint8Array; - }[]; - commitments?: { - portId?: string; - channelId?: string; - sequence?: string | number | import("long").Long; - data?: Uint8Array; - }[]; - receipts?: { - portId?: string; - channelId?: string; - sequence?: string | number | import("long").Long; - data?: Uint8Array; - }[]; - sendSequences?: { - portId?: string; - channelId?: string; - sequence?: string | number | import("long").Long; - }[]; - recvSequences?: { - portId?: string; - channelId?: string; - sequence?: string | number | import("long").Long; - }[]; - ackSequences?: { - portId?: string; - channelId?: string; - sequence?: string | number | import("long").Long; - }[]; - nextChannelSequence?: string | number | import("long").Long; - }; - }): _129.GenesisState; - }; - }; - } - } - namespace lightclients { - namespace localhost { - const v1: { - ClientState: { - encode(message: _130.ClientState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _130.ClientState; - fromPartial(object: { - chainId?: string; - height?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - }): _130.ClientState; - }; - }; - } - namespace solomachine { - const v1: { - dataTypeFromJSON(object: any): _131.DataType; - dataTypeToJSON(object: _131.DataType): string; - DataType: typeof _131.DataType; - DataTypeSDKType: typeof _131.DataType; - ClientState: { - encode(message: _131.ClientState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _131.ClientState; - fromPartial(object: { - sequence?: string | number | import("long").Long; - frozenSequence?: string | number | import("long").Long; - consensusState?: { - publicKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - diversifier?: string; - timestamp?: string | number | import("long").Long; - }; - allowUpdateAfterProposal?: boolean; - }): _131.ClientState; - }; - ConsensusState: { - encode(message: _131.ConsensusState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _131.ConsensusState; - fromPartial(object: { - publicKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - diversifier?: string; - timestamp?: string | number | import("long").Long; - }): _131.ConsensusState; - }; - Header: { - encode(message: _131.Header, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _131.Header; - fromPartial(object: { - sequence?: string | number | import("long").Long; - timestamp?: string | number | import("long").Long; - signature?: Uint8Array; - newPublicKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - newDiversifier?: string; - }): _131.Header; - }; - Misbehaviour: { - encode(message: _131.Misbehaviour, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _131.Misbehaviour; - fromPartial(object: { - clientId?: string; - sequence?: string | number | import("long").Long; - signatureOne?: { - signature?: Uint8Array; - dataType?: _131.DataType; - data?: Uint8Array; - timestamp?: string | number | import("long").Long; - }; - signatureTwo?: { - signature?: Uint8Array; - dataType?: _131.DataType; - data?: Uint8Array; - timestamp?: string | number | import("long").Long; - }; - }): _131.Misbehaviour; - }; - SignatureAndData: { - encode(message: _131.SignatureAndData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _131.SignatureAndData; - fromPartial(object: { - signature?: Uint8Array; - dataType?: _131.DataType; - data?: Uint8Array; - timestamp?: string | number | import("long").Long; - }): _131.SignatureAndData; - }; - TimestampedSignatureData: { - encode(message: _131.TimestampedSignatureData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _131.TimestampedSignatureData; - fromPartial(object: { - signatureData?: Uint8Array; - timestamp?: string | number | import("long").Long; - }): _131.TimestampedSignatureData; - }; - SignBytes: { - encode(message: _131.SignBytes, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _131.SignBytes; - fromPartial(object: { - sequence?: string | number | import("long").Long; - timestamp?: string | number | import("long").Long; - diversifier?: string; - dataType?: _131.DataType; - data?: Uint8Array; - }): _131.SignBytes; - }; - HeaderData: { - encode(message: _131.HeaderData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _131.HeaderData; - fromPartial(object: { - newPubKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - newDiversifier?: string; - }): _131.HeaderData; - }; - ClientStateData: { - encode(message: _131.ClientStateData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _131.ClientStateData; - fromPartial(object: { - path?: Uint8Array; - clientState?: { - typeUrl?: string; - value?: Uint8Array; - }; - }): _131.ClientStateData; - }; - ConsensusStateData: { - encode(message: _131.ConsensusStateData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _131.ConsensusStateData; - fromPartial(object: { - path?: Uint8Array; - consensusState?: { - typeUrl?: string; - value?: Uint8Array; - }; - }): _131.ConsensusStateData; - }; - ConnectionStateData: { - encode(message: _131.ConnectionStateData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _131.ConnectionStateData; - fromPartial(object: { - path?: Uint8Array; - connection?: { - clientId?: string; - versions?: { - identifier?: string; - features?: string[]; - }[]; - state?: _124.State; - counterparty?: { - clientId?: string; - connectionId?: string; - prefix?: { - keyPrefix?: Uint8Array; - }; - }; - delayPeriod?: string | number | import("long").Long; - }; - }): _131.ConnectionStateData; - }; - ChannelStateData: { - encode(message: _131.ChannelStateData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _131.ChannelStateData; - fromPartial(object: { - path?: Uint8Array; - channel?: { - state?: _115.State; - ordering?: _115.Order; - counterparty?: { - portId?: string; - channelId?: string; - }; - connectionHops?: string[]; - version?: string; - }; - }): _131.ChannelStateData; - }; - PacketCommitmentData: { - encode(message: _131.PacketCommitmentData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _131.PacketCommitmentData; - fromPartial(object: { - path?: Uint8Array; - commitment?: Uint8Array; - }): _131.PacketCommitmentData; - }; - PacketAcknowledgementData: { - encode(message: _131.PacketAcknowledgementData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _131.PacketAcknowledgementData; - fromPartial(object: { - path?: Uint8Array; - acknowledgement?: Uint8Array; - }): _131.PacketAcknowledgementData; - }; - PacketReceiptAbsenceData: { - encode(message: _131.PacketReceiptAbsenceData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _131.PacketReceiptAbsenceData; - fromPartial(object: { - path?: Uint8Array; - }): _131.PacketReceiptAbsenceData; - }; - NextSequenceRecvData: { - encode(message: _131.NextSequenceRecvData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _131.NextSequenceRecvData; - fromPartial(object: { - path?: Uint8Array; - nextSeqRecv?: string | number | import("long").Long; - }): _131.NextSequenceRecvData; - }; - }; - const v2: { - dataTypeFromJSON(object: any): _132.DataType; - dataTypeToJSON(object: _132.DataType): string; - DataType: typeof _132.DataType; - DataTypeSDKType: typeof _132.DataType; - ClientState: { - encode(message: _132.ClientState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _132.ClientState; - fromPartial(object: { - sequence?: string | number | import("long").Long; - isFrozen?: boolean; - consensusState?: { - publicKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - diversifier?: string; - timestamp?: string | number | import("long").Long; - }; - allowUpdateAfterProposal?: boolean; - }): _132.ClientState; - }; - ConsensusState: { - encode(message: _132.ConsensusState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _132.ConsensusState; - fromPartial(object: { - publicKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - diversifier?: string; - timestamp?: string | number | import("long").Long; - }): _132.ConsensusState; - }; - Header: { - encode(message: _132.Header, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _132.Header; - fromPartial(object: { - sequence?: string | number | import("long").Long; - timestamp?: string | number | import("long").Long; - signature?: Uint8Array; - newPublicKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - newDiversifier?: string; - }): _132.Header; - }; - Misbehaviour: { - encode(message: _132.Misbehaviour, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _132.Misbehaviour; - fromPartial(object: { - clientId?: string; - sequence?: string | number | import("long").Long; - signatureOne?: { - signature?: Uint8Array; - dataType?: _132.DataType; - data?: Uint8Array; - timestamp?: string | number | import("long").Long; - }; - signatureTwo?: { - signature?: Uint8Array; - dataType?: _132.DataType; - data?: Uint8Array; - timestamp?: string | number | import("long").Long; - }; - }): _132.Misbehaviour; - }; - SignatureAndData: { - encode(message: _132.SignatureAndData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _132.SignatureAndData; - fromPartial(object: { - signature?: Uint8Array; - dataType?: _132.DataType; - data?: Uint8Array; - timestamp?: string | number | import("long").Long; - }): _132.SignatureAndData; - }; - TimestampedSignatureData: { - encode(message: _132.TimestampedSignatureData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _132.TimestampedSignatureData; - fromPartial(object: { - signatureData?: Uint8Array; - timestamp?: string | number | import("long").Long; - }): _132.TimestampedSignatureData; - }; - SignBytes: { - encode(message: _132.SignBytes, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _132.SignBytes; - fromPartial(object: { - sequence?: string | number | import("long").Long; - timestamp?: string | number | import("long").Long; - diversifier?: string; - dataType?: _132.DataType; - data?: Uint8Array; - }): _132.SignBytes; - }; - HeaderData: { - encode(message: _132.HeaderData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _132.HeaderData; - fromPartial(object: { - newPubKey?: { - typeUrl?: string; - value?: Uint8Array; - }; - newDiversifier?: string; - }): _132.HeaderData; - }; - ClientStateData: { - encode(message: _132.ClientStateData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _132.ClientStateData; - fromPartial(object: { - path?: Uint8Array; - clientState?: { - typeUrl?: string; - value?: Uint8Array; - }; - }): _132.ClientStateData; - }; - ConsensusStateData: { - encode(message: _132.ConsensusStateData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _132.ConsensusStateData; - fromPartial(object: { - path?: Uint8Array; - consensusState?: { - typeUrl?: string; - value?: Uint8Array; - }; - }): _132.ConsensusStateData; - }; - ConnectionStateData: { - encode(message: _132.ConnectionStateData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _132.ConnectionStateData; - fromPartial(object: { - path?: Uint8Array; - connection?: { - clientId?: string; - versions?: { - identifier?: string; - features?: string[]; - }[]; - state?: _124.State; - counterparty?: { - clientId?: string; - connectionId?: string; - prefix?: { - keyPrefix?: Uint8Array; - }; - }; - delayPeriod?: string | number | import("long").Long; - }; - }): _132.ConnectionStateData; - }; - ChannelStateData: { - encode(message: _132.ChannelStateData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _132.ChannelStateData; - fromPartial(object: { - path?: Uint8Array; - channel?: { - state?: _115.State; - ordering?: _115.Order; - counterparty?: { - portId?: string; - channelId?: string; - }; - connectionHops?: string[]; - version?: string; - }; - }): _132.ChannelStateData; - }; - PacketCommitmentData: { - encode(message: _132.PacketCommitmentData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _132.PacketCommitmentData; - fromPartial(object: { - path?: Uint8Array; - commitment?: Uint8Array; - }): _132.PacketCommitmentData; - }; - PacketAcknowledgementData: { - encode(message: _132.PacketAcknowledgementData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _132.PacketAcknowledgementData; - fromPartial(object: { - path?: Uint8Array; - acknowledgement?: Uint8Array; - }): _132.PacketAcknowledgementData; - }; - PacketReceiptAbsenceData: { - encode(message: _132.PacketReceiptAbsenceData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _132.PacketReceiptAbsenceData; - fromPartial(object: { - path?: Uint8Array; - }): _132.PacketReceiptAbsenceData; - }; - NextSequenceRecvData: { - encode(message: _132.NextSequenceRecvData, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _132.NextSequenceRecvData; - fromPartial(object: { - path?: Uint8Array; - nextSeqRecv?: string | number | import("long").Long; - }): _132.NextSequenceRecvData; - }; - }; - } - namespace tendermint { - const v1: { - ClientState: { - encode(message: _133.ClientState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _133.ClientState; - fromPartial(object: { - chainId?: string; - trustLevel?: { - numerator?: string | number | import("long").Long; - denominator?: string | number | import("long").Long; - }; - trustingPeriod?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - unbondingPeriod?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - maxClockDrift?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - frozenHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - latestHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - proofSpecs?: { - leafSpec?: { - hash?: import("../confio/proofs").HashOp; - prehashKey?: import("../confio/proofs").HashOp; - prehashValue?: import("../confio/proofs").HashOp; - length?: import("../confio/proofs").LengthOp; - prefix?: Uint8Array; - }; - innerSpec?: { - childOrder?: number[]; - childSize?: number; - minPrefixLength?: number; - maxPrefixLength?: number; - emptyChild?: Uint8Array; - hash?: import("../confio/proofs").HashOp; - }; - maxDepth?: number; - minDepth?: number; - }[]; - upgradePath?: string[]; - allowUpdateAfterExpiry?: boolean; - allowUpdateAfterMisbehaviour?: boolean; - }): _133.ClientState; - }; - ConsensusState: { - encode(message: _133.ConsensusState, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _133.ConsensusState; - fromPartial(object: { - timestamp?: Date; - root?: { - hash?: Uint8Array; - }; - nextValidatorsHash?: Uint8Array; - }): _133.ConsensusState; - }; - Misbehaviour: { - encode(message: _133.Misbehaviour, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _133.Misbehaviour; - fromPartial(object: { - clientId?: string; - header1?: { - signedHeader?: { - header?: { - version?: { - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }; - chainId?: string; - height?: string | number | import("long").Long; - time?: Date; - lastBlockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - lastCommitHash?: Uint8Array; - dataHash?: Uint8Array; - validatorsHash?: Uint8Array; - nextValidatorsHash?: Uint8Array; - consensusHash?: Uint8Array; - appHash?: Uint8Array; - lastResultsHash?: Uint8Array; - evidenceHash?: Uint8Array; - proposerAddress?: Uint8Array; - }; - commit?: { - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - signatures?: { - blockIdFlag?: import("../tendermint/types/types").BlockIDFlag; - validatorAddress?: Uint8Array; - timestamp?: Date; - signature?: Uint8Array; - }[]; - }; - }; - validatorSet?: { - validators?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }[]; - proposer?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }; - totalVotingPower?: string | number | import("long").Long; - }; - trustedHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - trustedValidators?: { - validators?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }[]; - proposer?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }; - totalVotingPower?: string | number | import("long").Long; - }; - }; - header2?: { - signedHeader?: { - header?: { - version?: { - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }; - chainId?: string; - height?: string | number | import("long").Long; - time?: Date; - lastBlockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - lastCommitHash?: Uint8Array; - dataHash?: Uint8Array; - validatorsHash?: Uint8Array; - nextValidatorsHash?: Uint8Array; - consensusHash?: Uint8Array; - appHash?: Uint8Array; - lastResultsHash?: Uint8Array; - evidenceHash?: Uint8Array; - proposerAddress?: Uint8Array; - }; - commit?: { - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - signatures?: { - blockIdFlag?: import("../tendermint/types/types").BlockIDFlag; - validatorAddress?: Uint8Array; - timestamp?: Date; - signature?: Uint8Array; - }[]; - }; - }; - validatorSet?: { - validators?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }[]; - proposer?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }; - totalVotingPower?: string | number | import("long").Long; - }; - trustedHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - trustedValidators?: { - validators?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }[]; - proposer?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }; - totalVotingPower?: string | number | import("long").Long; - }; - }; - }): _133.Misbehaviour; - }; - Header: { - encode(message: _133.Header, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _133.Header; - fromPartial(object: { - signedHeader?: { - header?: { - version?: { - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }; - chainId?: string; - height?: string | number | import("long").Long; - time?: Date; - lastBlockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - lastCommitHash?: Uint8Array; - dataHash?: Uint8Array; - validatorsHash?: Uint8Array; - nextValidatorsHash?: Uint8Array; - consensusHash?: Uint8Array; - appHash?: Uint8Array; - lastResultsHash?: Uint8Array; - evidenceHash?: Uint8Array; - proposerAddress?: Uint8Array; - }; - commit?: { - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - signatures?: { - blockIdFlag?: import("../tendermint/types/types").BlockIDFlag; - validatorAddress?: Uint8Array; - timestamp?: Date; - signature?: Uint8Array; - }[]; - }; - }; - validatorSet?: { - validators?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }[]; - proposer?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }; - totalVotingPower?: string | number | import("long").Long; - }; - trustedHeight?: { - revisionNumber?: string | number | import("long").Long; - revisionHeight?: string | number | import("long").Long; - }; - trustedValidators?: { - validators?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }[]; - proposer?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }; - totalVotingPower?: string | number | import("long").Long; - }; - }): _133.Header; - }; - Fraction: { - encode(message: _133.Fraction, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _133.Fraction; - fromPartial(object: { - numerator?: string | number | import("long").Long; - denominator?: string | number | import("long").Long; - }): _133.Fraction; - }; - }; - } - } - const ClientFactory: { - createRPCMsgClient: ({ rpc }: { - rpc: import("../helpers").Rpc; - }) => Promise<{ - cosmos: { - authz: { - v1beta1: import("../cosmos/authz/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - bank: { - v1beta1: import("../cosmos/bank/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - crisis: { - v1beta1: import("../cosmos/crisis/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - distribution: { - v1beta1: import("../cosmos/distribution/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - evidence: { - v1beta1: import("../cosmos/evidence/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - feegrant: { - v1beta1: import("../cosmos/feegrant/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - gov: { - v1: import("../cosmos/gov/v1/tx.rpc.msg").MsgClientImpl; - v1beta1: import("../cosmos/gov/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - group: { - v1: import("../cosmos/group/v1/tx.rpc.msg").MsgClientImpl; - }; - nft: { - v1beta1: import("../cosmos/nft/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - slashing: { - v1beta1: import("../cosmos/slashing/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - staking: { - v1beta1: import("../cosmos/staking/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - upgrade: { - v1beta1: import("../cosmos/upgrade/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - vesting: { - v1beta1: import("../cosmos/vesting/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - }; - ibc: { - applications: { - transfer: { - v1: _206.MsgClientImpl; - }; - }; - core: { - channel: { - v1: _207.MsgClientImpl; - }; - client: { - v1: _208.MsgClientImpl; - }; - connection: { - v1: _209.MsgClientImpl; - }; - }; - }; - }>; - createRPCQueryClient: ({ rpcEndpoint }: { - rpcEndpoint: string | import("@cosmjs/tendermint-rpc").HttpEndpoint; - }) => Promise<{ - cosmos: { - app: { - v1alpha1: { - config(request?: import("../cosmos/app/v1alpha1/query").QueryConfigRequest): Promise; - }; - }; - auth: { - v1beta1: { - accounts(request?: import("../cosmos/auth/v1beta1/query").QueryAccountsRequest): Promise; - account(request: import("../cosmos/auth/v1beta1/query").QueryAccountRequest): Promise; - params(request?: import("../cosmos/auth/v1beta1/query").QueryParamsRequest): Promise; - moduleAccounts(request?: import("../cosmos/auth/v1beta1/query").QueryModuleAccountsRequest): Promise; - bech32Prefix(request?: import("../cosmos/auth/v1beta1/query").Bech32PrefixRequest): Promise; - addressBytesToString(request: import("../cosmos/auth/v1beta1/query").AddressBytesToStringRequest): Promise; - addressStringToBytes(request: import("../cosmos/auth/v1beta1/query").AddressStringToBytesRequest): Promise; - }; - }; - authz: { - v1beta1: { - grants(request: import("../cosmos/authz/v1beta1/query").QueryGrantsRequest): Promise; - granterGrants(request: import("../cosmos/authz/v1beta1/query").QueryGranterGrantsRequest): Promise; - granteeGrants(request: import("../cosmos/authz/v1beta1/query").QueryGranteeGrantsRequest): Promise; - }; - }; - bank: { - v1beta1: { - balance(request: import("../cosmos/bank/v1beta1/query").QueryBalanceRequest): Promise; - allBalances(request: import("../cosmos/bank/v1beta1/query").QueryAllBalancesRequest): Promise; - spendableBalances(request: import("../cosmos/bank/v1beta1/query").QuerySpendableBalancesRequest): Promise; - totalSupply(request?: import("../cosmos/bank/v1beta1/query").QueryTotalSupplyRequest): Promise; - supplyOf(request: import("../cosmos/bank/v1beta1/query").QuerySupplyOfRequest): Promise; - params(request?: import("../cosmos/bank/v1beta1/query").QueryParamsRequest): Promise; - denomMetadata(request: import("../cosmos/bank/v1beta1/query").QueryDenomMetadataRequest): Promise; - denomsMetadata(request?: import("../cosmos/bank/v1beta1/query").QueryDenomsMetadataRequest): Promise; - denomOwners(request: import("../cosmos/bank/v1beta1/query").QueryDenomOwnersRequest): Promise; - }; - }; - base: { - tendermint: { - v1beta1: { - getNodeInfo(request?: import("../cosmos/base/tendermint/v1beta1/query").GetNodeInfoRequest): Promise; - getSyncing(request?: import("../cosmos/base/tendermint/v1beta1/query").GetSyncingRequest): Promise; - getLatestBlock(request?: import("../cosmos/base/tendermint/v1beta1/query").GetLatestBlockRequest): Promise; - getBlockByHeight(request: import("../cosmos/base/tendermint/v1beta1/query").GetBlockByHeightRequest): Promise; - getLatestValidatorSet(request?: import("../cosmos/base/tendermint/v1beta1/query").GetLatestValidatorSetRequest): Promise; - getValidatorSetByHeight(request: import("../cosmos/base/tendermint/v1beta1/query").GetValidatorSetByHeightRequest): Promise; - }; - }; - }; - distribution: { - v1beta1: { - params(request?: import("../cosmos/distribution/v1beta1/query").QueryParamsRequest): Promise; - validatorOutstandingRewards(request: import("../cosmos/distribution/v1beta1/query").QueryValidatorOutstandingRewardsRequest): Promise; - validatorCommission(request: import("../cosmos/distribution/v1beta1/query").QueryValidatorCommissionRequest): Promise; - validatorSlashes(request: import("../cosmos/distribution/v1beta1/query").QueryValidatorSlashesRequest): Promise; - delegationRewards(request: import("../cosmos/distribution/v1beta1/query").QueryDelegationRewardsRequest): Promise; - delegationTotalRewards(request: import("../cosmos/distribution/v1beta1/query").QueryDelegationTotalRewardsRequest): Promise; - delegatorValidators(request: import("../cosmos/distribution/v1beta1/query").QueryDelegatorValidatorsRequest): Promise; - delegatorWithdrawAddress(request: import("../cosmos/distribution/v1beta1/query").QueryDelegatorWithdrawAddressRequest): Promise; - communityPool(request?: import("../cosmos/distribution/v1beta1/query").QueryCommunityPoolRequest): Promise; - }; - }; - evidence: { - v1beta1: { - evidence(request: import("../cosmos/evidence/v1beta1/query").QueryEvidenceRequest): Promise; - allEvidence(request?: import("../cosmos/evidence/v1beta1/query").QueryAllEvidenceRequest): Promise; - }; - }; - feegrant: { - v1beta1: { - allowance(request: import("../cosmos/feegrant/v1beta1/query").QueryAllowanceRequest): Promise; - allowances(request: import("../cosmos/feegrant/v1beta1/query").QueryAllowancesRequest): Promise; - allowancesByGranter(request: import("../cosmos/feegrant/v1beta1/query").QueryAllowancesByGranterRequest): Promise; - }; - }; - gov: { - v1: { - proposal(request: import("../cosmos/gov/v1/query").QueryProposalRequest): Promise; - proposals(request: import("../cosmos/gov/v1/query").QueryProposalsRequest): Promise; - vote(request: import("../cosmos/gov/v1/query").QueryVoteRequest): Promise; - votes(request: import("../cosmos/gov/v1/query").QueryVotesRequest): Promise; - params(request: import("../cosmos/gov/v1/query").QueryParamsRequest): Promise; - deposit(request: import("../cosmos/gov/v1/query").QueryDepositRequest): Promise; - deposits(request: import("../cosmos/gov/v1/query").QueryDepositsRequest): Promise; - tallyResult(request: import("../cosmos/gov/v1/query").QueryTallyResultRequest): Promise; - }; - v1beta1: { - proposal(request: import("../cosmos/gov/v1beta1/query").QueryProposalRequest): Promise; - proposals(request: import("../cosmos/gov/v1beta1/query").QueryProposalsRequest): Promise; - vote(request: import("../cosmos/gov/v1beta1/query").QueryVoteRequest): Promise; - votes(request: import("../cosmos/gov/v1beta1/query").QueryVotesRequest): Promise; - params(request: import("../cosmos/gov/v1beta1/query").QueryParamsRequest): Promise; - deposit(request: import("../cosmos/gov/v1beta1/query").QueryDepositRequest): Promise; - deposits(request: import("../cosmos/gov/v1beta1/query").QueryDepositsRequest): Promise; - tallyResult(request: import("../cosmos/gov/v1beta1/query").QueryTallyResultRequest): Promise; - }; - }; - group: { - v1: { - groupInfo(request: import("../cosmos/group/v1/query").QueryGroupInfoRequest): Promise; - groupPolicyInfo(request: import("../cosmos/group/v1/query").QueryGroupPolicyInfoRequest): Promise; - groupMembers(request: import("../cosmos/group/v1/query").QueryGroupMembersRequest): Promise; - groupsByAdmin(request: import("../cosmos/group/v1/query").QueryGroupsByAdminRequest): Promise; - groupPoliciesByGroup(request: import("../cosmos/group/v1/query").QueryGroupPoliciesByGroupRequest): Promise; - groupPoliciesByAdmin(request: import("../cosmos/group/v1/query").QueryGroupPoliciesByAdminRequest): Promise; - proposal(request: import("../cosmos/group/v1/query").QueryProposalRequest): Promise; - proposalsByGroupPolicy(request: import("../cosmos/group/v1/query").QueryProposalsByGroupPolicyRequest): Promise; - voteByProposalVoter(request: import("../cosmos/group/v1/query").QueryVoteByProposalVoterRequest): Promise; - votesByProposal(request: import("../cosmos/group/v1/query").QueryVotesByProposalRequest): Promise; - votesByVoter(request: import("../cosmos/group/v1/query").QueryVotesByVoterRequest): Promise; - groupsByMember(request: import("../cosmos/group/v1/query").QueryGroupsByMemberRequest): Promise; - tallyResult(request: import("../cosmos/group/v1/query").QueryTallyResultRequest): Promise; - }; - }; - mint: { - v1beta1: { - params(request?: import("../cosmos/mint/v1beta1/query").QueryParamsRequest): Promise; - inflation(request?: import("../cosmos/mint/v1beta1/query").QueryInflationRequest): Promise; - annualProvisions(request?: import("../cosmos/mint/v1beta1/query").QueryAnnualProvisionsRequest): Promise; - }; - }; - nft: { - v1beta1: { - balance(request: import("../cosmos/nft/v1beta1/query").QueryBalanceRequest): Promise; - owner(request: import("../cosmos/nft/v1beta1/query").QueryOwnerRequest): Promise; - supply(request: import("../cosmos/nft/v1beta1/query").QuerySupplyRequest): Promise; - nFTs(request: import("../cosmos/nft/v1beta1/query").QueryNFTsRequest): Promise; - nFT(request: import("../cosmos/nft/v1beta1/query").QueryNFTRequest): Promise; - class(request: import("../cosmos/nft/v1beta1/query").QueryClassRequest): Promise; - classes(request?: import("../cosmos/nft/v1beta1/query").QueryClassesRequest): Promise; - }; - }; - params: { - v1beta1: { - params(request: import("../cosmos/params/v1beta1/query").QueryParamsRequest): Promise; - subspaces(request?: import("../cosmos/params/v1beta1/query").QuerySubspacesRequest): Promise; - }; - }; - slashing: { - v1beta1: { - params(request?: import("../cosmos/slashing/v1beta1/query").QueryParamsRequest): Promise; - signingInfo(request: import("../cosmos/slashing/v1beta1/query").QuerySigningInfoRequest): Promise; - signingInfos(request?: import("../cosmos/slashing/v1beta1/query").QuerySigningInfosRequest): Promise; - }; - }; - staking: { - v1beta1: { - validators(request: import("../cosmos/staking/v1beta1/query").QueryValidatorsRequest): Promise; - validator(request: import("../cosmos/staking/v1beta1/query").QueryValidatorRequest): Promise; - validatorDelegations(request: import("../cosmos/staking/v1beta1/query").QueryValidatorDelegationsRequest): Promise; - validatorUnbondingDelegations(request: import("../cosmos/staking/v1beta1/query").QueryValidatorUnbondingDelegationsRequest): Promise; - delegation(request: import("../cosmos/staking/v1beta1/query").QueryDelegationRequest): Promise; - unbondingDelegation(request: import("../cosmos/staking/v1beta1/query").QueryUnbondingDelegationRequest): Promise; - delegatorDelegations(request: import("../cosmos/staking/v1beta1/query").QueryDelegatorDelegationsRequest): Promise; - delegatorUnbondingDelegations(request: import("../cosmos/staking/v1beta1/query").QueryDelegatorUnbondingDelegationsRequest): Promise; - redelegations(request: import("../cosmos/staking/v1beta1/query").QueryRedelegationsRequest): Promise; - delegatorValidators(request: import("../cosmos/staking/v1beta1/query").QueryDelegatorValidatorsRequest): Promise; - delegatorValidator(request: import("../cosmos/staking/v1beta1/query").QueryDelegatorValidatorRequest): Promise; - historicalInfo(request: import("../cosmos/staking/v1beta1/query").QueryHistoricalInfoRequest): Promise; - pool(request?: import("../cosmos/staking/v1beta1/query").QueryPoolRequest): Promise; - params(request?: import("../cosmos/staking/v1beta1/query").QueryParamsRequest): Promise; - }; - }; - tx: { - v1beta1: { - simulate(request: import("../cosmos/tx/v1beta1/service").SimulateRequest): Promise; - getTx(request: import("../cosmos/tx/v1beta1/service").GetTxRequest): Promise; - broadcastTx(request: import("../cosmos/tx/v1beta1/service").BroadcastTxRequest): Promise; - getTxsEvent(request: import("../cosmos/tx/v1beta1/service").GetTxsEventRequest): Promise; - getBlockWithTxs(request: import("../cosmos/tx/v1beta1/service").GetBlockWithTxsRequest): Promise; - }; - }; - upgrade: { - v1beta1: { - currentPlan(request?: import("../cosmos/upgrade/v1beta1/query").QueryCurrentPlanRequest): Promise; - appliedPlan(request: import("../cosmos/upgrade/v1beta1/query").QueryAppliedPlanRequest): Promise; - upgradedConsensusState(request: import("../cosmos/upgrade/v1beta1/query").QueryUpgradedConsensusStateRequest): Promise; - moduleVersions(request: import("../cosmos/upgrade/v1beta1/query").QueryModuleVersionsRequest): Promise; - authority(request?: import("../cosmos/upgrade/v1beta1/query").QueryAuthorityRequest): Promise; - }; - }; - }; - ibc: { - applications: { - transfer: { - v1: { - denomTrace(request: _111.QueryDenomTraceRequest): Promise<_111.QueryDenomTraceResponse>; - denomTraces(request?: _111.QueryDenomTracesRequest): Promise<_111.QueryDenomTracesResponse>; - params(request?: _111.QueryParamsRequest): Promise<_111.QueryParamsResponse>; - }; - }; - }; - core: { - channel: { - v1: { - channel(request: _117.QueryChannelRequest): Promise<_117.QueryChannelResponse>; - channels(request?: _117.QueryChannelsRequest): Promise<_117.QueryChannelsResponse>; - connectionChannels(request: _117.QueryConnectionChannelsRequest): Promise<_117.QueryConnectionChannelsResponse>; - channelClientState(request: _117.QueryChannelClientStateRequest): Promise<_117.QueryChannelClientStateResponse>; - channelConsensusState(request: _117.QueryChannelConsensusStateRequest): Promise<_117.QueryChannelConsensusStateResponse>; - packetCommitment(request: _117.QueryPacketCommitmentRequest): Promise<_117.QueryPacketCommitmentResponse>; - packetCommitments(request: _117.QueryPacketCommitmentsRequest): Promise<_117.QueryPacketCommitmentsResponse>; - packetReceipt(request: _117.QueryPacketReceiptRequest): Promise<_117.QueryPacketReceiptResponse>; - packetAcknowledgement(request: _117.QueryPacketAcknowledgementRequest): Promise<_117.QueryPacketAcknowledgementResponse>; - packetAcknowledgements(request: _117.QueryPacketAcknowledgementsRequest): Promise<_117.QueryPacketAcknowledgementsResponse>; - unreceivedPackets(request: _117.QueryUnreceivedPacketsRequest): Promise<_117.QueryUnreceivedPacketsResponse>; - unreceivedAcks(request: _117.QueryUnreceivedAcksRequest): Promise<_117.QueryUnreceivedAcksResponse>; - nextSequenceReceive(request: _117.QueryNextSequenceReceiveRequest): Promise<_117.QueryNextSequenceReceiveResponse>; - }; - }; - client: { - v1: { - clientState(request: _121.QueryClientStateRequest): Promise<_121.QueryClientStateResponse>; - clientStates(request?: _121.QueryClientStatesRequest): Promise<_121.QueryClientStatesResponse>; - consensusState(request: _121.QueryConsensusStateRequest): Promise<_121.QueryConsensusStateResponse>; - consensusStates(request: _121.QueryConsensusStatesRequest): Promise<_121.QueryConsensusStatesResponse>; - clientStatus(request: _121.QueryClientStatusRequest): Promise<_121.QueryClientStatusResponse>; - clientParams(request?: _121.QueryClientParamsRequest): Promise<_121.QueryClientParamsResponse>; - upgradedClientState(request?: _121.QueryUpgradedClientStateRequest): Promise<_121.QueryUpgradedClientStateResponse>; - upgradedConsensusState(request?: _121.QueryUpgradedConsensusStateRequest): Promise<_121.QueryUpgradedConsensusStateResponse>; - }; - }; - connection: { - v1: { - connection(request: _126.QueryConnectionRequest): Promise<_126.QueryConnectionResponse>; - connections(request?: _126.QueryConnectionsRequest): Promise<_126.QueryConnectionsResponse>; - clientConnections(request: _126.QueryClientConnectionsRequest): Promise<_126.QueryClientConnectionsResponse>; - connectionClientState(request: _126.QueryConnectionClientStateRequest): Promise<_126.QueryConnectionClientStateResponse>; - connectionConsensusState(request: _126.QueryConnectionConsensusStateRequest): Promise<_126.QueryConnectionConsensusStateResponse>; - }; - }; - port: { - v1: { - appVersion(request: _128.QueryAppVersionRequest): Promise<_128.QueryAppVersionResponse>; - }; - }; - }; - }; - }>; - createLCDClient: ({ restEndpoint }: { - restEndpoint: string; - }) => Promise<{ - cosmos: { - auth: { - v1beta1: import("../cosmos/auth/v1beta1/query.lcd").LCDQueryClient; - }; - authz: { - v1beta1: import("../cosmos/authz/v1beta1/query.lcd").LCDQueryClient; - }; - bank: { - v1beta1: import("../cosmos/bank/v1beta1/query.lcd").LCDQueryClient; - }; - base: { - tendermint: { - v1beta1: import("../cosmos/base/tendermint/v1beta1/query.lcd").LCDQueryClient; - }; - }; - distribution: { - v1beta1: import("../cosmos/distribution/v1beta1/query.lcd").LCDQueryClient; - }; - evidence: { - v1beta1: import("../cosmos/evidence/v1beta1/query.lcd").LCDQueryClient; - }; - feegrant: { - v1beta1: import("../cosmos/feegrant/v1beta1/query.lcd").LCDQueryClient; - }; - gov: { - v1: import("../cosmos/gov/v1/query.lcd").LCDQueryClient; - v1beta1: import("../cosmos/gov/v1beta1/query.lcd").LCDQueryClient; - }; - group: { - v1: import("../cosmos/group/v1/query.lcd").LCDQueryClient; - }; - mint: { - v1beta1: import("../cosmos/mint/v1beta1/query.lcd").LCDQueryClient; - }; - nft: { - v1beta1: import("../cosmos/nft/v1beta1/query.lcd").LCDQueryClient; - }; - params: { - v1beta1: import("../cosmos/params/v1beta1/query.lcd").LCDQueryClient; - }; - slashing: { - v1beta1: import("../cosmos/slashing/v1beta1/query.lcd").LCDQueryClient; - }; - staking: { - v1beta1: import("../cosmos/staking/v1beta1/query.lcd").LCDQueryClient; - }; - tx: { - v1beta1: import("../cosmos/tx/v1beta1/service.lcd").LCDQueryClient; - }; - upgrade: { - v1beta1: import("../cosmos/upgrade/v1beta1/query.lcd").LCDQueryClient; - }; - }; - ibc: { - applications: { - transfer: { - v1: _197.LCDQueryClient; - }; - }; - core: { - channel: { - v1: _198.LCDQueryClient; - }; - client: { - v1: _199.LCDQueryClient; - }; - connection: { - v1: _200.LCDQueryClient; - }; - }; - }; - }>; - }; -} diff --git a/packages/codegen/dist/ibc/core/channel/v1/channel.d.ts b/packages/codegen/dist/ibc/core/channel/v1/channel.d.ts deleted file mode 100644 index b039e81f..00000000 --- a/packages/codegen/dist/ibc/core/channel/v1/channel.d.ts +++ /dev/null @@ -1,244 +0,0 @@ -/// -import { Height, HeightSDKType } from "../../client/v1/client"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../../helpers"; -/** - * State defines if a channel is in one of the following states: - * CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED. - */ -export declare enum State { - /** STATE_UNINITIALIZED_UNSPECIFIED - Default State */ - STATE_UNINITIALIZED_UNSPECIFIED = 0, - /** STATE_INIT - A channel has just started the opening handshake. */ - STATE_INIT = 1, - /** STATE_TRYOPEN - A channel has acknowledged the handshake step on the counterparty chain. */ - STATE_TRYOPEN = 2, - /** - * STATE_OPEN - A channel has completed the handshake. Open channels are - * ready to send and receive packets. - */ - STATE_OPEN = 3, - /** - * STATE_CLOSED - A channel has been closed and can no longer be used to send or receive - * packets. - */ - STATE_CLOSED = 4, - UNRECOGNIZED = -1 -} -export declare const StateSDKType: typeof State; -export declare function stateFromJSON(object: any): State; -export declare function stateToJSON(object: State): string; -/** Order defines if a channel is ORDERED or UNORDERED */ -export declare enum Order { - /** ORDER_NONE_UNSPECIFIED - zero-value for channel ordering */ - ORDER_NONE_UNSPECIFIED = 0, - /** - * ORDER_UNORDERED - packets can be delivered in any order, which may differ from the order in - * which they were sent. - */ - ORDER_UNORDERED = 1, - /** ORDER_ORDERED - packets are delivered exactly in the order which they were sent */ - ORDER_ORDERED = 2, - UNRECOGNIZED = -1 -} -export declare const OrderSDKType: typeof Order; -export declare function orderFromJSON(object: any): Order; -export declare function orderToJSON(object: Order): string; -/** - * 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. - */ -export interface Channel { - /** current state of the channel end */ - state: State; - /** whether the channel is ordered or unordered */ - ordering: Order; - /** counterparty channel end */ - counterparty?: Counterparty; - /** - * list of connection identifiers, in order, along which packets sent on - * this channel will travel - */ - connectionHops: string[]; - /** opaque channel version, which is agreed upon during the handshake */ - version: string; -} -/** - * 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. - */ -export interface ChannelSDKType { - state: State; - ordering: Order; - counterparty?: CounterpartySDKType; - connection_hops: string[]; - version: string; -} -/** - * IdentifiedChannel defines a channel with additional port and channel - * identifier fields. - */ -export interface IdentifiedChannel { - /** current state of the channel end */ - state: State; - /** whether the channel is ordered or unordered */ - ordering: Order; - /** counterparty channel end */ - counterparty?: Counterparty; - /** - * list of connection identifiers, in order, along which packets sent on - * this channel will travel - */ - connectionHops: string[]; - /** opaque channel version, which is agreed upon during the handshake */ - version: string; - /** port identifier */ - portId: string; - /** channel identifier */ - channelId: string; -} -/** - * IdentifiedChannel defines a channel with additional port and channel - * identifier fields. - */ -export interface IdentifiedChannelSDKType { - state: State; - ordering: Order; - counterparty?: CounterpartySDKType; - connection_hops: string[]; - version: string; - port_id: string; - channel_id: string; -} -/** Counterparty defines a channel end counterparty */ -export interface Counterparty { - /** port on the counterparty chain which owns the other end of the channel. */ - portId: string; - /** channel end on the counterparty chain */ - channelId: string; -} -/** Counterparty defines a channel end counterparty */ -export interface CounterpartySDKType { - port_id: string; - channel_id: string; -} -/** Packet defines a type that carries data across different chains through IBC */ -export interface 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. - */ - sequence: Long; - /** identifies the port on the sending chain. */ - sourcePort: string; - /** identifies the channel end on the sending chain. */ - sourceChannel: string; - /** identifies the port on the receiving chain. */ - destinationPort: string; - /** identifies the channel end on the receiving chain. */ - destinationChannel: string; - /** actual opaque bytes transferred directly to the application module */ - data: Uint8Array; - /** block height after which the packet times out */ - timeoutHeight?: Height; - /** block timestamp (in nanoseconds) after which the packet times out */ - timeoutTimestamp: Long; -} -/** Packet defines a type that carries data across different chains through IBC */ -export interface PacketSDKType { - sequence: Long; - source_port: string; - source_channel: string; - destination_port: string; - destination_channel: string; - data: Uint8Array; - timeout_height?: HeightSDKType; - timeout_timestamp: Long; -} -/** - * 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. - */ -export interface PacketState { - /** channel port identifier. */ - portId: string; - /** channel unique identifier. */ - channelId: string; - /** packet sequence. */ - sequence: Long; - /** embedded data that represents packet state. */ - data: Uint8Array; -} -/** - * 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. - */ -export interface PacketStateSDKType { - port_id: string; - channel_id: string; - sequence: Long; - data: Uint8Array; -} -/** - * 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 - */ -export interface Acknowledgement { - result?: Uint8Array; - error?: string; -} -/** - * 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 - */ -export interface AcknowledgementSDKType { - result?: Uint8Array; - error?: string; -} -export declare const Channel: { - encode(message: Channel, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Channel; - fromPartial(object: DeepPartial): Channel; -}; -export declare const IdentifiedChannel: { - encode(message: IdentifiedChannel, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): IdentifiedChannel; - fromPartial(object: DeepPartial): IdentifiedChannel; -}; -export declare const Counterparty: { - encode(message: Counterparty, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Counterparty; - fromPartial(object: DeepPartial): Counterparty; -}; -export declare const Packet: { - encode(message: Packet, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Packet; - fromPartial(object: DeepPartial): Packet; -}; -export declare const PacketState: { - encode(message: PacketState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PacketState; - fromPartial(object: DeepPartial): PacketState; -}; -export declare const Acknowledgement: { - encode(message: Acknowledgement, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Acknowledgement; - fromPartial(object: DeepPartial): Acknowledgement; -}; diff --git a/packages/codegen/dist/ibc/core/channel/v1/genesis.d.ts b/packages/codegen/dist/ibc/core/channel/v1/genesis.d.ts deleted file mode 100644 index 0dca7bea..00000000 --- a/packages/codegen/dist/ibc/core/channel/v1/genesis.d.ts +++ /dev/null @@ -1,55 +0,0 @@ -/// -import { IdentifiedChannel, IdentifiedChannelSDKType, PacketState, PacketStateSDKType } from "./channel"; -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** GenesisState defines the ibc channel submodule's genesis state. */ -export interface GenesisState { - channels: IdentifiedChannel[]; - acknowledgements: PacketState[]; - commitments: PacketState[]; - receipts: PacketState[]; - sendSequences: PacketSequence[]; - recvSequences: PacketSequence[]; - ackSequences: PacketSequence[]; - /** the sequence for the next generated channel identifier */ - nextChannelSequence: Long; -} -/** GenesisState defines the ibc channel submodule's genesis state. */ -export interface GenesisStateSDKType { - channels: IdentifiedChannelSDKType[]; - acknowledgements: PacketStateSDKType[]; - commitments: PacketStateSDKType[]; - receipts: PacketStateSDKType[]; - send_sequences: PacketSequenceSDKType[]; - recv_sequences: PacketSequenceSDKType[]; - ack_sequences: PacketSequenceSDKType[]; - next_channel_sequence: Long; -} -/** - * PacketSequence defines the genesis type necessary to retrieve and store - * next send and receive sequences. - */ -export interface PacketSequence { - portId: string; - channelId: string; - sequence: Long; -} -/** - * PacketSequence defines the genesis type necessary to retrieve and store - * next send and receive sequences. - */ -export interface PacketSequenceSDKType { - port_id: string; - channel_id: string; - sequence: Long; -} -export declare const GenesisState: { - encode(message: GenesisState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState; - fromPartial(object: DeepPartial): GenesisState; -}; -export declare const PacketSequence: { - encode(message: PacketSequence, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PacketSequence; - fromPartial(object: DeepPartial): PacketSequence; -}; diff --git a/packages/codegen/dist/ibc/core/channel/v1/query.d.ts b/packages/codegen/dist/ibc/core/channel/v1/query.d.ts deleted file mode 100644 index 202e5c8e..00000000 --- a/packages/codegen/dist/ibc/core/channel/v1/query.d.ts +++ /dev/null @@ -1,656 +0,0 @@ -/// -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../../../cosmos/base/query/v1beta1/pagination"; -import { Channel, ChannelSDKType, IdentifiedChannel, IdentifiedChannelSDKType, PacketState, PacketStateSDKType } from "./channel"; -import { Height, HeightSDKType, IdentifiedClientState, IdentifiedClientStateSDKType } from "../../client/v1/client"; -import { Any, AnySDKType } from "../../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../../helpers"; -/** QueryChannelRequest is the request type for the Query/Channel RPC method */ -export interface QueryChannelRequest { - /** port unique identifier */ - portId: string; - /** channel unique identifier */ - channelId: string; -} -/** QueryChannelRequest is the request type for the Query/Channel RPC method */ -export interface QueryChannelRequestSDKType { - port_id: string; - channel_id: string; -} -/** - * 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. - */ -export interface QueryChannelResponse { - /** channel associated with the request identifiers */ - channel?: Channel; - /** merkle proof of existence */ - proof: Uint8Array; - /** height at which the proof was retrieved */ - proofHeight?: Height; -} -/** - * 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. - */ -export interface QueryChannelResponseSDKType { - channel?: ChannelSDKType; - proof: Uint8Array; - proof_height?: HeightSDKType; -} -/** QueryChannelsRequest is the request type for the Query/Channels RPC method */ -export interface QueryChannelsRequest { - /** pagination request */ - pagination?: PageRequest; -} -/** QueryChannelsRequest is the request type for the Query/Channels RPC method */ -export interface QueryChannelsRequestSDKType { - pagination?: PageRequestSDKType; -} -/** QueryChannelsResponse is the response type for the Query/Channels RPC method. */ -export interface QueryChannelsResponse { - /** list of stored channels of the chain. */ - channels: IdentifiedChannel[]; - /** pagination response */ - pagination?: PageResponse; - /** query block height */ - height?: Height; -} -/** QueryChannelsResponse is the response type for the Query/Channels RPC method. */ -export interface QueryChannelsResponseSDKType { - channels: IdentifiedChannelSDKType[]; - pagination?: PageResponseSDKType; - height?: HeightSDKType; -} -/** - * QueryConnectionChannelsRequest is the request type for the - * Query/QueryConnectionChannels RPC method - */ -export interface QueryConnectionChannelsRequest { - /** connection unique identifier */ - connection: string; - /** pagination request */ - pagination?: PageRequest; -} -/** - * QueryConnectionChannelsRequest is the request type for the - * Query/QueryConnectionChannels RPC method - */ -export interface QueryConnectionChannelsRequestSDKType { - connection: string; - pagination?: PageRequestSDKType; -} -/** - * QueryConnectionChannelsResponse is the Response type for the - * Query/QueryConnectionChannels RPC method - */ -export interface QueryConnectionChannelsResponse { - /** list of channels associated with a connection. */ - channels: IdentifiedChannel[]; - /** pagination response */ - pagination?: PageResponse; - /** query block height */ - height?: Height; -} -/** - * QueryConnectionChannelsResponse is the Response type for the - * Query/QueryConnectionChannels RPC method - */ -export interface QueryConnectionChannelsResponseSDKType { - channels: IdentifiedChannelSDKType[]; - pagination?: PageResponseSDKType; - height?: HeightSDKType; -} -/** - * QueryChannelClientStateRequest is the request type for the Query/ClientState - * RPC method - */ -export interface QueryChannelClientStateRequest { - /** port unique identifier */ - portId: string; - /** channel unique identifier */ - channelId: string; -} -/** - * QueryChannelClientStateRequest is the request type for the Query/ClientState - * RPC method - */ -export interface QueryChannelClientStateRequestSDKType { - port_id: string; - channel_id: string; -} -/** - * QueryChannelClientStateResponse is the Response type for the - * Query/QueryChannelClientState RPC method - */ -export interface QueryChannelClientStateResponse { - /** client state associated with the channel */ - identifiedClientState?: IdentifiedClientState; - /** merkle proof of existence */ - proof: Uint8Array; - /** height at which the proof was retrieved */ - proofHeight?: Height; -} -/** - * QueryChannelClientStateResponse is the Response type for the - * Query/QueryChannelClientState RPC method - */ -export interface QueryChannelClientStateResponseSDKType { - identified_client_state?: IdentifiedClientStateSDKType; - proof: Uint8Array; - proof_height?: HeightSDKType; -} -/** - * QueryChannelConsensusStateRequest is the request type for the - * Query/ConsensusState RPC method - */ -export interface QueryChannelConsensusStateRequest { - /** port unique identifier */ - portId: string; - /** channel unique identifier */ - channelId: string; - /** revision number of the consensus state */ - revisionNumber: Long; - /** revision height of the consensus state */ - revisionHeight: Long; -} -/** - * QueryChannelConsensusStateRequest is the request type for the - * Query/ConsensusState RPC method - */ -export interface QueryChannelConsensusStateRequestSDKType { - port_id: string; - channel_id: string; - revision_number: Long; - revision_height: Long; -} -/** - * QueryChannelClientStateResponse is the Response type for the - * Query/QueryChannelClientState RPC method - */ -export interface QueryChannelConsensusStateResponse { - /** consensus state associated with the channel */ - consensusState?: Any; - /** client ID associated with the consensus state */ - clientId: string; - /** merkle proof of existence */ - proof: Uint8Array; - /** height at which the proof was retrieved */ - proofHeight?: Height; -} -/** - * QueryChannelClientStateResponse is the Response type for the - * Query/QueryChannelClientState RPC method - */ -export interface QueryChannelConsensusStateResponseSDKType { - consensus_state?: AnySDKType; - client_id: string; - proof: Uint8Array; - proof_height?: HeightSDKType; -} -/** - * QueryPacketCommitmentRequest is the request type for the - * Query/PacketCommitment RPC method - */ -export interface QueryPacketCommitmentRequest { - /** port unique identifier */ - portId: string; - /** channel unique identifier */ - channelId: string; - /** packet sequence */ - sequence: Long; -} -/** - * QueryPacketCommitmentRequest is the request type for the - * Query/PacketCommitment RPC method - */ -export interface QueryPacketCommitmentRequestSDKType { - port_id: string; - channel_id: string; - sequence: Long; -} -/** - * QueryPacketCommitmentResponse defines the client query response for a packet - * which also includes a proof and the height from which the proof was - * retrieved - */ -export interface QueryPacketCommitmentResponse { - /** packet associated with the request fields */ - commitment: Uint8Array; - /** merkle proof of existence */ - proof: Uint8Array; - /** height at which the proof was retrieved */ - proofHeight?: Height; -} -/** - * QueryPacketCommitmentResponse defines the client query response for a packet - * which also includes a proof and the height from which the proof was - * retrieved - */ -export interface QueryPacketCommitmentResponseSDKType { - commitment: Uint8Array; - proof: Uint8Array; - proof_height?: HeightSDKType; -} -/** - * QueryPacketCommitmentsRequest is the request type for the - * Query/QueryPacketCommitments RPC method - */ -export interface QueryPacketCommitmentsRequest { - /** port unique identifier */ - portId: string; - /** channel unique identifier */ - channelId: string; - /** pagination request */ - pagination?: PageRequest; -} -/** - * QueryPacketCommitmentsRequest is the request type for the - * Query/QueryPacketCommitments RPC method - */ -export interface QueryPacketCommitmentsRequestSDKType { - port_id: string; - channel_id: string; - pagination?: PageRequestSDKType; -} -/** - * QueryPacketCommitmentsResponse is the request type for the - * Query/QueryPacketCommitments RPC method - */ -export interface QueryPacketCommitmentsResponse { - commitments: PacketState[]; - /** pagination response */ - pagination?: PageResponse; - /** query block height */ - height?: Height; -} -/** - * QueryPacketCommitmentsResponse is the request type for the - * Query/QueryPacketCommitments RPC method - */ -export interface QueryPacketCommitmentsResponseSDKType { - commitments: PacketStateSDKType[]; - pagination?: PageResponseSDKType; - height?: HeightSDKType; -} -/** - * QueryPacketReceiptRequest is the request type for the - * Query/PacketReceipt RPC method - */ -export interface QueryPacketReceiptRequest { - /** port unique identifier */ - portId: string; - /** channel unique identifier */ - channelId: string; - /** packet sequence */ - sequence: Long; -} -/** - * QueryPacketReceiptRequest is the request type for the - * Query/PacketReceipt RPC method - */ -export interface QueryPacketReceiptRequestSDKType { - port_id: string; - channel_id: string; - sequence: Long; -} -/** - * QueryPacketReceiptResponse defines the client query response for a packet - * receipt which also includes a proof, and the height from which the proof was - * retrieved - */ -export interface QueryPacketReceiptResponse { - /** success flag for if receipt exists */ - received: boolean; - /** merkle proof of existence */ - proof: Uint8Array; - /** height at which the proof was retrieved */ - proofHeight?: Height; -} -/** - * QueryPacketReceiptResponse defines the client query response for a packet - * receipt which also includes a proof, and the height from which the proof was - * retrieved - */ -export interface QueryPacketReceiptResponseSDKType { - received: boolean; - proof: Uint8Array; - proof_height?: HeightSDKType; -} -/** - * QueryPacketAcknowledgementRequest is the request type for the - * Query/PacketAcknowledgement RPC method - */ -export interface QueryPacketAcknowledgementRequest { - /** port unique identifier */ - portId: string; - /** channel unique identifier */ - channelId: string; - /** packet sequence */ - sequence: Long; -} -/** - * QueryPacketAcknowledgementRequest is the request type for the - * Query/PacketAcknowledgement RPC method - */ -export interface QueryPacketAcknowledgementRequestSDKType { - port_id: string; - channel_id: string; - sequence: Long; -} -/** - * QueryPacketAcknowledgementResponse defines the client query response for a - * packet which also includes a proof and the height from which the - * proof was retrieved - */ -export interface QueryPacketAcknowledgementResponse { - /** packet associated with the request fields */ - acknowledgement: Uint8Array; - /** merkle proof of existence */ - proof: Uint8Array; - /** height at which the proof was retrieved */ - proofHeight?: Height; -} -/** - * QueryPacketAcknowledgementResponse defines the client query response for a - * packet which also includes a proof and the height from which the - * proof was retrieved - */ -export interface QueryPacketAcknowledgementResponseSDKType { - acknowledgement: Uint8Array; - proof: Uint8Array; - proof_height?: HeightSDKType; -} -/** - * QueryPacketAcknowledgementsRequest is the request type for the - * Query/QueryPacketCommitments RPC method - */ -export interface QueryPacketAcknowledgementsRequest { - /** port unique identifier */ - portId: string; - /** channel unique identifier */ - channelId: string; - /** pagination request */ - pagination?: PageRequest; - /** list of packet sequences */ - packetCommitmentSequences: Long[]; -} -/** - * QueryPacketAcknowledgementsRequest is the request type for the - * Query/QueryPacketCommitments RPC method - */ -export interface QueryPacketAcknowledgementsRequestSDKType { - port_id: string; - channel_id: string; - pagination?: PageRequestSDKType; - packet_commitment_sequences: Long[]; -} -/** - * QueryPacketAcknowledgemetsResponse is the request type for the - * Query/QueryPacketAcknowledgements RPC method - */ -export interface QueryPacketAcknowledgementsResponse { - acknowledgements: PacketState[]; - /** pagination response */ - pagination?: PageResponse; - /** query block height */ - height?: Height; -} -/** - * QueryPacketAcknowledgemetsResponse is the request type for the - * Query/QueryPacketAcknowledgements RPC method - */ -export interface QueryPacketAcknowledgementsResponseSDKType { - acknowledgements: PacketStateSDKType[]; - pagination?: PageResponseSDKType; - height?: HeightSDKType; -} -/** - * QueryUnreceivedPacketsRequest is the request type for the - * Query/UnreceivedPackets RPC method - */ -export interface QueryUnreceivedPacketsRequest { - /** port unique identifier */ - portId: string; - /** channel unique identifier */ - channelId: string; - /** list of packet sequences */ - packetCommitmentSequences: Long[]; -} -/** - * QueryUnreceivedPacketsRequest is the request type for the - * Query/UnreceivedPackets RPC method - */ -export interface QueryUnreceivedPacketsRequestSDKType { - port_id: string; - channel_id: string; - packet_commitment_sequences: Long[]; -} -/** - * QueryUnreceivedPacketsResponse is the response type for the - * Query/UnreceivedPacketCommitments RPC method - */ -export interface QueryUnreceivedPacketsResponse { - /** list of unreceived packet sequences */ - sequences: Long[]; - /** query block height */ - height?: Height; -} -/** - * QueryUnreceivedPacketsResponse is the response type for the - * Query/UnreceivedPacketCommitments RPC method - */ -export interface QueryUnreceivedPacketsResponseSDKType { - sequences: Long[]; - height?: HeightSDKType; -} -/** - * QueryUnreceivedAcks is the request type for the - * Query/UnreceivedAcks RPC method - */ -export interface QueryUnreceivedAcksRequest { - /** port unique identifier */ - portId: string; - /** channel unique identifier */ - channelId: string; - /** list of acknowledgement sequences */ - packetAckSequences: Long[]; -} -/** - * QueryUnreceivedAcks is the request type for the - * Query/UnreceivedAcks RPC method - */ -export interface QueryUnreceivedAcksRequestSDKType { - port_id: string; - channel_id: string; - packet_ack_sequences: Long[]; -} -/** - * QueryUnreceivedAcksResponse is the response type for the - * Query/UnreceivedAcks RPC method - */ -export interface QueryUnreceivedAcksResponse { - /** list of unreceived acknowledgement sequences */ - sequences: Long[]; - /** query block height */ - height?: Height; -} -/** - * QueryUnreceivedAcksResponse is the response type for the - * Query/UnreceivedAcks RPC method - */ -export interface QueryUnreceivedAcksResponseSDKType { - sequences: Long[]; - height?: HeightSDKType; -} -/** - * QueryNextSequenceReceiveRequest is the request type for the - * Query/QueryNextSequenceReceiveRequest RPC method - */ -export interface QueryNextSequenceReceiveRequest { - /** port unique identifier */ - portId: string; - /** channel unique identifier */ - channelId: string; -} -/** - * QueryNextSequenceReceiveRequest is the request type for the - * Query/QueryNextSequenceReceiveRequest RPC method - */ -export interface QueryNextSequenceReceiveRequestSDKType { - port_id: string; - channel_id: string; -} -/** - * QuerySequenceResponse is the request type for the - * Query/QueryNextSequenceReceiveResponse RPC method - */ -export interface QueryNextSequenceReceiveResponse { - /** next sequence receive number */ - nextSequenceReceive: Long; - /** merkle proof of existence */ - proof: Uint8Array; - /** height at which the proof was retrieved */ - proofHeight?: Height; -} -/** - * QuerySequenceResponse is the request type for the - * Query/QueryNextSequenceReceiveResponse RPC method - */ -export interface QueryNextSequenceReceiveResponseSDKType { - next_sequence_receive: Long; - proof: Uint8Array; - proof_height?: HeightSDKType; -} -export declare const QueryChannelRequest: { - encode(message: QueryChannelRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryChannelRequest; - fromPartial(object: DeepPartial): QueryChannelRequest; -}; -export declare const QueryChannelResponse: { - encode(message: QueryChannelResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryChannelResponse; - fromPartial(object: DeepPartial): QueryChannelResponse; -}; -export declare const QueryChannelsRequest: { - encode(message: QueryChannelsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryChannelsRequest; - fromPartial(object: DeepPartial): QueryChannelsRequest; -}; -export declare const QueryChannelsResponse: { - encode(message: QueryChannelsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryChannelsResponse; - fromPartial(object: DeepPartial): QueryChannelsResponse; -}; -export declare const QueryConnectionChannelsRequest: { - encode(message: QueryConnectionChannelsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConnectionChannelsRequest; - fromPartial(object: DeepPartial): QueryConnectionChannelsRequest; -}; -export declare const QueryConnectionChannelsResponse: { - encode(message: QueryConnectionChannelsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConnectionChannelsResponse; - fromPartial(object: DeepPartial): QueryConnectionChannelsResponse; -}; -export declare const QueryChannelClientStateRequest: { - encode(message: QueryChannelClientStateRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryChannelClientStateRequest; - fromPartial(object: DeepPartial): QueryChannelClientStateRequest; -}; -export declare const QueryChannelClientStateResponse: { - encode(message: QueryChannelClientStateResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryChannelClientStateResponse; - fromPartial(object: DeepPartial): QueryChannelClientStateResponse; -}; -export declare const QueryChannelConsensusStateRequest: { - encode(message: QueryChannelConsensusStateRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryChannelConsensusStateRequest; - fromPartial(object: DeepPartial): QueryChannelConsensusStateRequest; -}; -export declare const QueryChannelConsensusStateResponse: { - encode(message: QueryChannelConsensusStateResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryChannelConsensusStateResponse; - fromPartial(object: DeepPartial): QueryChannelConsensusStateResponse; -}; -export declare const QueryPacketCommitmentRequest: { - encode(message: QueryPacketCommitmentRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPacketCommitmentRequest; - fromPartial(object: DeepPartial): QueryPacketCommitmentRequest; -}; -export declare const QueryPacketCommitmentResponse: { - encode(message: QueryPacketCommitmentResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPacketCommitmentResponse; - fromPartial(object: DeepPartial): QueryPacketCommitmentResponse; -}; -export declare const QueryPacketCommitmentsRequest: { - encode(message: QueryPacketCommitmentsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPacketCommitmentsRequest; - fromPartial(object: DeepPartial): QueryPacketCommitmentsRequest; -}; -export declare const QueryPacketCommitmentsResponse: { - encode(message: QueryPacketCommitmentsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPacketCommitmentsResponse; - fromPartial(object: DeepPartial): QueryPacketCommitmentsResponse; -}; -export declare const QueryPacketReceiptRequest: { - encode(message: QueryPacketReceiptRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPacketReceiptRequest; - fromPartial(object: DeepPartial): QueryPacketReceiptRequest; -}; -export declare const QueryPacketReceiptResponse: { - encode(message: QueryPacketReceiptResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPacketReceiptResponse; - fromPartial(object: DeepPartial): QueryPacketReceiptResponse; -}; -export declare const QueryPacketAcknowledgementRequest: { - encode(message: QueryPacketAcknowledgementRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPacketAcknowledgementRequest; - fromPartial(object: DeepPartial): QueryPacketAcknowledgementRequest; -}; -export declare const QueryPacketAcknowledgementResponse: { - encode(message: QueryPacketAcknowledgementResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPacketAcknowledgementResponse; - fromPartial(object: DeepPartial): QueryPacketAcknowledgementResponse; -}; -export declare const QueryPacketAcknowledgementsRequest: { - encode(message: QueryPacketAcknowledgementsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPacketAcknowledgementsRequest; - fromPartial(object: DeepPartial): QueryPacketAcknowledgementsRequest; -}; -export declare const QueryPacketAcknowledgementsResponse: { - encode(message: QueryPacketAcknowledgementsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPacketAcknowledgementsResponse; - fromPartial(object: DeepPartial): QueryPacketAcknowledgementsResponse; -}; -export declare const QueryUnreceivedPacketsRequest: { - encode(message: QueryUnreceivedPacketsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryUnreceivedPacketsRequest; - fromPartial(object: DeepPartial): QueryUnreceivedPacketsRequest; -}; -export declare const QueryUnreceivedPacketsResponse: { - encode(message: QueryUnreceivedPacketsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryUnreceivedPacketsResponse; - fromPartial(object: DeepPartial): QueryUnreceivedPacketsResponse; -}; -export declare const QueryUnreceivedAcksRequest: { - encode(message: QueryUnreceivedAcksRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryUnreceivedAcksRequest; - fromPartial(object: DeepPartial): QueryUnreceivedAcksRequest; -}; -export declare const QueryUnreceivedAcksResponse: { - encode(message: QueryUnreceivedAcksResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryUnreceivedAcksResponse; - fromPartial(object: DeepPartial): QueryUnreceivedAcksResponse; -}; -export declare const QueryNextSequenceReceiveRequest: { - encode(message: QueryNextSequenceReceiveRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryNextSequenceReceiveRequest; - fromPartial(object: DeepPartial): QueryNextSequenceReceiveRequest; -}; -export declare const QueryNextSequenceReceiveResponse: { - encode(message: QueryNextSequenceReceiveResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryNextSequenceReceiveResponse; - fromPartial(object: DeepPartial): QueryNextSequenceReceiveResponse; -}; diff --git a/packages/codegen/dist/ibc/core/channel/v1/query.lcd.d.ts b/packages/codegen/dist/ibc/core/channel/v1/query.lcd.d.ts deleted file mode 100644 index f7b3029b..00000000 --- a/packages/codegen/dist/ibc/core/channel/v1/query.lcd.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { QueryChannelRequest, QueryChannelResponseSDKType, QueryChannelsRequest, QueryChannelsResponseSDKType, QueryConnectionChannelsRequest, QueryConnectionChannelsResponseSDKType, QueryChannelClientStateRequest, QueryChannelClientStateResponseSDKType, QueryChannelConsensusStateRequest, QueryChannelConsensusStateResponseSDKType, QueryPacketCommitmentRequest, QueryPacketCommitmentResponseSDKType, QueryPacketCommitmentsRequest, QueryPacketCommitmentsResponseSDKType, QueryPacketReceiptRequest, QueryPacketReceiptResponseSDKType, QueryPacketAcknowledgementRequest, QueryPacketAcknowledgementResponseSDKType, QueryPacketAcknowledgementsRequest, QueryPacketAcknowledgementsResponseSDKType, QueryUnreceivedPacketsRequest, QueryUnreceivedPacketsResponseSDKType, QueryUnreceivedAcksRequest, QueryUnreceivedAcksResponseSDKType, QueryNextSequenceReceiveRequest, QueryNextSequenceReceiveResponseSDKType } from "./query"; -export declare class LCDQueryClient { - req: LCDClient; - constructor({ requestClient }: { - requestClient: LCDClient; - }); - channel(params: QueryChannelRequest): Promise; - channels(params?: QueryChannelsRequest): Promise; - connectionChannels(params: QueryConnectionChannelsRequest): Promise; - channelClientState(params: QueryChannelClientStateRequest): Promise; - channelConsensusState(params: QueryChannelConsensusStateRequest): Promise; - packetCommitment(params: QueryPacketCommitmentRequest): Promise; - packetCommitments(params: QueryPacketCommitmentsRequest): Promise; - packetReceipt(params: QueryPacketReceiptRequest): Promise; - packetAcknowledgement(params: QueryPacketAcknowledgementRequest): Promise; - packetAcknowledgements(params: QueryPacketAcknowledgementsRequest): Promise; - unreceivedPackets(params: QueryUnreceivedPacketsRequest): Promise; - unreceivedAcks(params: QueryUnreceivedAcksRequest): Promise; - nextSequenceReceive(params: QueryNextSequenceReceiveRequest): Promise; -} diff --git a/packages/codegen/dist/ibc/core/channel/v1/query.rpc.Query.d.ts b/packages/codegen/dist/ibc/core/channel/v1/query.rpc.Query.d.ts deleted file mode 100644 index 69c372d5..00000000 --- a/packages/codegen/dist/ibc/core/channel/v1/query.rpc.Query.d.ts +++ /dev/null @@ -1,88 +0,0 @@ -import { Rpc } from "../../../../helpers"; -import { QueryClient } from "@cosmjs/stargate"; -import { QueryChannelRequest, QueryChannelResponse, QueryChannelsRequest, QueryChannelsResponse, QueryConnectionChannelsRequest, QueryConnectionChannelsResponse, QueryChannelClientStateRequest, QueryChannelClientStateResponse, QueryChannelConsensusStateRequest, QueryChannelConsensusStateResponse, QueryPacketCommitmentRequest, QueryPacketCommitmentResponse, QueryPacketCommitmentsRequest, QueryPacketCommitmentsResponse, QueryPacketReceiptRequest, QueryPacketReceiptResponse, QueryPacketAcknowledgementRequest, QueryPacketAcknowledgementResponse, QueryPacketAcknowledgementsRequest, QueryPacketAcknowledgementsResponse, QueryUnreceivedPacketsRequest, QueryUnreceivedPacketsResponse, QueryUnreceivedAcksRequest, QueryUnreceivedAcksResponse, QueryNextSequenceReceiveRequest, QueryNextSequenceReceiveResponse } from "./query"; -/** Query provides defines the gRPC querier service */ -export interface Query { - /** Channel queries an IBC Channel. */ - channel(request: QueryChannelRequest): Promise; - /** Channels queries all the IBC channels of a chain. */ - channels(request?: QueryChannelsRequest): Promise; - /** - * ConnectionChannels queries all the channels associated with a connection - * end. - */ - connectionChannels(request: QueryConnectionChannelsRequest): Promise; - /** - * ChannelClientState queries for the client state for the channel associated - * with the provided channel identifiers. - */ - channelClientState(request: QueryChannelClientStateRequest): Promise; - /** - * ChannelConsensusState queries for the consensus state for the channel - * associated with the provided channel identifiers. - */ - channelConsensusState(request: QueryChannelConsensusStateRequest): Promise; - /** PacketCommitment queries a stored packet commitment hash. */ - packetCommitment(request: QueryPacketCommitmentRequest): Promise; - /** - * PacketCommitments returns all the packet commitments hashes associated - * with a channel. - */ - packetCommitments(request: QueryPacketCommitmentsRequest): Promise; - /** - * PacketReceipt queries if a given packet sequence has been received on the - * queried chain - */ - packetReceipt(request: QueryPacketReceiptRequest): Promise; - /** PacketAcknowledgement queries a stored packet acknowledgement hash. */ - packetAcknowledgement(request: QueryPacketAcknowledgementRequest): Promise; - /** - * PacketAcknowledgements returns all the packet acknowledgements associated - * with a channel. - */ - packetAcknowledgements(request: QueryPacketAcknowledgementsRequest): Promise; - /** - * UnreceivedPackets returns all the unreceived IBC packets associated with a - * channel and sequences. - */ - unreceivedPackets(request: QueryUnreceivedPacketsRequest): Promise; - /** - * UnreceivedAcks returns all the unreceived IBC acknowledgements associated - * with a channel and sequences. - */ - unreceivedAcks(request: QueryUnreceivedAcksRequest): Promise; - /** NextSequenceReceive returns the next receive sequence for a given channel. */ - nextSequenceReceive(request: QueryNextSequenceReceiveRequest): Promise; -} -export declare class QueryClientImpl implements Query { - private readonly rpc; - constructor(rpc: Rpc); - channel(request: QueryChannelRequest): Promise; - channels(request?: QueryChannelsRequest): Promise; - connectionChannels(request: QueryConnectionChannelsRequest): Promise; - channelClientState(request: QueryChannelClientStateRequest): Promise; - channelConsensusState(request: QueryChannelConsensusStateRequest): Promise; - packetCommitment(request: QueryPacketCommitmentRequest): Promise; - packetCommitments(request: QueryPacketCommitmentsRequest): Promise; - packetReceipt(request: QueryPacketReceiptRequest): Promise; - packetAcknowledgement(request: QueryPacketAcknowledgementRequest): Promise; - packetAcknowledgements(request: QueryPacketAcknowledgementsRequest): Promise; - unreceivedPackets(request: QueryUnreceivedPacketsRequest): Promise; - unreceivedAcks(request: QueryUnreceivedAcksRequest): Promise; - nextSequenceReceive(request: QueryNextSequenceReceiveRequest): Promise; -} -export declare const createRpcQueryExtension: (base: QueryClient) => { - channel(request: QueryChannelRequest): Promise; - channels(request?: QueryChannelsRequest): Promise; - connectionChannels(request: QueryConnectionChannelsRequest): Promise; - channelClientState(request: QueryChannelClientStateRequest): Promise; - channelConsensusState(request: QueryChannelConsensusStateRequest): Promise; - packetCommitment(request: QueryPacketCommitmentRequest): Promise; - packetCommitments(request: QueryPacketCommitmentsRequest): Promise; - packetReceipt(request: QueryPacketReceiptRequest): Promise; - packetAcknowledgement(request: QueryPacketAcknowledgementRequest): Promise; - packetAcknowledgements(request: QueryPacketAcknowledgementsRequest): Promise; - unreceivedPackets(request: QueryUnreceivedPacketsRequest): Promise; - unreceivedAcks(request: QueryUnreceivedAcksRequest): Promise; - nextSequenceReceive(request: QueryNextSequenceReceiveRequest): Promise; -}; diff --git a/packages/codegen/dist/ibc/core/channel/v1/tx.d.ts b/packages/codegen/dist/ibc/core/channel/v1/tx.d.ts deleted file mode 100644 index adb36668..00000000 --- a/packages/codegen/dist/ibc/core/channel/v1/tx.d.ts +++ /dev/null @@ -1,377 +0,0 @@ -/// -import { Channel, ChannelSDKType, Packet, PacketSDKType } from "./channel"; -import { Height, HeightSDKType } from "../../client/v1/client"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../../helpers"; -/** - * MsgChannelOpenInit defines an sdk.Msg to initialize a channel handshake. It - * is called by a relayer on Chain A. - */ -export interface MsgChannelOpenInit { - portId: string; - channel?: Channel; - signer: string; -} -/** - * MsgChannelOpenInit defines an sdk.Msg to initialize a channel handshake. It - * is called by a relayer on Chain A. - */ -export interface MsgChannelOpenInitSDKType { - port_id: string; - channel?: ChannelSDKType; - signer: string; -} -/** MsgChannelOpenInitResponse defines the Msg/ChannelOpenInit response type. */ -export interface MsgChannelOpenInitResponse { -} -/** MsgChannelOpenInitResponse defines the Msg/ChannelOpenInit response type. */ -export interface MsgChannelOpenInitResponseSDKType { -} -/** - * MsgChannelOpenInit defines a msg sent by a Relayer to try to open a channel - * on Chain B. - */ -export interface MsgChannelOpenTry { - portId: string; - /** - * in the case of crossing hello's, when both chains call OpenInit, we need - * the channel identifier of the previous channel in state INIT - */ - previousChannelId: string; - channel?: Channel; - counterpartyVersion: string; - proofInit: Uint8Array; - proofHeight?: Height; - signer: string; -} -/** - * MsgChannelOpenInit defines a msg sent by a Relayer to try to open a channel - * on Chain B. - */ -export interface MsgChannelOpenTrySDKType { - port_id: string; - previous_channel_id: string; - channel?: ChannelSDKType; - counterparty_version: string; - proof_init: Uint8Array; - proof_height?: HeightSDKType; - signer: string; -} -/** MsgChannelOpenTryResponse defines the Msg/ChannelOpenTry response type. */ -export interface MsgChannelOpenTryResponse { -} -/** MsgChannelOpenTryResponse defines the Msg/ChannelOpenTry response type. */ -export interface MsgChannelOpenTryResponseSDKType { -} -/** - * MsgChannelOpenAck defines a msg sent by a Relayer to Chain A to acknowledge - * the change of channel state to TRYOPEN on Chain B. - */ -export interface MsgChannelOpenAck { - portId: string; - channelId: string; - counterpartyChannelId: string; - counterpartyVersion: string; - proofTry: Uint8Array; - proofHeight?: Height; - signer: string; -} -/** - * MsgChannelOpenAck defines a msg sent by a Relayer to Chain A to acknowledge - * the change of channel state to TRYOPEN on Chain B. - */ -export interface MsgChannelOpenAckSDKType { - port_id: string; - channel_id: string; - counterparty_channel_id: string; - counterparty_version: string; - proof_try: Uint8Array; - proof_height?: HeightSDKType; - signer: string; -} -/** MsgChannelOpenAckResponse defines the Msg/ChannelOpenAck response type. */ -export interface MsgChannelOpenAckResponse { -} -/** MsgChannelOpenAckResponse defines the Msg/ChannelOpenAck response type. */ -export interface MsgChannelOpenAckResponseSDKType { -} -/** - * MsgChannelOpenConfirm defines a msg sent by a Relayer to Chain B to - * acknowledge the change of channel state to OPEN on Chain A. - */ -export interface MsgChannelOpenConfirm { - portId: string; - channelId: string; - proofAck: Uint8Array; - proofHeight?: Height; - signer: string; -} -/** - * MsgChannelOpenConfirm defines a msg sent by a Relayer to Chain B to - * acknowledge the change of channel state to OPEN on Chain A. - */ -export interface MsgChannelOpenConfirmSDKType { - port_id: string; - channel_id: string; - proof_ack: Uint8Array; - proof_height?: HeightSDKType; - signer: string; -} -/** - * MsgChannelOpenConfirmResponse defines the Msg/ChannelOpenConfirm response - * type. - */ -export interface MsgChannelOpenConfirmResponse { -} -/** - * MsgChannelOpenConfirmResponse defines the Msg/ChannelOpenConfirm response - * type. - */ -export interface MsgChannelOpenConfirmResponseSDKType { -} -/** - * MsgChannelCloseInit defines a msg sent by a Relayer to Chain A - * to close a channel with Chain B. - */ -export interface MsgChannelCloseInit { - portId: string; - channelId: string; - signer: string; -} -/** - * MsgChannelCloseInit defines a msg sent by a Relayer to Chain A - * to close a channel with Chain B. - */ -export interface MsgChannelCloseInitSDKType { - port_id: string; - channel_id: string; - signer: string; -} -/** MsgChannelCloseInitResponse defines the Msg/ChannelCloseInit response type. */ -export interface MsgChannelCloseInitResponse { -} -/** MsgChannelCloseInitResponse defines the Msg/ChannelCloseInit response type. */ -export interface MsgChannelCloseInitResponseSDKType { -} -/** - * MsgChannelCloseConfirm defines a msg sent by a Relayer to Chain B - * to acknowledge the change of channel state to CLOSED on Chain A. - */ -export interface MsgChannelCloseConfirm { - portId: string; - channelId: string; - proofInit: Uint8Array; - proofHeight?: Height; - signer: string; -} -/** - * MsgChannelCloseConfirm defines a msg sent by a Relayer to Chain B - * to acknowledge the change of channel state to CLOSED on Chain A. - */ -export interface MsgChannelCloseConfirmSDKType { - port_id: string; - channel_id: string; - proof_init: Uint8Array; - proof_height?: HeightSDKType; - signer: string; -} -/** - * MsgChannelCloseConfirmResponse defines the Msg/ChannelCloseConfirm response - * type. - */ -export interface MsgChannelCloseConfirmResponse { -} -/** - * MsgChannelCloseConfirmResponse defines the Msg/ChannelCloseConfirm response - * type. - */ -export interface MsgChannelCloseConfirmResponseSDKType { -} -/** MsgRecvPacket receives incoming IBC packet */ -export interface MsgRecvPacket { - packet?: Packet; - proofCommitment: Uint8Array; - proofHeight?: Height; - signer: string; -} -/** MsgRecvPacket receives incoming IBC packet */ -export interface MsgRecvPacketSDKType { - packet?: PacketSDKType; - proof_commitment: Uint8Array; - proof_height?: HeightSDKType; - signer: string; -} -/** MsgRecvPacketResponse defines the Msg/RecvPacket response type. */ -export interface MsgRecvPacketResponse { -} -/** MsgRecvPacketResponse defines the Msg/RecvPacket response type. */ -export interface MsgRecvPacketResponseSDKType { -} -/** MsgTimeout receives timed-out packet */ -export interface MsgTimeout { - packet?: Packet; - proofUnreceived: Uint8Array; - proofHeight?: Height; - nextSequenceRecv: Long; - signer: string; -} -/** MsgTimeout receives timed-out packet */ -export interface MsgTimeoutSDKType { - packet?: PacketSDKType; - proof_unreceived: Uint8Array; - proof_height?: HeightSDKType; - next_sequence_recv: Long; - signer: string; -} -/** MsgTimeoutResponse defines the Msg/Timeout response type. */ -export interface MsgTimeoutResponse { -} -/** MsgTimeoutResponse defines the Msg/Timeout response type. */ -export interface MsgTimeoutResponseSDKType { -} -/** MsgTimeoutOnClose timed-out packet upon counterparty channel closure. */ -export interface MsgTimeoutOnClose { - packet?: Packet; - proofUnreceived: Uint8Array; - proofClose: Uint8Array; - proofHeight?: Height; - nextSequenceRecv: Long; - signer: string; -} -/** MsgTimeoutOnClose timed-out packet upon counterparty channel closure. */ -export interface MsgTimeoutOnCloseSDKType { - packet?: PacketSDKType; - proof_unreceived: Uint8Array; - proof_close: Uint8Array; - proof_height?: HeightSDKType; - next_sequence_recv: Long; - signer: string; -} -/** MsgTimeoutOnCloseResponse defines the Msg/TimeoutOnClose response type. */ -export interface MsgTimeoutOnCloseResponse { -} -/** MsgTimeoutOnCloseResponse defines the Msg/TimeoutOnClose response type. */ -export interface MsgTimeoutOnCloseResponseSDKType { -} -/** MsgAcknowledgement receives incoming IBC acknowledgement */ -export interface MsgAcknowledgement { - packet?: Packet; - acknowledgement: Uint8Array; - proofAcked: Uint8Array; - proofHeight?: Height; - signer: string; -} -/** MsgAcknowledgement receives incoming IBC acknowledgement */ -export interface MsgAcknowledgementSDKType { - packet?: PacketSDKType; - acknowledgement: Uint8Array; - proof_acked: Uint8Array; - proof_height?: HeightSDKType; - signer: string; -} -/** MsgAcknowledgementResponse defines the Msg/Acknowledgement response type. */ -export interface MsgAcknowledgementResponse { -} -/** MsgAcknowledgementResponse defines the Msg/Acknowledgement response type. */ -export interface MsgAcknowledgementResponseSDKType { -} -export declare const MsgChannelOpenInit: { - encode(message: MsgChannelOpenInit, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelOpenInit; - fromPartial(object: DeepPartial): MsgChannelOpenInit; -}; -export declare const MsgChannelOpenInitResponse: { - encode(_: MsgChannelOpenInitResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelOpenInitResponse; - fromPartial(_: DeepPartial): MsgChannelOpenInitResponse; -}; -export declare const MsgChannelOpenTry: { - encode(message: MsgChannelOpenTry, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelOpenTry; - fromPartial(object: DeepPartial): MsgChannelOpenTry; -}; -export declare const MsgChannelOpenTryResponse: { - encode(_: MsgChannelOpenTryResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelOpenTryResponse; - fromPartial(_: DeepPartial): MsgChannelOpenTryResponse; -}; -export declare const MsgChannelOpenAck: { - encode(message: MsgChannelOpenAck, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelOpenAck; - fromPartial(object: DeepPartial): MsgChannelOpenAck; -}; -export declare const MsgChannelOpenAckResponse: { - encode(_: MsgChannelOpenAckResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelOpenAckResponse; - fromPartial(_: DeepPartial): MsgChannelOpenAckResponse; -}; -export declare const MsgChannelOpenConfirm: { - encode(message: MsgChannelOpenConfirm, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelOpenConfirm; - fromPartial(object: DeepPartial): MsgChannelOpenConfirm; -}; -export declare const MsgChannelOpenConfirmResponse: { - encode(_: MsgChannelOpenConfirmResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelOpenConfirmResponse; - fromPartial(_: DeepPartial): MsgChannelOpenConfirmResponse; -}; -export declare const MsgChannelCloseInit: { - encode(message: MsgChannelCloseInit, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelCloseInit; - fromPartial(object: DeepPartial): MsgChannelCloseInit; -}; -export declare const MsgChannelCloseInitResponse: { - encode(_: MsgChannelCloseInitResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelCloseInitResponse; - fromPartial(_: DeepPartial): MsgChannelCloseInitResponse; -}; -export declare const MsgChannelCloseConfirm: { - encode(message: MsgChannelCloseConfirm, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelCloseConfirm; - fromPartial(object: DeepPartial): MsgChannelCloseConfirm; -}; -export declare const MsgChannelCloseConfirmResponse: { - encode(_: MsgChannelCloseConfirmResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelCloseConfirmResponse; - fromPartial(_: DeepPartial): MsgChannelCloseConfirmResponse; -}; -export declare const MsgRecvPacket: { - encode(message: MsgRecvPacket, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgRecvPacket; - fromPartial(object: DeepPartial): MsgRecvPacket; -}; -export declare const MsgRecvPacketResponse: { - encode(_: MsgRecvPacketResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgRecvPacketResponse; - fromPartial(_: DeepPartial): MsgRecvPacketResponse; -}; -export declare const MsgTimeout: { - encode(message: MsgTimeout, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgTimeout; - fromPartial(object: DeepPartial): MsgTimeout; -}; -export declare const MsgTimeoutResponse: { - encode(_: MsgTimeoutResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgTimeoutResponse; - fromPartial(_: DeepPartial): MsgTimeoutResponse; -}; -export declare const MsgTimeoutOnClose: { - encode(message: MsgTimeoutOnClose, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgTimeoutOnClose; - fromPartial(object: DeepPartial): MsgTimeoutOnClose; -}; -export declare const MsgTimeoutOnCloseResponse: { - encode(_: MsgTimeoutOnCloseResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgTimeoutOnCloseResponse; - fromPartial(_: DeepPartial): MsgTimeoutOnCloseResponse; -}; -export declare const MsgAcknowledgement: { - encode(message: MsgAcknowledgement, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgAcknowledgement; - fromPartial(object: DeepPartial): MsgAcknowledgement; -}; -export declare const MsgAcknowledgementResponse: { - encode(_: MsgAcknowledgementResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgAcknowledgementResponse; - fromPartial(_: DeepPartial): MsgAcknowledgementResponse; -}; diff --git a/packages/codegen/dist/ibc/core/channel/v1/tx.rpc.msg.d.ts b/packages/codegen/dist/ibc/core/channel/v1/tx.rpc.msg.d.ts deleted file mode 100644 index 2125f0e9..00000000 --- a/packages/codegen/dist/ibc/core/channel/v1/tx.rpc.msg.d.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Rpc } from "../../../../helpers"; -import { MsgChannelOpenInit, MsgChannelOpenInitResponse, MsgChannelOpenTry, MsgChannelOpenTryResponse, MsgChannelOpenAck, MsgChannelOpenAckResponse, MsgChannelOpenConfirm, MsgChannelOpenConfirmResponse, MsgChannelCloseInit, MsgChannelCloseInitResponse, MsgChannelCloseConfirm, MsgChannelCloseConfirmResponse, MsgRecvPacket, MsgRecvPacketResponse, MsgTimeout, MsgTimeoutResponse, MsgTimeoutOnClose, MsgTimeoutOnCloseResponse, MsgAcknowledgement, MsgAcknowledgementResponse } from "./tx"; -/** Msg defines the ibc/channel Msg service. */ -export interface Msg { - /** ChannelOpenInit defines a rpc handler method for MsgChannelOpenInit. */ - channelOpenInit(request: MsgChannelOpenInit): Promise; - /** ChannelOpenTry defines a rpc handler method for MsgChannelOpenTry. */ - channelOpenTry(request: MsgChannelOpenTry): Promise; - /** ChannelOpenAck defines a rpc handler method for MsgChannelOpenAck. */ - channelOpenAck(request: MsgChannelOpenAck): Promise; - /** ChannelOpenConfirm defines a rpc handler method for MsgChannelOpenConfirm. */ - channelOpenConfirm(request: MsgChannelOpenConfirm): Promise; - /** ChannelCloseInit defines a rpc handler method for MsgChannelCloseInit. */ - channelCloseInit(request: MsgChannelCloseInit): Promise; - /** - * ChannelCloseConfirm defines a rpc handler method for - * MsgChannelCloseConfirm. - */ - channelCloseConfirm(request: MsgChannelCloseConfirm): Promise; - /** RecvPacket defines a rpc handler method for MsgRecvPacket. */ - recvPacket(request: MsgRecvPacket): Promise; - /** Timeout defines a rpc handler method for MsgTimeout. */ - timeout(request: MsgTimeout): Promise; - /** TimeoutOnClose defines a rpc handler method for MsgTimeoutOnClose. */ - timeoutOnClose(request: MsgTimeoutOnClose): Promise; - /** Acknowledgement defines a rpc handler method for MsgAcknowledgement. */ - acknowledgement(request: MsgAcknowledgement): Promise; -} -export declare class MsgClientImpl implements Msg { - private readonly rpc; - constructor(rpc: Rpc); - channelOpenInit(request: MsgChannelOpenInit): Promise; - channelOpenTry(request: MsgChannelOpenTry): Promise; - channelOpenAck(request: MsgChannelOpenAck): Promise; - channelOpenConfirm(request: MsgChannelOpenConfirm): Promise; - channelCloseInit(request: MsgChannelCloseInit): Promise; - channelCloseConfirm(request: MsgChannelCloseConfirm): Promise; - recvPacket(request: MsgRecvPacket): Promise; - timeout(request: MsgTimeout): Promise; - timeoutOnClose(request: MsgTimeoutOnClose): Promise; - acknowledgement(request: MsgAcknowledgement): Promise; -} diff --git a/packages/codegen/dist/ibc/core/client/v1/client.d.ts b/packages/codegen/dist/ibc/core/client/v1/client.d.ts deleted file mode 100644 index 63d0e24f..00000000 --- a/packages/codegen/dist/ibc/core/client/v1/client.d.ts +++ /dev/null @@ -1,196 +0,0 @@ -/// -import { Any, AnySDKType } from "../../../../google/protobuf/any"; -import { Plan, PlanSDKType } from "../../../../cosmos/upgrade/v1beta1/upgrade"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../../helpers"; -/** - * IdentifiedClientState defines a client state with an additional client - * identifier field. - */ -export interface IdentifiedClientState { - /** client identifier */ - clientId: string; - /** client state */ - clientState?: Any; -} -/** - * IdentifiedClientState defines a client state with an additional client - * identifier field. - */ -export interface IdentifiedClientStateSDKType { - client_id: string; - client_state?: AnySDKType; -} -/** - * ConsensusStateWithHeight defines a consensus state with an additional height - * field. - */ -export interface ConsensusStateWithHeight { - /** consensus state height */ - height?: Height; - /** consensus state */ - consensusState?: Any; -} -/** - * ConsensusStateWithHeight defines a consensus state with an additional height - * field. - */ -export interface ConsensusStateWithHeightSDKType { - height?: HeightSDKType; - consensus_state?: AnySDKType; -} -/** - * ClientConsensusStates defines all the stored consensus states for a given - * client. - */ -export interface ClientConsensusStates { - /** client identifier */ - clientId: string; - /** consensus states and their heights associated with the client */ - consensusStates: ConsensusStateWithHeight[]; -} -/** - * ClientConsensusStates defines all the stored consensus states for a given - * client. - */ -export interface ClientConsensusStatesSDKType { - client_id: string; - consensus_states: ConsensusStateWithHeightSDKType[]; -} -/** - * ClientUpdateProposal is a governance proposal. If it passes, the substitute - * client's latest consensus state is copied over to the subject client. The proposal - * handler may fail if the subject and the substitute do not match in client and - * chain parameters (with exception to latest height, frozen height, and chain-id). - */ -export interface ClientUpdateProposal { - /** the title of the update proposal */ - title: string; - /** the description of the proposal */ - description: string; - /** the client identifier for the client to be updated if the proposal passes */ - subjectClientId: string; - /** - * the substitute client identifier for the client standing in for the subject - * client - */ - substituteClientId: string; -} -/** - * ClientUpdateProposal is a governance proposal. If it passes, the substitute - * client's latest consensus state is copied over to the subject client. The proposal - * handler may fail if the subject and the substitute do not match in client and - * chain parameters (with exception to latest height, frozen height, and chain-id). - */ -export interface ClientUpdateProposalSDKType { - title: string; - description: string; - subject_client_id: string; - substitute_client_id: string; -} -/** - * UpgradeProposal is a gov Content type for initiating an IBC breaking - * upgrade. - */ -export interface UpgradeProposal { - title: string; - description: string; - 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 - */ - upgradedClientState?: Any; -} -/** - * UpgradeProposal is a gov Content type for initiating an IBC breaking - * upgrade. - */ -export interface UpgradeProposalSDKType { - title: string; - description: string; - plan?: PlanSDKType; - upgraded_client_state?: AnySDKType; -} -/** - * 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 - */ -export interface Height { - /** the revision that the client is currently on */ - revisionNumber: Long; - /** the height within the given revision */ - revisionHeight: Long; -} -/** - * 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 - */ -export interface HeightSDKType { - revision_number: Long; - revision_height: Long; -} -/** Params defines the set of IBC light client parameters. */ -export interface Params { - /** allowed_clients defines the list of allowed client state types. */ - allowedClients: string[]; -} -/** Params defines the set of IBC light client parameters. */ -export interface ParamsSDKType { - allowed_clients: string[]; -} -export declare const IdentifiedClientState: { - encode(message: IdentifiedClientState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): IdentifiedClientState; - fromPartial(object: DeepPartial): IdentifiedClientState; -}; -export declare const ConsensusStateWithHeight: { - encode(message: ConsensusStateWithHeight, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ConsensusStateWithHeight; - fromPartial(object: DeepPartial): ConsensusStateWithHeight; -}; -export declare const ClientConsensusStates: { - encode(message: ClientConsensusStates, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ClientConsensusStates; - fromPartial(object: DeepPartial): ClientConsensusStates; -}; -export declare const ClientUpdateProposal: { - encode(message: ClientUpdateProposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ClientUpdateProposal; - fromPartial(object: DeepPartial): ClientUpdateProposal; -}; -export declare const UpgradeProposal: { - encode(message: UpgradeProposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): UpgradeProposal; - fromPartial(object: DeepPartial): UpgradeProposal; -}; -export declare const Height: { - encode(message: Height, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Height; - fromPartial(object: DeepPartial): Height; -}; -export declare const Params: { - encode(message: Params, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Params; - fromPartial(object: DeepPartial): Params; -}; diff --git a/packages/codegen/dist/ibc/core/client/v1/genesis.d.ts b/packages/codegen/dist/ibc/core/client/v1/genesis.d.ts deleted file mode 100644 index 52aac222..00000000 --- a/packages/codegen/dist/ibc/core/client/v1/genesis.d.ts +++ /dev/null @@ -1,76 +0,0 @@ -/// -import { IdentifiedClientState, IdentifiedClientStateSDKType, ClientConsensusStates, ClientConsensusStatesSDKType, Params, ParamsSDKType } from "./client"; -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** GenesisState defines the ibc client submodule's genesis state. */ -export interface GenesisState { - /** client states with their corresponding identifiers */ - clients: IdentifiedClientState[]; - /** consensus states from each client */ - clientsConsensus: ClientConsensusStates[]; - /** metadata from each client */ - clientsMetadata: IdentifiedGenesisMetadata[]; - params?: Params; - /** create localhost on initialization */ - createLocalhost: boolean; - /** the sequence for the next generated client identifier */ - nextClientSequence: Long; -} -/** GenesisState defines the ibc client submodule's genesis state. */ -export interface GenesisStateSDKType { - clients: IdentifiedClientStateSDKType[]; - clients_consensus: ClientConsensusStatesSDKType[]; - clients_metadata: IdentifiedGenesisMetadataSDKType[]; - params?: ParamsSDKType; - create_localhost: boolean; - next_client_sequence: Long; -} -/** - * GenesisMetadata defines the genesis type for metadata that clients may return - * with ExportMetadata - */ -export interface GenesisMetadata { - /** store key of metadata without clientID-prefix */ - key: Uint8Array; - /** metadata value */ - value: Uint8Array; -} -/** - * GenesisMetadata defines the genesis type for metadata that clients may return - * with ExportMetadata - */ -export interface GenesisMetadataSDKType { - key: Uint8Array; - value: Uint8Array; -} -/** - * IdentifiedGenesisMetadata has the client metadata with the corresponding - * client id. - */ -export interface IdentifiedGenesisMetadata { - clientId: string; - clientMetadata: GenesisMetadata[]; -} -/** - * IdentifiedGenesisMetadata has the client metadata with the corresponding - * client id. - */ -export interface IdentifiedGenesisMetadataSDKType { - client_id: string; - client_metadata: GenesisMetadataSDKType[]; -} -export declare const GenesisState: { - encode(message: GenesisState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState; - fromPartial(object: DeepPartial): GenesisState; -}; -export declare const GenesisMetadata: { - encode(message: GenesisMetadata, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisMetadata; - fromPartial(object: DeepPartial): GenesisMetadata; -}; -export declare const IdentifiedGenesisMetadata: { - encode(message: IdentifiedGenesisMetadata, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): IdentifiedGenesisMetadata; - fromPartial(object: DeepPartial): IdentifiedGenesisMetadata; -}; diff --git a/packages/codegen/dist/ibc/core/client/v1/query.d.ts b/packages/codegen/dist/ibc/core/client/v1/query.d.ts deleted file mode 100644 index 746ff675..00000000 --- a/packages/codegen/dist/ibc/core/client/v1/query.d.ts +++ /dev/null @@ -1,353 +0,0 @@ -/// -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../../../cosmos/base/query/v1beta1/pagination"; -import { Any, AnySDKType } from "../../../../google/protobuf/any"; -import { Height, HeightSDKType, IdentifiedClientState, IdentifiedClientStateSDKType, ConsensusStateWithHeight, ConsensusStateWithHeightSDKType, Params, ParamsSDKType } from "./client"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../../helpers"; -/** - * QueryClientStateRequest is the request type for the Query/ClientState RPC - * method - */ -export interface QueryClientStateRequest { - /** client state unique identifier */ - clientId: string; -} -/** - * QueryClientStateRequest is the request type for the Query/ClientState RPC - * method - */ -export interface QueryClientStateRequestSDKType { - client_id: string; -} -/** - * 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. - */ -export interface QueryClientStateResponse { - /** client state associated with the request identifier */ - clientState?: Any; - /** merkle proof of existence */ - proof: Uint8Array; - /** height at which the proof was retrieved */ - proofHeight?: Height; -} -/** - * 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. - */ -export interface QueryClientStateResponseSDKType { - client_state?: AnySDKType; - proof: Uint8Array; - proof_height?: HeightSDKType; -} -/** - * QueryClientStatesRequest is the request type for the Query/ClientStates RPC - * method - */ -export interface QueryClientStatesRequest { - /** pagination request */ - pagination?: PageRequest; -} -/** - * QueryClientStatesRequest is the request type for the Query/ClientStates RPC - * method - */ -export interface QueryClientStatesRequestSDKType { - pagination?: PageRequestSDKType; -} -/** - * QueryClientStatesResponse is the response type for the Query/ClientStates RPC - * method. - */ -export interface QueryClientStatesResponse { - /** list of stored ClientStates of the chain. */ - clientStates: IdentifiedClientState[]; - /** pagination response */ - pagination?: PageResponse; -} -/** - * QueryClientStatesResponse is the response type for the Query/ClientStates RPC - * method. - */ -export interface QueryClientStatesResponseSDKType { - client_states: IdentifiedClientStateSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * 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. - */ -export interface QueryConsensusStateRequest { - /** client identifier */ - clientId: string; - /** consensus state revision number */ - revisionNumber: Long; - /** consensus state revision height */ - revisionHeight: Long; - /** - * latest_height overrrides the height field and queries the latest stored - * ConsensusState - */ - latestHeight: boolean; -} -/** - * 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. - */ -export interface QueryConsensusStateRequestSDKType { - client_id: string; - revision_number: Long; - revision_height: Long; - latest_height: boolean; -} -/** - * QueryConsensusStateResponse is the response type for the Query/ConsensusState - * RPC method - */ -export interface QueryConsensusStateResponse { - /** consensus state associated with the client identifier at the given height */ - consensusState?: Any; - /** merkle proof of existence */ - proof: Uint8Array; - /** height at which the proof was retrieved */ - proofHeight?: Height; -} -/** - * QueryConsensusStateResponse is the response type for the Query/ConsensusState - * RPC method - */ -export interface QueryConsensusStateResponseSDKType { - consensus_state?: AnySDKType; - proof: Uint8Array; - proof_height?: HeightSDKType; -} -/** - * QueryConsensusStatesRequest is the request type for the Query/ConsensusStates - * RPC method. - */ -export interface QueryConsensusStatesRequest { - /** client identifier */ - clientId: string; - /** pagination request */ - pagination?: PageRequest; -} -/** - * QueryConsensusStatesRequest is the request type for the Query/ConsensusStates - * RPC method. - */ -export interface QueryConsensusStatesRequestSDKType { - client_id: string; - pagination?: PageRequestSDKType; -} -/** - * QueryConsensusStatesResponse is the response type for the - * Query/ConsensusStates RPC method - */ -export interface QueryConsensusStatesResponse { - /** consensus states associated with the identifier */ - consensusStates: ConsensusStateWithHeight[]; - /** pagination response */ - pagination?: PageResponse; -} -/** - * QueryConsensusStatesResponse is the response type for the - * Query/ConsensusStates RPC method - */ -export interface QueryConsensusStatesResponseSDKType { - consensus_states: ConsensusStateWithHeightSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * QueryClientStatusRequest is the request type for the Query/ClientStatus RPC - * method - */ -export interface QueryClientStatusRequest { - /** client unique identifier */ - clientId: string; -} -/** - * QueryClientStatusRequest is the request type for the Query/ClientStatus RPC - * method - */ -export interface QueryClientStatusRequestSDKType { - client_id: string; -} -/** - * QueryClientStatusResponse is the response type for the Query/ClientStatus RPC - * method. It returns the current status of the IBC client. - */ -export interface QueryClientStatusResponse { - status: string; -} -/** - * QueryClientStatusResponse is the response type for the Query/ClientStatus RPC - * method. It returns the current status of the IBC client. - */ -export interface QueryClientStatusResponseSDKType { - status: string; -} -/** - * QueryClientParamsRequest is the request type for the Query/ClientParams RPC - * method. - */ -export interface QueryClientParamsRequest { -} -/** - * QueryClientParamsRequest is the request type for the Query/ClientParams RPC - * method. - */ -export interface QueryClientParamsRequestSDKType { -} -/** - * QueryClientParamsResponse is the response type for the Query/ClientParams RPC - * method. - */ -export interface QueryClientParamsResponse { - /** params defines the parameters of the module. */ - params?: Params; -} -/** - * QueryClientParamsResponse is the response type for the Query/ClientParams RPC - * method. - */ -export interface QueryClientParamsResponseSDKType { - params?: ParamsSDKType; -} -/** - * QueryUpgradedClientStateRequest is the request type for the - * Query/UpgradedClientState RPC method - */ -export interface QueryUpgradedClientStateRequest { -} -/** - * QueryUpgradedClientStateRequest is the request type for the - * Query/UpgradedClientState RPC method - */ -export interface QueryUpgradedClientStateRequestSDKType { -} -/** - * QueryUpgradedClientStateResponse is the response type for the - * Query/UpgradedClientState RPC method. - */ -export interface QueryUpgradedClientStateResponse { - /** client state associated with the request identifier */ - upgradedClientState?: Any; -} -/** - * QueryUpgradedClientStateResponse is the response type for the - * Query/UpgradedClientState RPC method. - */ -export interface QueryUpgradedClientStateResponseSDKType { - upgraded_client_state?: AnySDKType; -} -/** - * QueryUpgradedConsensusStateRequest is the request type for the - * Query/UpgradedConsensusState RPC method - */ -export interface QueryUpgradedConsensusStateRequest { -} -/** - * QueryUpgradedConsensusStateRequest is the request type for the - * Query/UpgradedConsensusState RPC method - */ -export interface QueryUpgradedConsensusStateRequestSDKType { -} -/** - * QueryUpgradedConsensusStateResponse is the response type for the - * Query/UpgradedConsensusState RPC method. - */ -export interface QueryUpgradedConsensusStateResponse { - /** Consensus state associated with the request identifier */ - upgradedConsensusState?: Any; -} -/** - * QueryUpgradedConsensusStateResponse is the response type for the - * Query/UpgradedConsensusState RPC method. - */ -export interface QueryUpgradedConsensusStateResponseSDKType { - upgraded_consensus_state?: AnySDKType; -} -export declare const QueryClientStateRequest: { - encode(message: QueryClientStateRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClientStateRequest; - fromPartial(object: DeepPartial): QueryClientStateRequest; -}; -export declare const QueryClientStateResponse: { - encode(message: QueryClientStateResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClientStateResponse; - fromPartial(object: DeepPartial): QueryClientStateResponse; -}; -export declare const QueryClientStatesRequest: { - encode(message: QueryClientStatesRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClientStatesRequest; - fromPartial(object: DeepPartial): QueryClientStatesRequest; -}; -export declare const QueryClientStatesResponse: { - encode(message: QueryClientStatesResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClientStatesResponse; - fromPartial(object: DeepPartial): QueryClientStatesResponse; -}; -export declare const QueryConsensusStateRequest: { - encode(message: QueryConsensusStateRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConsensusStateRequest; - fromPartial(object: DeepPartial): QueryConsensusStateRequest; -}; -export declare const QueryConsensusStateResponse: { - encode(message: QueryConsensusStateResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConsensusStateResponse; - fromPartial(object: DeepPartial): QueryConsensusStateResponse; -}; -export declare const QueryConsensusStatesRequest: { - encode(message: QueryConsensusStatesRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConsensusStatesRequest; - fromPartial(object: DeepPartial): QueryConsensusStatesRequest; -}; -export declare const QueryConsensusStatesResponse: { - encode(message: QueryConsensusStatesResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConsensusStatesResponse; - fromPartial(object: DeepPartial): QueryConsensusStatesResponse; -}; -export declare const QueryClientStatusRequest: { - encode(message: QueryClientStatusRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClientStatusRequest; - fromPartial(object: DeepPartial): QueryClientStatusRequest; -}; -export declare const QueryClientStatusResponse: { - encode(message: QueryClientStatusResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClientStatusResponse; - fromPartial(object: DeepPartial): QueryClientStatusResponse; -}; -export declare const QueryClientParamsRequest: { - encode(_: QueryClientParamsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClientParamsRequest; - fromPartial(_: DeepPartial): QueryClientParamsRequest; -}; -export declare const QueryClientParamsResponse: { - encode(message: QueryClientParamsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClientParamsResponse; - fromPartial(object: DeepPartial): QueryClientParamsResponse; -}; -export declare const QueryUpgradedClientStateRequest: { - encode(_: QueryUpgradedClientStateRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryUpgradedClientStateRequest; - fromPartial(_: DeepPartial): QueryUpgradedClientStateRequest; -}; -export declare const QueryUpgradedClientStateResponse: { - encode(message: QueryUpgradedClientStateResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryUpgradedClientStateResponse; - fromPartial(object: DeepPartial): QueryUpgradedClientStateResponse; -}; -export declare const QueryUpgradedConsensusStateRequest: { - encode(_: QueryUpgradedConsensusStateRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryUpgradedConsensusStateRequest; - fromPartial(_: DeepPartial): QueryUpgradedConsensusStateRequest; -}; -export declare const QueryUpgradedConsensusStateResponse: { - encode(message: QueryUpgradedConsensusStateResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryUpgradedConsensusStateResponse; - fromPartial(object: DeepPartial): QueryUpgradedConsensusStateResponse; -}; diff --git a/packages/codegen/dist/ibc/core/client/v1/query.lcd.d.ts b/packages/codegen/dist/ibc/core/client/v1/query.lcd.d.ts deleted file mode 100644 index 87e88d3b..00000000 --- a/packages/codegen/dist/ibc/core/client/v1/query.lcd.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { QueryClientStateRequest, QueryClientStateResponseSDKType, QueryClientStatesRequest, QueryClientStatesResponseSDKType, QueryConsensusStateRequest, QueryConsensusStateResponseSDKType, QueryConsensusStatesRequest, QueryConsensusStatesResponseSDKType, QueryClientStatusRequest, QueryClientStatusResponseSDKType, QueryClientParamsRequest, QueryClientParamsResponseSDKType, QueryUpgradedClientStateRequest, QueryUpgradedClientStateResponseSDKType, QueryUpgradedConsensusStateRequest, QueryUpgradedConsensusStateResponseSDKType } from "./query"; -export declare class LCDQueryClient { - req: LCDClient; - constructor({ requestClient }: { - requestClient: LCDClient; - }); - clientState(params: QueryClientStateRequest): Promise; - clientStates(params?: QueryClientStatesRequest): Promise; - consensusState(params: QueryConsensusStateRequest): Promise; - consensusStates(params: QueryConsensusStatesRequest): Promise; - clientStatus(params: QueryClientStatusRequest): Promise; - clientParams(_params?: QueryClientParamsRequest): Promise; - upgradedClientState(_params?: QueryUpgradedClientStateRequest): Promise; - upgradedConsensusState(_params?: QueryUpgradedConsensusStateRequest): Promise; -} diff --git a/packages/codegen/dist/ibc/core/client/v1/query.rpc.Query.d.ts b/packages/codegen/dist/ibc/core/client/v1/query.rpc.Query.d.ts deleted file mode 100644 index ae264ca1..00000000 --- a/packages/codegen/dist/ibc/core/client/v1/query.rpc.Query.d.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { Rpc } from "../../../../helpers"; -import { QueryClient } from "@cosmjs/stargate"; -import { QueryClientStateRequest, QueryClientStateResponse, QueryClientStatesRequest, QueryClientStatesResponse, QueryConsensusStateRequest, QueryConsensusStateResponse, QueryConsensusStatesRequest, QueryConsensusStatesResponse, QueryClientStatusRequest, QueryClientStatusResponse, QueryClientParamsRequest, QueryClientParamsResponse, QueryUpgradedClientStateRequest, QueryUpgradedClientStateResponse, QueryUpgradedConsensusStateRequest, QueryUpgradedConsensusStateResponse } from "./query"; -/** Query provides defines the gRPC querier service */ -export interface Query { - /** ClientState queries an IBC light client. */ - clientState(request: QueryClientStateRequest): Promise; - /** ClientStates queries all the IBC light clients of a chain. */ - clientStates(request?: QueryClientStatesRequest): Promise; - /** - * ConsensusState queries a consensus state associated with a client state at - * a given height. - */ - consensusState(request: QueryConsensusStateRequest): Promise; - /** - * ConsensusStates queries all the consensus state associated with a given - * client. - */ - consensusStates(request: QueryConsensusStatesRequest): Promise; - /** Status queries the status of an IBC client. */ - clientStatus(request: QueryClientStatusRequest): Promise; - /** ClientParams queries all parameters of the ibc client. */ - clientParams(request?: QueryClientParamsRequest): Promise; - /** UpgradedClientState queries an Upgraded IBC light client. */ - upgradedClientState(request?: QueryUpgradedClientStateRequest): Promise; - /** UpgradedConsensusState queries an Upgraded IBC consensus state. */ - upgradedConsensusState(request?: QueryUpgradedConsensusStateRequest): Promise; -} -export declare class QueryClientImpl implements Query { - private readonly rpc; - constructor(rpc: Rpc); - clientState(request: QueryClientStateRequest): Promise; - clientStates(request?: QueryClientStatesRequest): Promise; - consensusState(request: QueryConsensusStateRequest): Promise; - consensusStates(request: QueryConsensusStatesRequest): Promise; - clientStatus(request: QueryClientStatusRequest): Promise; - clientParams(request?: QueryClientParamsRequest): Promise; - upgradedClientState(request?: QueryUpgradedClientStateRequest): Promise; - upgradedConsensusState(request?: QueryUpgradedConsensusStateRequest): Promise; -} -export declare const createRpcQueryExtension: (base: QueryClient) => { - clientState(request: QueryClientStateRequest): Promise; - clientStates(request?: QueryClientStatesRequest): Promise; - consensusState(request: QueryConsensusStateRequest): Promise; - consensusStates(request: QueryConsensusStatesRequest): Promise; - clientStatus(request: QueryClientStatusRequest): Promise; - clientParams(request?: QueryClientParamsRequest): Promise; - upgradedClientState(request?: QueryUpgradedClientStateRequest): Promise; - upgradedConsensusState(request?: QueryUpgradedConsensusStateRequest): Promise; -}; diff --git a/packages/codegen/dist/ibc/core/client/v1/tx.d.ts b/packages/codegen/dist/ibc/core/client/v1/tx.d.ts deleted file mode 100644 index b4cf8495..00000000 --- a/packages/codegen/dist/ibc/core/client/v1/tx.d.ts +++ /dev/null @@ -1,166 +0,0 @@ -import { Any, AnySDKType } from "../../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** MsgCreateClient defines a message to create an IBC client */ -export interface MsgCreateClient { - /** light client state */ - clientState?: Any; - /** - * consensus state associated with the client that corresponds to a given - * height. - */ - consensusState?: Any; - /** signer address */ - signer: string; -} -/** MsgCreateClient defines a message to create an IBC client */ -export interface MsgCreateClientSDKType { - client_state?: AnySDKType; - consensus_state?: AnySDKType; - signer: string; -} -/** MsgCreateClientResponse defines the Msg/CreateClient response type. */ -export interface MsgCreateClientResponse { -} -/** MsgCreateClientResponse defines the Msg/CreateClient response type. */ -export interface MsgCreateClientResponseSDKType { -} -/** - * MsgUpdateClient defines an sdk.Msg to update a IBC client state using - * the given header. - */ -export interface MsgUpdateClient { - /** client unique identifier */ - clientId: string; - /** header to update the light client */ - header?: Any; - /** signer address */ - signer: string; -} -/** - * MsgUpdateClient defines an sdk.Msg to update a IBC client state using - * the given header. - */ -export interface MsgUpdateClientSDKType { - client_id: string; - header?: AnySDKType; - signer: string; -} -/** MsgUpdateClientResponse defines the Msg/UpdateClient response type. */ -export interface MsgUpdateClientResponse { -} -/** MsgUpdateClientResponse defines the Msg/UpdateClient response type. */ -export interface MsgUpdateClientResponseSDKType { -} -/** - * MsgUpgradeClient defines an sdk.Msg to upgrade an IBC client to a new client - * state - */ -export interface MsgUpgradeClient { - /** client unique identifier */ - clientId: string; - /** upgraded client state */ - clientState?: Any; - /** - * upgraded consensus state, only contains enough information to serve as a - * basis of trust in update logic - */ - consensusState?: Any; - /** proof that old chain committed to new client */ - proofUpgradeClient: Uint8Array; - /** proof that old chain committed to new consensus state */ - proofUpgradeConsensusState: Uint8Array; - /** signer address */ - signer: string; -} -/** - * MsgUpgradeClient defines an sdk.Msg to upgrade an IBC client to a new client - * state - */ -export interface MsgUpgradeClientSDKType { - client_id: string; - client_state?: AnySDKType; - consensus_state?: AnySDKType; - proof_upgrade_client: Uint8Array; - proof_upgrade_consensus_state: Uint8Array; - signer: string; -} -/** MsgUpgradeClientResponse defines the Msg/UpgradeClient response type. */ -export interface MsgUpgradeClientResponse { -} -/** MsgUpgradeClientResponse defines the Msg/UpgradeClient response type. */ -export interface MsgUpgradeClientResponseSDKType { -} -/** - * MsgSubmitMisbehaviour defines an sdk.Msg type that submits Evidence for - * light client misbehaviour. - */ -export interface MsgSubmitMisbehaviour { - /** client unique identifier */ - clientId: string; - /** misbehaviour used for freezing the light client */ - misbehaviour?: Any; - /** signer address */ - signer: string; -} -/** - * MsgSubmitMisbehaviour defines an sdk.Msg type that submits Evidence for - * light client misbehaviour. - */ -export interface MsgSubmitMisbehaviourSDKType { - client_id: string; - misbehaviour?: AnySDKType; - signer: string; -} -/** - * MsgSubmitMisbehaviourResponse defines the Msg/SubmitMisbehaviour response - * type. - */ -export interface MsgSubmitMisbehaviourResponse { -} -/** - * MsgSubmitMisbehaviourResponse defines the Msg/SubmitMisbehaviour response - * type. - */ -export interface MsgSubmitMisbehaviourResponseSDKType { -} -export declare const MsgCreateClient: { - encode(message: MsgCreateClient, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateClient; - fromPartial(object: DeepPartial): MsgCreateClient; -}; -export declare const MsgCreateClientResponse: { - encode(_: MsgCreateClientResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateClientResponse; - fromPartial(_: DeepPartial): MsgCreateClientResponse; -}; -export declare const MsgUpdateClient: { - encode(message: MsgUpdateClient, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateClient; - fromPartial(object: DeepPartial): MsgUpdateClient; -}; -export declare const MsgUpdateClientResponse: { - encode(_: MsgUpdateClientResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateClientResponse; - fromPartial(_: DeepPartial): MsgUpdateClientResponse; -}; -export declare const MsgUpgradeClient: { - encode(message: MsgUpgradeClient, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpgradeClient; - fromPartial(object: DeepPartial): MsgUpgradeClient; -}; -export declare const MsgUpgradeClientResponse: { - encode(_: MsgUpgradeClientResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpgradeClientResponse; - fromPartial(_: DeepPartial): MsgUpgradeClientResponse; -}; -export declare const MsgSubmitMisbehaviour: { - encode(message: MsgSubmitMisbehaviour, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSubmitMisbehaviour; - fromPartial(object: DeepPartial): MsgSubmitMisbehaviour; -}; -export declare const MsgSubmitMisbehaviourResponse: { - encode(_: MsgSubmitMisbehaviourResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSubmitMisbehaviourResponse; - fromPartial(_: DeepPartial): MsgSubmitMisbehaviourResponse; -}; diff --git a/packages/codegen/dist/ibc/core/client/v1/tx.rpc.msg.d.ts b/packages/codegen/dist/ibc/core/client/v1/tx.rpc.msg.d.ts deleted file mode 100644 index d49d180d..00000000 --- a/packages/codegen/dist/ibc/core/client/v1/tx.rpc.msg.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Rpc } from "../../../../helpers"; -import { MsgCreateClient, MsgCreateClientResponse, MsgUpdateClient, MsgUpdateClientResponse, MsgUpgradeClient, MsgUpgradeClientResponse, MsgSubmitMisbehaviour, MsgSubmitMisbehaviourResponse } from "./tx"; -/** Msg defines the ibc/client Msg service. */ -export interface Msg { - /** CreateClient defines a rpc handler method for MsgCreateClient. */ - createClient(request: MsgCreateClient): Promise; - /** UpdateClient defines a rpc handler method for MsgUpdateClient. */ - updateClient(request: MsgUpdateClient): Promise; - /** UpgradeClient defines a rpc handler method for MsgUpgradeClient. */ - upgradeClient(request: MsgUpgradeClient): Promise; - /** SubmitMisbehaviour defines a rpc handler method for MsgSubmitMisbehaviour. */ - submitMisbehaviour(request: MsgSubmitMisbehaviour): Promise; -} -export declare class MsgClientImpl implements Msg { - private readonly rpc; - constructor(rpc: Rpc); - createClient(request: MsgCreateClient): Promise; - updateClient(request: MsgUpdateClient): Promise; - upgradeClient(request: MsgUpgradeClient): Promise; - submitMisbehaviour(request: MsgSubmitMisbehaviour): Promise; -} diff --git a/packages/codegen/dist/ibc/core/commitment/v1/commitment.d.ts b/packages/codegen/dist/ibc/core/commitment/v1/commitment.d.ts deleted file mode 100644 index 35419c6d..00000000 --- a/packages/codegen/dist/ibc/core/commitment/v1/commitment.d.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { CommitmentProof, CommitmentProofSDKType } from "../../../../confio/proofs"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** - * MerkleRoot defines a merkle root hash. - * In the Cosmos SDK, the AppHash of a block header becomes the root. - */ -export interface MerkleRoot { - hash: Uint8Array; -} -/** - * MerkleRoot defines a merkle root hash. - * In the Cosmos SDK, the AppHash of a block header becomes the root. - */ -export interface MerkleRootSDKType { - hash: Uint8Array; -} -/** - * 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...)) - */ -export interface MerklePrefix { - keyPrefix: Uint8Array; -} -/** - * 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...)) - */ -export interface MerklePrefixSDKType { - key_prefix: Uint8Array; -} -/** - * 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 - */ -export interface MerklePath { - keyPath: string[]; -} -/** - * 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 - */ -export interface MerklePathSDKType { - key_path: string[]; -} -/** - * 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 - */ -export interface MerkleProof { - proofs: CommitmentProof[]; -} -/** - * 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 - */ -export interface MerkleProofSDKType { - proofs: CommitmentProofSDKType[]; -} -export declare const MerkleRoot: { - encode(message: MerkleRoot, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MerkleRoot; - fromPartial(object: DeepPartial): MerkleRoot; -}; -export declare const MerklePrefix: { - encode(message: MerklePrefix, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MerklePrefix; - fromPartial(object: DeepPartial): MerklePrefix; -}; -export declare const MerklePath: { - encode(message: MerklePath, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MerklePath; - fromPartial(object: DeepPartial): MerklePath; -}; -export declare const MerkleProof: { - encode(message: MerkleProof, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MerkleProof; - fromPartial(object: DeepPartial): MerkleProof; -}; diff --git a/packages/codegen/dist/ibc/core/connection/v1/connection.d.ts b/packages/codegen/dist/ibc/core/connection/v1/connection.d.ts deleted file mode 100644 index 3e78a800..00000000 --- a/packages/codegen/dist/ibc/core/connection/v1/connection.d.ts +++ /dev/null @@ -1,204 +0,0 @@ -/// -import { MerklePrefix, MerklePrefixSDKType } from "../../commitment/v1/commitment"; -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * State defines if a connection is in one of the following states: - * INIT, TRYOPEN, OPEN or UNINITIALIZED. - */ -export declare enum State { - /** STATE_UNINITIALIZED_UNSPECIFIED - Default State */ - STATE_UNINITIALIZED_UNSPECIFIED = 0, - /** STATE_INIT - A connection end has just started the opening handshake. */ - STATE_INIT = 1, - /** - * STATE_TRYOPEN - A connection end has acknowledged the handshake step on the counterparty - * chain. - */ - STATE_TRYOPEN = 2, - /** STATE_OPEN - A connection end has completed the handshake. */ - STATE_OPEN = 3, - UNRECOGNIZED = -1 -} -export declare const StateSDKType: typeof State; -export declare function stateFromJSON(object: any): State; -export declare function stateToJSON(object: State): string; -/** - * 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. - */ -export interface ConnectionEnd { - /** client associated with this connection. */ - clientId: string; - /** - * IBC version which can be utilised to determine encodings or protocols for - * channels or packets utilising this connection. - */ - versions: Version[]; - /** current state of the connection end. */ - state: State; - /** counterparty chain associated with this connection. */ - 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. - */ - delayPeriod: Long; -} -/** - * 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. - */ -export interface ConnectionEndSDKType { - client_id: string; - versions: VersionSDKType[]; - state: State; - counterparty?: CounterpartySDKType; - delay_period: Long; -} -/** - * IdentifiedConnection defines a connection with additional connection - * identifier field. - */ -export interface IdentifiedConnection { - /** connection identifier. */ - id: string; - /** client associated with this connection. */ - clientId: string; - /** - * IBC version which can be utilised to determine encodings or protocols for - * channels or packets utilising this connection - */ - versions: Version[]; - /** current state of the connection end. */ - state: State; - /** counterparty chain associated with this connection. */ - counterparty?: Counterparty; - /** delay period associated with this connection. */ - delayPeriod: Long; -} -/** - * IdentifiedConnection defines a connection with additional connection - * identifier field. - */ -export interface IdentifiedConnectionSDKType { - id: string; - client_id: string; - versions: VersionSDKType[]; - state: State; - counterparty?: CounterpartySDKType; - delay_period: Long; -} -/** Counterparty defines the counterparty chain associated with a connection end. */ -export interface Counterparty { - /** - * identifies the client on the counterparty chain associated with a given - * connection. - */ - clientId: string; - /** - * identifies the connection end on the counterparty chain associated with a - * given connection. - */ - connectionId: string; - /** commitment merkle prefix of the counterparty chain. */ - prefix?: MerklePrefix; -} -/** Counterparty defines the counterparty chain associated with a connection end. */ -export interface CounterpartySDKType { - client_id: string; - connection_id: string; - prefix?: MerklePrefixSDKType; -} -/** ClientPaths define all the connection paths for a client state. */ -export interface ClientPaths { - /** list of connection paths */ - paths: string[]; -} -/** ClientPaths define all the connection paths for a client state. */ -export interface ClientPathsSDKType { - paths: string[]; -} -/** ConnectionPaths define all the connection paths for a given client state. */ -export interface ConnectionPaths { - /** client state unique identifier */ - clientId: string; - /** list of connection paths */ - paths: string[]; -} -/** ConnectionPaths define all the connection paths for a given client state. */ -export interface ConnectionPathsSDKType { - client_id: string; - paths: string[]; -} -/** - * Version defines the versioning scheme used to negotiate the IBC verison in - * the connection handshake. - */ -export interface Version { - /** unique version identifier */ - identifier: string; - /** list of features compatible with the specified identifier */ - features: string[]; -} -/** - * Version defines the versioning scheme used to negotiate the IBC verison in - * the connection handshake. - */ -export interface VersionSDKType { - identifier: string; - features: string[]; -} -/** Params defines the set of Connection parameters. */ -export interface 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. - */ - maxExpectedTimePerBlock: Long; -} -/** Params defines the set of Connection parameters. */ -export interface ParamsSDKType { - max_expected_time_per_block: Long; -} -export declare const ConnectionEnd: { - encode(message: ConnectionEnd, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ConnectionEnd; - fromPartial(object: DeepPartial): ConnectionEnd; -}; -export declare const IdentifiedConnection: { - encode(message: IdentifiedConnection, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): IdentifiedConnection; - fromPartial(object: DeepPartial): IdentifiedConnection; -}; -export declare const Counterparty: { - encode(message: Counterparty, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Counterparty; - fromPartial(object: DeepPartial): Counterparty; -}; -export declare const ClientPaths: { - encode(message: ClientPaths, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ClientPaths; - fromPartial(object: DeepPartial): ClientPaths; -}; -export declare const ConnectionPaths: { - encode(message: ConnectionPaths, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ConnectionPaths; - fromPartial(object: DeepPartial): ConnectionPaths; -}; -export declare const Version: { - encode(message: Version, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Version; - fromPartial(object: DeepPartial): Version; -}; -export declare const Params: { - encode(message: Params, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Params; - fromPartial(object: DeepPartial): Params; -}; diff --git a/packages/codegen/dist/ibc/core/connection/v1/genesis.d.ts b/packages/codegen/dist/ibc/core/connection/v1/genesis.d.ts deleted file mode 100644 index 91470832..00000000 --- a/packages/codegen/dist/ibc/core/connection/v1/genesis.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -/// -import { IdentifiedConnection, IdentifiedConnectionSDKType, ConnectionPaths, ConnectionPathsSDKType, Params, ParamsSDKType } from "./connection"; -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** GenesisState defines the ibc connection submodule's genesis state. */ -export interface GenesisState { - connections: IdentifiedConnection[]; - clientConnectionPaths: ConnectionPaths[]; - /** the sequence for the next generated connection identifier */ - nextConnectionSequence: Long; - params?: Params; -} -/** GenesisState defines the ibc connection submodule's genesis state. */ -export interface GenesisStateSDKType { - connections: IdentifiedConnectionSDKType[]; - client_connection_paths: ConnectionPathsSDKType[]; - next_connection_sequence: Long; - params?: ParamsSDKType; -} -export declare const GenesisState: { - encode(message: GenesisState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState; - fromPartial(object: DeepPartial): GenesisState; -}; diff --git a/packages/codegen/dist/ibc/core/connection/v1/query.d.ts b/packages/codegen/dist/ibc/core/connection/v1/query.d.ts deleted file mode 100644 index 410061d2..00000000 --- a/packages/codegen/dist/ibc/core/connection/v1/query.d.ts +++ /dev/null @@ -1,245 +0,0 @@ -/// -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../../../cosmos/base/query/v1beta1/pagination"; -import { ConnectionEnd, ConnectionEndSDKType, IdentifiedConnection, IdentifiedConnectionSDKType } from "./connection"; -import { Height, HeightSDKType, IdentifiedClientState, IdentifiedClientStateSDKType } from "../../client/v1/client"; -import { Any, AnySDKType } from "../../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../../helpers"; -/** - * QueryConnectionRequest is the request type for the Query/Connection RPC - * method - */ -export interface QueryConnectionRequest { - /** connection unique identifier */ - connectionId: string; -} -/** - * QueryConnectionRequest is the request type for the Query/Connection RPC - * method - */ -export interface QueryConnectionRequestSDKType { - connection_id: string; -} -/** - * 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. - */ -export interface QueryConnectionResponse { - /** connection associated with the request identifier */ - connection?: ConnectionEnd; - /** merkle proof of existence */ - proof: Uint8Array; - /** height at which the proof was retrieved */ - proofHeight?: Height; -} -/** - * 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. - */ -export interface QueryConnectionResponseSDKType { - connection?: ConnectionEndSDKType; - proof: Uint8Array; - proof_height?: HeightSDKType; -} -/** - * QueryConnectionsRequest is the request type for the Query/Connections RPC - * method - */ -export interface QueryConnectionsRequest { - pagination?: PageRequest; -} -/** - * QueryConnectionsRequest is the request type for the Query/Connections RPC - * method - */ -export interface QueryConnectionsRequestSDKType { - pagination?: PageRequestSDKType; -} -/** - * QueryConnectionsResponse is the response type for the Query/Connections RPC - * method. - */ -export interface QueryConnectionsResponse { - /** list of stored connections of the chain. */ - connections: IdentifiedConnection[]; - /** pagination response */ - pagination?: PageResponse; - /** query block height */ - height?: Height; -} -/** - * QueryConnectionsResponse is the response type for the Query/Connections RPC - * method. - */ -export interface QueryConnectionsResponseSDKType { - connections: IdentifiedConnectionSDKType[]; - pagination?: PageResponseSDKType; - height?: HeightSDKType; -} -/** - * QueryClientConnectionsRequest is the request type for the - * Query/ClientConnections RPC method - */ -export interface QueryClientConnectionsRequest { - /** client identifier associated with a connection */ - clientId: string; -} -/** - * QueryClientConnectionsRequest is the request type for the - * Query/ClientConnections RPC method - */ -export interface QueryClientConnectionsRequestSDKType { - client_id: string; -} -/** - * QueryClientConnectionsResponse is the response type for the - * Query/ClientConnections RPC method - */ -export interface QueryClientConnectionsResponse { - /** slice of all the connection paths associated with a client. */ - connectionPaths: string[]; - /** merkle proof of existence */ - proof: Uint8Array; - /** height at which the proof was generated */ - proofHeight?: Height; -} -/** - * QueryClientConnectionsResponse is the response type for the - * Query/ClientConnections RPC method - */ -export interface QueryClientConnectionsResponseSDKType { - connection_paths: string[]; - proof: Uint8Array; - proof_height?: HeightSDKType; -} -/** - * QueryConnectionClientStateRequest is the request type for the - * Query/ConnectionClientState RPC method - */ -export interface QueryConnectionClientStateRequest { - /** connection identifier */ - connectionId: string; -} -/** - * QueryConnectionClientStateRequest is the request type for the - * Query/ConnectionClientState RPC method - */ -export interface QueryConnectionClientStateRequestSDKType { - connection_id: string; -} -/** - * QueryConnectionClientStateResponse is the response type for the - * Query/ConnectionClientState RPC method - */ -export interface QueryConnectionClientStateResponse { - /** client state associated with the channel */ - identifiedClientState?: IdentifiedClientState; - /** merkle proof of existence */ - proof: Uint8Array; - /** height at which the proof was retrieved */ - proofHeight?: Height; -} -/** - * QueryConnectionClientStateResponse is the response type for the - * Query/ConnectionClientState RPC method - */ -export interface QueryConnectionClientStateResponseSDKType { - identified_client_state?: IdentifiedClientStateSDKType; - proof: Uint8Array; - proof_height?: HeightSDKType; -} -/** - * QueryConnectionConsensusStateRequest is the request type for the - * Query/ConnectionConsensusState RPC method - */ -export interface QueryConnectionConsensusStateRequest { - /** connection identifier */ - connectionId: string; - revisionNumber: Long; - revisionHeight: Long; -} -/** - * QueryConnectionConsensusStateRequest is the request type for the - * Query/ConnectionConsensusState RPC method - */ -export interface QueryConnectionConsensusStateRequestSDKType { - connection_id: string; - revision_number: Long; - revision_height: Long; -} -/** - * QueryConnectionConsensusStateResponse is the response type for the - * Query/ConnectionConsensusState RPC method - */ -export interface QueryConnectionConsensusStateResponse { - /** consensus state associated with the channel */ - consensusState?: Any; - /** client ID associated with the consensus state */ - clientId: string; - /** merkle proof of existence */ - proof: Uint8Array; - /** height at which the proof was retrieved */ - proofHeight?: Height; -} -/** - * QueryConnectionConsensusStateResponse is the response type for the - * Query/ConnectionConsensusState RPC method - */ -export interface QueryConnectionConsensusStateResponseSDKType { - consensus_state?: AnySDKType; - client_id: string; - proof: Uint8Array; - proof_height?: HeightSDKType; -} -export declare const QueryConnectionRequest: { - encode(message: QueryConnectionRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConnectionRequest; - fromPartial(object: DeepPartial): QueryConnectionRequest; -}; -export declare const QueryConnectionResponse: { - encode(message: QueryConnectionResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConnectionResponse; - fromPartial(object: DeepPartial): QueryConnectionResponse; -}; -export declare const QueryConnectionsRequest: { - encode(message: QueryConnectionsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConnectionsRequest; - fromPartial(object: DeepPartial): QueryConnectionsRequest; -}; -export declare const QueryConnectionsResponse: { - encode(message: QueryConnectionsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConnectionsResponse; - fromPartial(object: DeepPartial): QueryConnectionsResponse; -}; -export declare const QueryClientConnectionsRequest: { - encode(message: QueryClientConnectionsRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClientConnectionsRequest; - fromPartial(object: DeepPartial): QueryClientConnectionsRequest; -}; -export declare const QueryClientConnectionsResponse: { - encode(message: QueryClientConnectionsResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClientConnectionsResponse; - fromPartial(object: DeepPartial): QueryClientConnectionsResponse; -}; -export declare const QueryConnectionClientStateRequest: { - encode(message: QueryConnectionClientStateRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConnectionClientStateRequest; - fromPartial(object: DeepPartial): QueryConnectionClientStateRequest; -}; -export declare const QueryConnectionClientStateResponse: { - encode(message: QueryConnectionClientStateResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConnectionClientStateResponse; - fromPartial(object: DeepPartial): QueryConnectionClientStateResponse; -}; -export declare const QueryConnectionConsensusStateRequest: { - encode(message: QueryConnectionConsensusStateRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConnectionConsensusStateRequest; - fromPartial(object: DeepPartial): QueryConnectionConsensusStateRequest; -}; -export declare const QueryConnectionConsensusStateResponse: { - encode(message: QueryConnectionConsensusStateResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConnectionConsensusStateResponse; - fromPartial(object: DeepPartial): QueryConnectionConsensusStateResponse; -}; diff --git a/packages/codegen/dist/ibc/core/connection/v1/query.lcd.d.ts b/packages/codegen/dist/ibc/core/connection/v1/query.lcd.d.ts deleted file mode 100644 index fec50273..00000000 --- a/packages/codegen/dist/ibc/core/connection/v1/query.lcd.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { QueryConnectionRequest, QueryConnectionResponseSDKType, QueryConnectionsRequest, QueryConnectionsResponseSDKType, QueryClientConnectionsRequest, QueryClientConnectionsResponseSDKType, QueryConnectionClientStateRequest, QueryConnectionClientStateResponseSDKType, QueryConnectionConsensusStateRequest, QueryConnectionConsensusStateResponseSDKType } from "./query"; -export declare class LCDQueryClient { - req: LCDClient; - constructor({ requestClient }: { - requestClient: LCDClient; - }); - connection(params: QueryConnectionRequest): Promise; - connections(params?: QueryConnectionsRequest): Promise; - clientConnections(params: QueryClientConnectionsRequest): Promise; - connectionClientState(params: QueryConnectionClientStateRequest): Promise; - connectionConsensusState(params: QueryConnectionConsensusStateRequest): Promise; -} diff --git a/packages/codegen/dist/ibc/core/connection/v1/query.rpc.Query.d.ts b/packages/codegen/dist/ibc/core/connection/v1/query.rpc.Query.d.ts deleted file mode 100644 index 7eb562b1..00000000 --- a/packages/codegen/dist/ibc/core/connection/v1/query.rpc.Query.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Rpc } from "../../../../helpers"; -import { QueryClient } from "@cosmjs/stargate"; -import { QueryConnectionRequest, QueryConnectionResponse, QueryConnectionsRequest, QueryConnectionsResponse, QueryClientConnectionsRequest, QueryClientConnectionsResponse, QueryConnectionClientStateRequest, QueryConnectionClientStateResponse, QueryConnectionConsensusStateRequest, QueryConnectionConsensusStateResponse } from "./query"; -/** Query provides defines the gRPC querier service */ -export interface Query { - /** Connection queries an IBC connection end. */ - connection(request: QueryConnectionRequest): Promise; - /** Connections queries all the IBC connections of a chain. */ - connections(request?: QueryConnectionsRequest): Promise; - /** - * ClientConnections queries the connection paths associated with a client - * state. - */ - clientConnections(request: QueryClientConnectionsRequest): Promise; - /** - * ConnectionClientState queries the client state associated with the - * connection. - */ - connectionClientState(request: QueryConnectionClientStateRequest): Promise; - /** - * ConnectionConsensusState queries the consensus state associated with the - * connection. - */ - connectionConsensusState(request: QueryConnectionConsensusStateRequest): Promise; -} -export declare class QueryClientImpl implements Query { - private readonly rpc; - constructor(rpc: Rpc); - connection(request: QueryConnectionRequest): Promise; - connections(request?: QueryConnectionsRequest): Promise; - clientConnections(request: QueryClientConnectionsRequest): Promise; - connectionClientState(request: QueryConnectionClientStateRequest): Promise; - connectionConsensusState(request: QueryConnectionConsensusStateRequest): Promise; -} -export declare const createRpcQueryExtension: (base: QueryClient) => { - connection(request: QueryConnectionRequest): Promise; - connections(request?: QueryConnectionsRequest): Promise; - clientConnections(request: QueryClientConnectionsRequest): Promise; - connectionClientState(request: QueryConnectionClientStateRequest): Promise; - connectionConsensusState(request: QueryConnectionConsensusStateRequest): Promise; -}; diff --git a/packages/codegen/dist/ibc/core/connection/v1/tx.d.ts b/packages/codegen/dist/ibc/core/connection/v1/tx.d.ts deleted file mode 100644 index 66fa3105..00000000 --- a/packages/codegen/dist/ibc/core/connection/v1/tx.d.ts +++ /dev/null @@ -1,209 +0,0 @@ -/// -import { Counterparty, CounterpartySDKType, Version, VersionSDKType } from "./connection"; -import { Any, AnySDKType } from "../../../../google/protobuf/any"; -import { Height, HeightSDKType } from "../../client/v1/client"; -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * MsgConnectionOpenInit defines the msg sent by an account on Chain A to - * initialize a connection with Chain B. - */ -export interface MsgConnectionOpenInit { - clientId: string; - counterparty?: Counterparty; - version?: Version; - delayPeriod: Long; - signer: string; -} -/** - * MsgConnectionOpenInit defines the msg sent by an account on Chain A to - * initialize a connection with Chain B. - */ -export interface MsgConnectionOpenInitSDKType { - client_id: string; - counterparty?: CounterpartySDKType; - version?: VersionSDKType; - delay_period: Long; - signer: string; -} -/** - * MsgConnectionOpenInitResponse defines the Msg/ConnectionOpenInit response - * type. - */ -export interface MsgConnectionOpenInitResponse { -} -/** - * MsgConnectionOpenInitResponse defines the Msg/ConnectionOpenInit response - * type. - */ -export interface MsgConnectionOpenInitResponseSDKType { -} -/** - * MsgConnectionOpenTry defines a msg sent by a Relayer to try to open a - * connection on Chain B. - */ -export interface MsgConnectionOpenTry { - clientId: string; - /** - * in the case of crossing hello's, when both chains call OpenInit, we need - * the connection identifier of the previous connection in state INIT - */ - previousConnectionId: string; - clientState?: Any; - counterparty?: Counterparty; - delayPeriod: Long; - counterpartyVersions: Version[]; - proofHeight?: Height; - /** - * proof of the initialization the connection on Chain A: `UNITIALIZED -> - * INIT` - */ - proofInit: Uint8Array; - /** proof of client state included in message */ - proofClient: Uint8Array; - /** proof of client consensus state */ - proofConsensus: Uint8Array; - consensusHeight?: Height; - signer: string; -} -/** - * MsgConnectionOpenTry defines a msg sent by a Relayer to try to open a - * connection on Chain B. - */ -export interface MsgConnectionOpenTrySDKType { - client_id: string; - previous_connection_id: string; - client_state?: AnySDKType; - counterparty?: CounterpartySDKType; - delay_period: Long; - counterparty_versions: VersionSDKType[]; - proof_height?: HeightSDKType; - proof_init: Uint8Array; - proof_client: Uint8Array; - proof_consensus: Uint8Array; - consensus_height?: HeightSDKType; - signer: string; -} -/** MsgConnectionOpenTryResponse defines the Msg/ConnectionOpenTry response type. */ -export interface MsgConnectionOpenTryResponse { -} -/** MsgConnectionOpenTryResponse defines the Msg/ConnectionOpenTry response type. */ -export interface MsgConnectionOpenTryResponseSDKType { -} -/** - * MsgConnectionOpenAck defines a msg sent by a Relayer to Chain A to - * acknowledge the change of connection state to TRYOPEN on Chain B. - */ -export interface MsgConnectionOpenAck { - connectionId: string; - counterpartyConnectionId: string; - version?: Version; - clientState?: Any; - proofHeight?: Height; - /** - * proof of the initialization the connection on Chain B: `UNITIALIZED -> - * TRYOPEN` - */ - proofTry: Uint8Array; - /** proof of client state included in message */ - proofClient: Uint8Array; - /** proof of client consensus state */ - proofConsensus: Uint8Array; - consensusHeight?: Height; - signer: string; -} -/** - * MsgConnectionOpenAck defines a msg sent by a Relayer to Chain A to - * acknowledge the change of connection state to TRYOPEN on Chain B. - */ -export interface MsgConnectionOpenAckSDKType { - connection_id: string; - counterparty_connection_id: string; - version?: VersionSDKType; - client_state?: AnySDKType; - proof_height?: HeightSDKType; - proof_try: Uint8Array; - proof_client: Uint8Array; - proof_consensus: Uint8Array; - consensus_height?: HeightSDKType; - signer: string; -} -/** MsgConnectionOpenAckResponse defines the Msg/ConnectionOpenAck response type. */ -export interface MsgConnectionOpenAckResponse { -} -/** MsgConnectionOpenAckResponse defines the Msg/ConnectionOpenAck response type. */ -export interface MsgConnectionOpenAckResponseSDKType { -} -/** - * MsgConnectionOpenConfirm defines a msg sent by a Relayer to Chain B to - * acknowledge the change of connection state to OPEN on Chain A. - */ -export interface MsgConnectionOpenConfirm { - connectionId: string; - /** proof for the change of the connection state on Chain A: `INIT -> OPEN` */ - proofAck: Uint8Array; - proofHeight?: Height; - signer: string; -} -/** - * MsgConnectionOpenConfirm defines a msg sent by a Relayer to Chain B to - * acknowledge the change of connection state to OPEN on Chain A. - */ -export interface MsgConnectionOpenConfirmSDKType { - connection_id: string; - proof_ack: Uint8Array; - proof_height?: HeightSDKType; - signer: string; -} -/** - * MsgConnectionOpenConfirmResponse defines the Msg/ConnectionOpenConfirm - * response type. - */ -export interface MsgConnectionOpenConfirmResponse { -} -/** - * MsgConnectionOpenConfirmResponse defines the Msg/ConnectionOpenConfirm - * response type. - */ -export interface MsgConnectionOpenConfirmResponseSDKType { -} -export declare const MsgConnectionOpenInit: { - encode(message: MsgConnectionOpenInit, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgConnectionOpenInit; - fromPartial(object: DeepPartial): MsgConnectionOpenInit; -}; -export declare const MsgConnectionOpenInitResponse: { - encode(_: MsgConnectionOpenInitResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgConnectionOpenInitResponse; - fromPartial(_: DeepPartial): MsgConnectionOpenInitResponse; -}; -export declare const MsgConnectionOpenTry: { - encode(message: MsgConnectionOpenTry, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgConnectionOpenTry; - fromPartial(object: DeepPartial): MsgConnectionOpenTry; -}; -export declare const MsgConnectionOpenTryResponse: { - encode(_: MsgConnectionOpenTryResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgConnectionOpenTryResponse; - fromPartial(_: DeepPartial): MsgConnectionOpenTryResponse; -}; -export declare const MsgConnectionOpenAck: { - encode(message: MsgConnectionOpenAck, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgConnectionOpenAck; - fromPartial(object: DeepPartial): MsgConnectionOpenAck; -}; -export declare const MsgConnectionOpenAckResponse: { - encode(_: MsgConnectionOpenAckResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgConnectionOpenAckResponse; - fromPartial(_: DeepPartial): MsgConnectionOpenAckResponse; -}; -export declare const MsgConnectionOpenConfirm: { - encode(message: MsgConnectionOpenConfirm, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgConnectionOpenConfirm; - fromPartial(object: DeepPartial): MsgConnectionOpenConfirm; -}; -export declare const MsgConnectionOpenConfirmResponse: { - encode(_: MsgConnectionOpenConfirmResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): MsgConnectionOpenConfirmResponse; - fromPartial(_: DeepPartial): MsgConnectionOpenConfirmResponse; -}; diff --git a/packages/codegen/dist/ibc/core/connection/v1/tx.rpc.msg.d.ts b/packages/codegen/dist/ibc/core/connection/v1/tx.rpc.msg.d.ts deleted file mode 100644 index 06fc8d7d..00000000 --- a/packages/codegen/dist/ibc/core/connection/v1/tx.rpc.msg.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Rpc } from "../../../../helpers"; -import { MsgConnectionOpenInit, MsgConnectionOpenInitResponse, MsgConnectionOpenTry, MsgConnectionOpenTryResponse, MsgConnectionOpenAck, MsgConnectionOpenAckResponse, MsgConnectionOpenConfirm, MsgConnectionOpenConfirmResponse } from "./tx"; -/** Msg defines the ibc/connection Msg service. */ -export interface Msg { - /** ConnectionOpenInit defines a rpc handler method for MsgConnectionOpenInit. */ - connectionOpenInit(request: MsgConnectionOpenInit): Promise; - /** ConnectionOpenTry defines a rpc handler method for MsgConnectionOpenTry. */ - connectionOpenTry(request: MsgConnectionOpenTry): Promise; - /** ConnectionOpenAck defines a rpc handler method for MsgConnectionOpenAck. */ - connectionOpenAck(request: MsgConnectionOpenAck): Promise; - /** - * ConnectionOpenConfirm defines a rpc handler method for - * MsgConnectionOpenConfirm. - */ - connectionOpenConfirm(request: MsgConnectionOpenConfirm): Promise; -} -export declare class MsgClientImpl implements Msg { - private readonly rpc; - constructor(rpc: Rpc); - connectionOpenInit(request: MsgConnectionOpenInit): Promise; - connectionOpenTry(request: MsgConnectionOpenTry): Promise; - connectionOpenAck(request: MsgConnectionOpenAck): Promise; - connectionOpenConfirm(request: MsgConnectionOpenConfirm): Promise; -} diff --git a/packages/codegen/dist/ibc/core/port/v1/query.d.ts b/packages/codegen/dist/ibc/core/port/v1/query.d.ts deleted file mode 100644 index 5369d615..00000000 --- a/packages/codegen/dist/ibc/core/port/v1/query.d.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { Order, Counterparty, CounterpartySDKType } from "../../channel/v1/channel"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** QueryAppVersionRequest is the request type for the Query/AppVersion RPC method */ -export interface QueryAppVersionRequest { - /** port unique identifier */ - portId: string; - /** connection unique identifier */ - connectionId: string; - /** whether the channel is ordered or unordered */ - ordering: Order; - /** counterparty channel end */ - counterparty?: Counterparty; - /** proposed version */ - proposedVersion: string; -} -/** QueryAppVersionRequest is the request type for the Query/AppVersion RPC method */ -export interface QueryAppVersionRequestSDKType { - port_id: string; - connection_id: string; - ordering: Order; - counterparty?: CounterpartySDKType; - proposed_version: string; -} -/** QueryAppVersionResponse is the response type for the Query/AppVersion RPC method. */ -export interface QueryAppVersionResponse { - /** port id associated with the request identifiers */ - portId: string; - /** supported app version */ - version: string; -} -/** QueryAppVersionResponse is the response type for the Query/AppVersion RPC method. */ -export interface QueryAppVersionResponseSDKType { - port_id: string; - version: string; -} -export declare const QueryAppVersionRequest: { - encode(message: QueryAppVersionRequest, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAppVersionRequest; - fromPartial(object: DeepPartial): QueryAppVersionRequest; -}; -export declare const QueryAppVersionResponse: { - encode(message: QueryAppVersionResponse, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAppVersionResponse; - fromPartial(object: DeepPartial): QueryAppVersionResponse; -}; diff --git a/packages/codegen/dist/ibc/core/port/v1/query.rpc.Query.d.ts b/packages/codegen/dist/ibc/core/port/v1/query.rpc.Query.d.ts deleted file mode 100644 index 7e0f991c..00000000 --- a/packages/codegen/dist/ibc/core/port/v1/query.rpc.Query.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Rpc } from "../../../../helpers"; -import { QueryClient } from "@cosmjs/stargate"; -import { QueryAppVersionRequest, QueryAppVersionResponse } from "./query"; -/** Query defines the gRPC querier service */ -export interface Query { - /** AppVersion queries an IBC Port and determines the appropriate application version to be used */ - appVersion(request: QueryAppVersionRequest): Promise; -} -export declare class QueryClientImpl implements Query { - private readonly rpc; - constructor(rpc: Rpc); - appVersion(request: QueryAppVersionRequest): Promise; -} -export declare const createRpcQueryExtension: (base: QueryClient) => { - appVersion(request: QueryAppVersionRequest): Promise; -}; diff --git a/packages/codegen/dist/ibc/core/types/v1/genesis.d.ts b/packages/codegen/dist/ibc/core/types/v1/genesis.d.ts deleted file mode 100644 index c7a59949..00000000 --- a/packages/codegen/dist/ibc/core/types/v1/genesis.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { GenesisState as GenesisState1 } from "../../client/v1/genesis"; -import { GenesisStateSDKType as GenesisState1SDKType } from "../../client/v1/genesis"; -import { GenesisState as GenesisState2 } from "../../connection/v1/genesis"; -import { GenesisStateSDKType as GenesisState2SDKType } from "../../connection/v1/genesis"; -import { GenesisState as GenesisState3 } from "../../channel/v1/genesis"; -import { GenesisStateSDKType as GenesisState3SDKType } from "../../channel/v1/genesis"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** GenesisState defines the ibc module's genesis state. */ -export interface GenesisState { - /** ICS002 - Clients genesis state */ - clientGenesis?: GenesisState1; - /** ICS003 - Connections genesis state */ - connectionGenesis?: GenesisState2; - /** ICS004 - Channel genesis state */ - channelGenesis?: GenesisState3; -} -/** GenesisState defines the ibc module's genesis state. */ -export interface GenesisStateSDKType { - client_genesis?: GenesisState1SDKType; - connection_genesis?: GenesisState2SDKType; - channel_genesis?: GenesisState3SDKType; -} -export declare const GenesisState: { - encode(message: GenesisState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState; - fromPartial(object: DeepPartial): GenesisState; -}; diff --git a/packages/codegen/dist/ibc/lcd.d.ts b/packages/codegen/dist/ibc/lcd.d.ts deleted file mode 100644 index 77c522d8..00000000 --- a/packages/codegen/dist/ibc/lcd.d.ts +++ /dev/null @@ -1,75 +0,0 @@ -export declare const createLCDClient: ({ restEndpoint }: { - restEndpoint: string; -}) => Promise<{ - cosmos: { - auth: { - v1beta1: import("../cosmos/auth/v1beta1/query.lcd").LCDQueryClient; - }; - authz: { - v1beta1: import("../cosmos/authz/v1beta1/query.lcd").LCDQueryClient; - }; - bank: { - v1beta1: import("../cosmos/bank/v1beta1/query.lcd").LCDQueryClient; - }; - base: { - tendermint: { - v1beta1: import("../cosmos/base/tendermint/v1beta1/query.lcd").LCDQueryClient; - }; - }; - distribution: { - v1beta1: import("../cosmos/distribution/v1beta1/query.lcd").LCDQueryClient; - }; - evidence: { - v1beta1: import("../cosmos/evidence/v1beta1/query.lcd").LCDQueryClient; - }; - feegrant: { - v1beta1: import("../cosmos/feegrant/v1beta1/query.lcd").LCDQueryClient; - }; - gov: { - v1: import("../cosmos/gov/v1/query.lcd").LCDQueryClient; - v1beta1: import("../cosmos/gov/v1beta1/query.lcd").LCDQueryClient; - }; - group: { - v1: import("../cosmos/group/v1/query.lcd").LCDQueryClient; - }; - mint: { - v1beta1: import("../cosmos/mint/v1beta1/query.lcd").LCDQueryClient; - }; - nft: { - v1beta1: import("../cosmos/nft/v1beta1/query.lcd").LCDQueryClient; - }; - params: { - v1beta1: import("../cosmos/params/v1beta1/query.lcd").LCDQueryClient; - }; - slashing: { - v1beta1: import("../cosmos/slashing/v1beta1/query.lcd").LCDQueryClient; - }; - staking: { - v1beta1: import("../cosmos/staking/v1beta1/query.lcd").LCDQueryClient; - }; - tx: { - v1beta1: import("../cosmos/tx/v1beta1/service.lcd").LCDQueryClient; - }; - upgrade: { - v1beta1: import("../cosmos/upgrade/v1beta1/query.lcd").LCDQueryClient; - }; - }; - ibc: { - applications: { - transfer: { - v1: import("./applications/transfer/v1/query.lcd").LCDQueryClient; - }; - }; - core: { - channel: { - v1: import("./core/channel/v1/query.lcd").LCDQueryClient; - }; - client: { - v1: import("./core/client/v1/query.lcd").LCDQueryClient; - }; - connection: { - v1: import("./core/connection/v1/query.lcd").LCDQueryClient; - }; - }; - }; -}>; diff --git a/packages/codegen/dist/ibc/lightclients/localhost/v1/localhost.d.ts b/packages/codegen/dist/ibc/lightclients/localhost/v1/localhost.d.ts deleted file mode 100644 index 7e8df1a0..00000000 --- a/packages/codegen/dist/ibc/lightclients/localhost/v1/localhost.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Height, HeightSDKType } from "../../../core/client/v1/client"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** - * ClientState defines a loopback (localhost) client. It requires (read-only) - * access to keys outside the client prefix. - */ -export interface ClientState { - /** self chain ID */ - chainId: string; - /** self latest block height */ - height?: Height; -} -/** - * ClientState defines a loopback (localhost) client. It requires (read-only) - * access to keys outside the client prefix. - */ -export interface ClientStateSDKType { - chain_id: string; - height?: HeightSDKType; -} -export declare const ClientState: { - encode(message: ClientState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ClientState; - fromPartial(object: DeepPartial): ClientState; -}; diff --git a/packages/codegen/dist/ibc/lightclients/solomachine/v1/solomachine.d.ts b/packages/codegen/dist/ibc/lightclients/solomachine/v1/solomachine.d.ts deleted file mode 100644 index 1a23fd75..00000000 --- a/packages/codegen/dist/ibc/lightclients/solomachine/v1/solomachine.d.ts +++ /dev/null @@ -1,391 +0,0 @@ -/// -import { Any, AnySDKType } from "../../../../google/protobuf/any"; -import { ConnectionEnd, ConnectionEndSDKType } from "../../../core/connection/v1/connection"; -import { Channel, ChannelSDKType } from "../../../core/channel/v1/channel"; -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * DataType defines the type of solo machine proof being created. This is done - * to preserve uniqueness of different data sign byte encodings. - */ -export declare enum DataType { - /** DATA_TYPE_UNINITIALIZED_UNSPECIFIED - Default State */ - DATA_TYPE_UNINITIALIZED_UNSPECIFIED = 0, - /** DATA_TYPE_CLIENT_STATE - Data type for client state verification */ - DATA_TYPE_CLIENT_STATE = 1, - /** DATA_TYPE_CONSENSUS_STATE - Data type for consensus state verification */ - DATA_TYPE_CONSENSUS_STATE = 2, - /** DATA_TYPE_CONNECTION_STATE - Data type for connection state verification */ - DATA_TYPE_CONNECTION_STATE = 3, - /** DATA_TYPE_CHANNEL_STATE - Data type for channel state verification */ - DATA_TYPE_CHANNEL_STATE = 4, - /** DATA_TYPE_PACKET_COMMITMENT - Data type for packet commitment verification */ - DATA_TYPE_PACKET_COMMITMENT = 5, - /** DATA_TYPE_PACKET_ACKNOWLEDGEMENT - Data type for packet acknowledgement verification */ - DATA_TYPE_PACKET_ACKNOWLEDGEMENT = 6, - /** DATA_TYPE_PACKET_RECEIPT_ABSENCE - Data type for packet receipt absence verification */ - DATA_TYPE_PACKET_RECEIPT_ABSENCE = 7, - /** DATA_TYPE_NEXT_SEQUENCE_RECV - Data type for next sequence recv verification */ - DATA_TYPE_NEXT_SEQUENCE_RECV = 8, - /** DATA_TYPE_HEADER - Data type for header verification */ - DATA_TYPE_HEADER = 9, - UNRECOGNIZED = -1 -} -export declare const DataTypeSDKType: typeof DataType; -export declare function dataTypeFromJSON(object: any): DataType; -export declare function dataTypeToJSON(object: DataType): string; -/** - * ClientState defines a solo machine client that tracks the current consensus - * state and if the client is frozen. - */ -export interface ClientState { - /** latest sequence of the client state */ - sequence: Long; - /** frozen sequence of the solo machine */ - frozenSequence: Long; - consensusState?: ConsensusState; - /** - * when set to true, will allow governance to update a solo machine client. - * The client will be unfrozen if it is frozen. - */ - allowUpdateAfterProposal: boolean; -} -/** - * ClientState defines a solo machine client that tracks the current consensus - * state and if the client is frozen. - */ -export interface ClientStateSDKType { - sequence: Long; - frozen_sequence: Long; - consensus_state?: ConsensusStateSDKType; - allow_update_after_proposal: boolean; -} -/** - * 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. - */ -export interface ConsensusState { - /** public key of the solo machine */ - publicKey?: Any; - /** - * diversifier allows the same public key to be re-used across different solo - * machine clients (potentially on different chains) without being considered - * misbehaviour. - */ - diversifier: string; - timestamp: Long; -} -/** - * 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. - */ -export interface ConsensusStateSDKType { - public_key?: AnySDKType; - diversifier: string; - timestamp: Long; -} -/** Header defines a solo machine consensus header */ -export interface Header { - /** sequence to update solo machine public key at */ - sequence: Long; - timestamp: Long; - signature: Uint8Array; - newPublicKey?: Any; - newDiversifier: string; -} -/** Header defines a solo machine consensus header */ -export interface HeaderSDKType { - sequence: Long; - timestamp: Long; - signature: Uint8Array; - new_public_key?: AnySDKType; - new_diversifier: string; -} -/** - * Misbehaviour defines misbehaviour for a solo machine which consists - * of a sequence and two signatures over different messages at that sequence. - */ -export interface Misbehaviour { - clientId: string; - sequence: Long; - signatureOne?: SignatureAndData; - signatureTwo?: SignatureAndData; -} -/** - * Misbehaviour defines misbehaviour for a solo machine which consists - * of a sequence and two signatures over different messages at that sequence. - */ -export interface MisbehaviourSDKType { - client_id: string; - sequence: Long; - signature_one?: SignatureAndDataSDKType; - signature_two?: SignatureAndDataSDKType; -} -/** - * SignatureAndData contains a signature and the data signed over to create that - * signature. - */ -export interface SignatureAndData { - signature: Uint8Array; - dataType: DataType; - data: Uint8Array; - timestamp: Long; -} -/** - * SignatureAndData contains a signature and the data signed over to create that - * signature. - */ -export interface SignatureAndDataSDKType { - signature: Uint8Array; - data_type: DataType; - data: Uint8Array; - timestamp: Long; -} -/** - * TimestampedSignatureData contains the signature data and the timestamp of the - * signature. - */ -export interface TimestampedSignatureData { - signatureData: Uint8Array; - timestamp: Long; -} -/** - * TimestampedSignatureData contains the signature data and the timestamp of the - * signature. - */ -export interface TimestampedSignatureDataSDKType { - signature_data: Uint8Array; - timestamp: Long; -} -/** SignBytes defines the signed bytes used for signature verification. */ -export interface SignBytes { - sequence: Long; - timestamp: Long; - diversifier: string; - /** type of the data used */ - dataType: DataType; - /** marshaled data */ - data: Uint8Array; -} -/** SignBytes defines the signed bytes used for signature verification. */ -export interface SignBytesSDKType { - sequence: Long; - timestamp: Long; - diversifier: string; - data_type: DataType; - data: Uint8Array; -} -/** HeaderData returns the SignBytes data for update verification. */ -export interface HeaderData { - /** header public key */ - newPubKey?: Any; - /** header diversifier */ - newDiversifier: string; -} -/** HeaderData returns the SignBytes data for update verification. */ -export interface HeaderDataSDKType { - new_pub_key?: AnySDKType; - new_diversifier: string; -} -/** ClientStateData returns the SignBytes data for client state verification. */ -export interface ClientStateData { - path: Uint8Array; - clientState?: Any; -} -/** ClientStateData returns the SignBytes data for client state verification. */ -export interface ClientStateDataSDKType { - path: Uint8Array; - client_state?: AnySDKType; -} -/** - * ConsensusStateData returns the SignBytes data for consensus state - * verification. - */ -export interface ConsensusStateData { - path: Uint8Array; - consensusState?: Any; -} -/** - * ConsensusStateData returns the SignBytes data for consensus state - * verification. - */ -export interface ConsensusStateDataSDKType { - path: Uint8Array; - consensus_state?: AnySDKType; -} -/** - * ConnectionStateData returns the SignBytes data for connection state - * verification. - */ -export interface ConnectionStateData { - path: Uint8Array; - connection?: ConnectionEnd; -} -/** - * ConnectionStateData returns the SignBytes data for connection state - * verification. - */ -export interface ConnectionStateDataSDKType { - path: Uint8Array; - connection?: ConnectionEndSDKType; -} -/** - * ChannelStateData returns the SignBytes data for channel state - * verification. - */ -export interface ChannelStateData { - path: Uint8Array; - channel?: Channel; -} -/** - * ChannelStateData returns the SignBytes data for channel state - * verification. - */ -export interface ChannelStateDataSDKType { - path: Uint8Array; - channel?: ChannelSDKType; -} -/** - * PacketCommitmentData returns the SignBytes data for packet commitment - * verification. - */ -export interface PacketCommitmentData { - path: Uint8Array; - commitment: Uint8Array; -} -/** - * PacketCommitmentData returns the SignBytes data for packet commitment - * verification. - */ -export interface PacketCommitmentDataSDKType { - path: Uint8Array; - commitment: Uint8Array; -} -/** - * PacketAcknowledgementData returns the SignBytes data for acknowledgement - * verification. - */ -export interface PacketAcknowledgementData { - path: Uint8Array; - acknowledgement: Uint8Array; -} -/** - * PacketAcknowledgementData returns the SignBytes data for acknowledgement - * verification. - */ -export interface PacketAcknowledgementDataSDKType { - path: Uint8Array; - acknowledgement: Uint8Array; -} -/** - * PacketReceiptAbsenceData returns the SignBytes data for - * packet receipt absence verification. - */ -export interface PacketReceiptAbsenceData { - path: Uint8Array; -} -/** - * PacketReceiptAbsenceData returns the SignBytes data for - * packet receipt absence verification. - */ -export interface PacketReceiptAbsenceDataSDKType { - path: Uint8Array; -} -/** - * NextSequenceRecvData returns the SignBytes data for verification of the next - * sequence to be received. - */ -export interface NextSequenceRecvData { - path: Uint8Array; - nextSeqRecv: Long; -} -/** - * NextSequenceRecvData returns the SignBytes data for verification of the next - * sequence to be received. - */ -export interface NextSequenceRecvDataSDKType { - path: Uint8Array; - next_seq_recv: Long; -} -export declare const ClientState: { - encode(message: ClientState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ClientState; - fromPartial(object: DeepPartial): ClientState; -}; -export declare const ConsensusState: { - encode(message: ConsensusState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ConsensusState; - fromPartial(object: DeepPartial): ConsensusState; -}; -export declare const Header: { - encode(message: Header, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Header; - fromPartial(object: DeepPartial
): Header; -}; -export declare const Misbehaviour: { - encode(message: Misbehaviour, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Misbehaviour; - fromPartial(object: DeepPartial): Misbehaviour; -}; -export declare const SignatureAndData: { - encode(message: SignatureAndData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SignatureAndData; - fromPartial(object: DeepPartial): SignatureAndData; -}; -export declare const TimestampedSignatureData: { - encode(message: TimestampedSignatureData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): TimestampedSignatureData; - fromPartial(object: DeepPartial): TimestampedSignatureData; -}; -export declare const SignBytes: { - encode(message: SignBytes, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SignBytes; - fromPartial(object: DeepPartial): SignBytes; -}; -export declare const HeaderData: { - encode(message: HeaderData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): HeaderData; - fromPartial(object: DeepPartial): HeaderData; -}; -export declare const ClientStateData: { - encode(message: ClientStateData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ClientStateData; - fromPartial(object: DeepPartial): ClientStateData; -}; -export declare const ConsensusStateData: { - encode(message: ConsensusStateData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ConsensusStateData; - fromPartial(object: DeepPartial): ConsensusStateData; -}; -export declare const ConnectionStateData: { - encode(message: ConnectionStateData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ConnectionStateData; - fromPartial(object: DeepPartial): ConnectionStateData; -}; -export declare const ChannelStateData: { - encode(message: ChannelStateData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ChannelStateData; - fromPartial(object: DeepPartial): ChannelStateData; -}; -export declare const PacketCommitmentData: { - encode(message: PacketCommitmentData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PacketCommitmentData; - fromPartial(object: DeepPartial): PacketCommitmentData; -}; -export declare const PacketAcknowledgementData: { - encode(message: PacketAcknowledgementData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PacketAcknowledgementData; - fromPartial(object: DeepPartial): PacketAcknowledgementData; -}; -export declare const PacketReceiptAbsenceData: { - encode(message: PacketReceiptAbsenceData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PacketReceiptAbsenceData; - fromPartial(object: DeepPartial): PacketReceiptAbsenceData; -}; -export declare const NextSequenceRecvData: { - encode(message: NextSequenceRecvData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): NextSequenceRecvData; - fromPartial(object: DeepPartial): NextSequenceRecvData; -}; diff --git a/packages/codegen/dist/ibc/lightclients/solomachine/v2/solomachine.d.ts b/packages/codegen/dist/ibc/lightclients/solomachine/v2/solomachine.d.ts deleted file mode 100644 index 40dd6c3a..00000000 --- a/packages/codegen/dist/ibc/lightclients/solomachine/v2/solomachine.d.ts +++ /dev/null @@ -1,391 +0,0 @@ -/// -import { Any, AnySDKType } from "../../../../google/protobuf/any"; -import { ConnectionEnd, ConnectionEndSDKType } from "../../../core/connection/v1/connection"; -import { Channel, ChannelSDKType } from "../../../core/channel/v1/channel"; -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * DataType defines the type of solo machine proof being created. This is done - * to preserve uniqueness of different data sign byte encodings. - */ -export declare enum DataType { - /** DATA_TYPE_UNINITIALIZED_UNSPECIFIED - Default State */ - DATA_TYPE_UNINITIALIZED_UNSPECIFIED = 0, - /** DATA_TYPE_CLIENT_STATE - Data type for client state verification */ - DATA_TYPE_CLIENT_STATE = 1, - /** DATA_TYPE_CONSENSUS_STATE - Data type for consensus state verification */ - DATA_TYPE_CONSENSUS_STATE = 2, - /** DATA_TYPE_CONNECTION_STATE - Data type for connection state verification */ - DATA_TYPE_CONNECTION_STATE = 3, - /** DATA_TYPE_CHANNEL_STATE - Data type for channel state verification */ - DATA_TYPE_CHANNEL_STATE = 4, - /** DATA_TYPE_PACKET_COMMITMENT - Data type for packet commitment verification */ - DATA_TYPE_PACKET_COMMITMENT = 5, - /** DATA_TYPE_PACKET_ACKNOWLEDGEMENT - Data type for packet acknowledgement verification */ - DATA_TYPE_PACKET_ACKNOWLEDGEMENT = 6, - /** DATA_TYPE_PACKET_RECEIPT_ABSENCE - Data type for packet receipt absence verification */ - DATA_TYPE_PACKET_RECEIPT_ABSENCE = 7, - /** DATA_TYPE_NEXT_SEQUENCE_RECV - Data type for next sequence recv verification */ - DATA_TYPE_NEXT_SEQUENCE_RECV = 8, - /** DATA_TYPE_HEADER - Data type for header verification */ - DATA_TYPE_HEADER = 9, - UNRECOGNIZED = -1 -} -export declare const DataTypeSDKType: typeof DataType; -export declare function dataTypeFromJSON(object: any): DataType; -export declare function dataTypeToJSON(object: DataType): string; -/** - * ClientState defines a solo machine client that tracks the current consensus - * state and if the client is frozen. - */ -export interface ClientState { - /** latest sequence of the client state */ - sequence: Long; - /** frozen sequence of the solo machine */ - isFrozen: boolean; - consensusState?: ConsensusState; - /** - * when set to true, will allow governance to update a solo machine client. - * The client will be unfrozen if it is frozen. - */ - allowUpdateAfterProposal: boolean; -} -/** - * ClientState defines a solo machine client that tracks the current consensus - * state and if the client is frozen. - */ -export interface ClientStateSDKType { - sequence: Long; - is_frozen: boolean; - consensus_state?: ConsensusStateSDKType; - allow_update_after_proposal: boolean; -} -/** - * 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. - */ -export interface ConsensusState { - /** public key of the solo machine */ - publicKey?: Any; - /** - * diversifier allows the same public key to be re-used across different solo - * machine clients (potentially on different chains) without being considered - * misbehaviour. - */ - diversifier: string; - timestamp: Long; -} -/** - * 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. - */ -export interface ConsensusStateSDKType { - public_key?: AnySDKType; - diversifier: string; - timestamp: Long; -} -/** Header defines a solo machine consensus header */ -export interface Header { - /** sequence to update solo machine public key at */ - sequence: Long; - timestamp: Long; - signature: Uint8Array; - newPublicKey?: Any; - newDiversifier: string; -} -/** Header defines a solo machine consensus header */ -export interface HeaderSDKType { - sequence: Long; - timestamp: Long; - signature: Uint8Array; - new_public_key?: AnySDKType; - new_diversifier: string; -} -/** - * Misbehaviour defines misbehaviour for a solo machine which consists - * of a sequence and two signatures over different messages at that sequence. - */ -export interface Misbehaviour { - clientId: string; - sequence: Long; - signatureOne?: SignatureAndData; - signatureTwo?: SignatureAndData; -} -/** - * Misbehaviour defines misbehaviour for a solo machine which consists - * of a sequence and two signatures over different messages at that sequence. - */ -export interface MisbehaviourSDKType { - client_id: string; - sequence: Long; - signature_one?: SignatureAndDataSDKType; - signature_two?: SignatureAndDataSDKType; -} -/** - * SignatureAndData contains a signature and the data signed over to create that - * signature. - */ -export interface SignatureAndData { - signature: Uint8Array; - dataType: DataType; - data: Uint8Array; - timestamp: Long; -} -/** - * SignatureAndData contains a signature and the data signed over to create that - * signature. - */ -export interface SignatureAndDataSDKType { - signature: Uint8Array; - data_type: DataType; - data: Uint8Array; - timestamp: Long; -} -/** - * TimestampedSignatureData contains the signature data and the timestamp of the - * signature. - */ -export interface TimestampedSignatureData { - signatureData: Uint8Array; - timestamp: Long; -} -/** - * TimestampedSignatureData contains the signature data and the timestamp of the - * signature. - */ -export interface TimestampedSignatureDataSDKType { - signature_data: Uint8Array; - timestamp: Long; -} -/** SignBytes defines the signed bytes used for signature verification. */ -export interface SignBytes { - sequence: Long; - timestamp: Long; - diversifier: string; - /** type of the data used */ - dataType: DataType; - /** marshaled data */ - data: Uint8Array; -} -/** SignBytes defines the signed bytes used for signature verification. */ -export interface SignBytesSDKType { - sequence: Long; - timestamp: Long; - diversifier: string; - data_type: DataType; - data: Uint8Array; -} -/** HeaderData returns the SignBytes data for update verification. */ -export interface HeaderData { - /** header public key */ - newPubKey?: Any; - /** header diversifier */ - newDiversifier: string; -} -/** HeaderData returns the SignBytes data for update verification. */ -export interface HeaderDataSDKType { - new_pub_key?: AnySDKType; - new_diversifier: string; -} -/** ClientStateData returns the SignBytes data for client state verification. */ -export interface ClientStateData { - path: Uint8Array; - clientState?: Any; -} -/** ClientStateData returns the SignBytes data for client state verification. */ -export interface ClientStateDataSDKType { - path: Uint8Array; - client_state?: AnySDKType; -} -/** - * ConsensusStateData returns the SignBytes data for consensus state - * verification. - */ -export interface ConsensusStateData { - path: Uint8Array; - consensusState?: Any; -} -/** - * ConsensusStateData returns the SignBytes data for consensus state - * verification. - */ -export interface ConsensusStateDataSDKType { - path: Uint8Array; - consensus_state?: AnySDKType; -} -/** - * ConnectionStateData returns the SignBytes data for connection state - * verification. - */ -export interface ConnectionStateData { - path: Uint8Array; - connection?: ConnectionEnd; -} -/** - * ConnectionStateData returns the SignBytes data for connection state - * verification. - */ -export interface ConnectionStateDataSDKType { - path: Uint8Array; - connection?: ConnectionEndSDKType; -} -/** - * ChannelStateData returns the SignBytes data for channel state - * verification. - */ -export interface ChannelStateData { - path: Uint8Array; - channel?: Channel; -} -/** - * ChannelStateData returns the SignBytes data for channel state - * verification. - */ -export interface ChannelStateDataSDKType { - path: Uint8Array; - channel?: ChannelSDKType; -} -/** - * PacketCommitmentData returns the SignBytes data for packet commitment - * verification. - */ -export interface PacketCommitmentData { - path: Uint8Array; - commitment: Uint8Array; -} -/** - * PacketCommitmentData returns the SignBytes data for packet commitment - * verification. - */ -export interface PacketCommitmentDataSDKType { - path: Uint8Array; - commitment: Uint8Array; -} -/** - * PacketAcknowledgementData returns the SignBytes data for acknowledgement - * verification. - */ -export interface PacketAcknowledgementData { - path: Uint8Array; - acknowledgement: Uint8Array; -} -/** - * PacketAcknowledgementData returns the SignBytes data for acknowledgement - * verification. - */ -export interface PacketAcknowledgementDataSDKType { - path: Uint8Array; - acknowledgement: Uint8Array; -} -/** - * PacketReceiptAbsenceData returns the SignBytes data for - * packet receipt absence verification. - */ -export interface PacketReceiptAbsenceData { - path: Uint8Array; -} -/** - * PacketReceiptAbsenceData returns the SignBytes data for - * packet receipt absence verification. - */ -export interface PacketReceiptAbsenceDataSDKType { - path: Uint8Array; -} -/** - * NextSequenceRecvData returns the SignBytes data for verification of the next - * sequence to be received. - */ -export interface NextSequenceRecvData { - path: Uint8Array; - nextSeqRecv: Long; -} -/** - * NextSequenceRecvData returns the SignBytes data for verification of the next - * sequence to be received. - */ -export interface NextSequenceRecvDataSDKType { - path: Uint8Array; - next_seq_recv: Long; -} -export declare const ClientState: { - encode(message: ClientState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ClientState; - fromPartial(object: DeepPartial): ClientState; -}; -export declare const ConsensusState: { - encode(message: ConsensusState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ConsensusState; - fromPartial(object: DeepPartial): ConsensusState; -}; -export declare const Header: { - encode(message: Header, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Header; - fromPartial(object: DeepPartial
): Header; -}; -export declare const Misbehaviour: { - encode(message: Misbehaviour, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Misbehaviour; - fromPartial(object: DeepPartial): Misbehaviour; -}; -export declare const SignatureAndData: { - encode(message: SignatureAndData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SignatureAndData; - fromPartial(object: DeepPartial): SignatureAndData; -}; -export declare const TimestampedSignatureData: { - encode(message: TimestampedSignatureData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): TimestampedSignatureData; - fromPartial(object: DeepPartial): TimestampedSignatureData; -}; -export declare const SignBytes: { - encode(message: SignBytes, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SignBytes; - fromPartial(object: DeepPartial): SignBytes; -}; -export declare const HeaderData: { - encode(message: HeaderData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): HeaderData; - fromPartial(object: DeepPartial): HeaderData; -}; -export declare const ClientStateData: { - encode(message: ClientStateData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ClientStateData; - fromPartial(object: DeepPartial): ClientStateData; -}; -export declare const ConsensusStateData: { - encode(message: ConsensusStateData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ConsensusStateData; - fromPartial(object: DeepPartial): ConsensusStateData; -}; -export declare const ConnectionStateData: { - encode(message: ConnectionStateData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ConnectionStateData; - fromPartial(object: DeepPartial): ConnectionStateData; -}; -export declare const ChannelStateData: { - encode(message: ChannelStateData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ChannelStateData; - fromPartial(object: DeepPartial): ChannelStateData; -}; -export declare const PacketCommitmentData: { - encode(message: PacketCommitmentData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PacketCommitmentData; - fromPartial(object: DeepPartial): PacketCommitmentData; -}; -export declare const PacketAcknowledgementData: { - encode(message: PacketAcknowledgementData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PacketAcknowledgementData; - fromPartial(object: DeepPartial): PacketAcknowledgementData; -}; -export declare const PacketReceiptAbsenceData: { - encode(message: PacketReceiptAbsenceData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PacketReceiptAbsenceData; - fromPartial(object: DeepPartial): PacketReceiptAbsenceData; -}; -export declare const NextSequenceRecvData: { - encode(message: NextSequenceRecvData, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): NextSequenceRecvData; - fromPartial(object: DeepPartial): NextSequenceRecvData; -}; diff --git a/packages/codegen/dist/ibc/lightclients/tendermint/v1/tendermint.d.ts b/packages/codegen/dist/ibc/lightclients/tendermint/v1/tendermint.d.ts deleted file mode 100644 index c460c7bc..00000000 --- a/packages/codegen/dist/ibc/lightclients/tendermint/v1/tendermint.d.ts +++ /dev/null @@ -1,185 +0,0 @@ -/// -import { Duration, DurationSDKType } from "../../../../google/protobuf/duration"; -import { Height, HeightSDKType } from "../../../core/client/v1/client"; -import { ProofSpec, ProofSpecSDKType } from "../../../../confio/proofs"; -import { MerkleRoot, MerkleRootSDKType } from "../../../core/commitment/v1/commitment"; -import { SignedHeader, SignedHeaderSDKType } from "../../../../tendermint/types/types"; -import { ValidatorSet, ValidatorSetSDKType } from "../../../../tendermint/types/validator"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../../helpers"; -/** - * ClientState from Tendermint tracks the current validator set, latest height, - * and a possible frozen height. - */ -export interface ClientState { - chainId: string; - trustLevel?: Fraction; - /** - * duration of the period since the LastestTimestamp during which the - * submitted headers are valid for upgrade - */ - trustingPeriod?: Duration; - /** duration of the staking unbonding period */ - unbondingPeriod?: Duration; - /** defines how much new (untrusted) header's Time can drift into the future. */ - maxClockDrift?: Duration; - /** Block height when the client was frozen due to a misbehaviour */ - frozenHeight?: Height; - /** Latest height the client was updated to */ - latestHeight?: Height; - /** Proof specifications used in verifying counterparty state */ - proofSpecs: ProofSpec[]; - /** - * 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"}` - */ - upgradePath: string[]; - /** - * This flag, when set to true, will allow governance to recover a client - * which has expired - */ - allowUpdateAfterExpiry: boolean; - /** - * This flag, when set to true, will allow governance to unfreeze a client - * whose chain has experienced a misbehaviour event - */ - allowUpdateAfterMisbehaviour: boolean; -} -/** - * ClientState from Tendermint tracks the current validator set, latest height, - * and a possible frozen height. - */ -export interface ClientStateSDKType { - chain_id: string; - trust_level?: FractionSDKType; - trusting_period?: DurationSDKType; - unbonding_period?: DurationSDKType; - max_clock_drift?: DurationSDKType; - frozen_height?: HeightSDKType; - latest_height?: HeightSDKType; - proof_specs: ProofSpecSDKType[]; - upgrade_path: string[]; - allow_update_after_expiry: boolean; - allow_update_after_misbehaviour: boolean; -} -/** ConsensusState defines the consensus state from Tendermint. */ -export interface ConsensusState { - /** - * timestamp that corresponds to the block height in which the ConsensusState - * was stored. - */ - timestamp?: Date; - /** commitment root (i.e app hash) */ - root?: MerkleRoot; - nextValidatorsHash: Uint8Array; -} -/** ConsensusState defines the consensus state from Tendermint. */ -export interface ConsensusStateSDKType { - timestamp?: Date; - root?: MerkleRootSDKType; - next_validators_hash: Uint8Array; -} -/** - * Misbehaviour is a wrapper over two conflicting Headers - * that implements Misbehaviour interface expected by ICS-02 - */ -export interface Misbehaviour { - clientId: string; - header1?: Header; - header2?: Header; -} -/** - * Misbehaviour is a wrapper over two conflicting Headers - * that implements Misbehaviour interface expected by ICS-02 - */ -export interface MisbehaviourSDKType { - client_id: string; - header_1?: HeaderSDKType; - header_2?: HeaderSDKType; -} -/** - * 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. - */ -export interface Header { - signedHeader?: SignedHeader; - validatorSet?: ValidatorSet; - trustedHeight?: Height; - trustedValidators?: ValidatorSet; -} -/** - * 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. - */ -export interface HeaderSDKType { - signed_header?: SignedHeaderSDKType; - validator_set?: ValidatorSetSDKType; - trusted_height?: HeightSDKType; - trusted_validators?: ValidatorSetSDKType; -} -/** - * Fraction defines the protobuf message type for tmmath.Fraction that only - * supports positive values. - */ -export interface Fraction { - numerator: Long; - denominator: Long; -} -/** - * Fraction defines the protobuf message type for tmmath.Fraction that only - * supports positive values. - */ -export interface FractionSDKType { - numerator: Long; - denominator: Long; -} -export declare const ClientState: { - encode(message: ClientState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ClientState; - fromPartial(object: DeepPartial): ClientState; -}; -export declare const ConsensusState: { - encode(message: ConsensusState, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ConsensusState; - fromPartial(object: DeepPartial): ConsensusState; -}; -export declare const Misbehaviour: { - encode(message: Misbehaviour, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Misbehaviour; - fromPartial(object: DeepPartial): Misbehaviour; -}; -export declare const Header: { - encode(message: Header, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Header; - fromPartial(object: DeepPartial
): Header; -}; -export declare const Fraction: { - encode(message: Fraction, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Fraction; - fromPartial(object: DeepPartial): Fraction; -}; diff --git a/packages/codegen/dist/ibc/rpc.query.d.ts b/packages/codegen/dist/ibc/rpc.query.d.ts deleted file mode 100644 index 35c7da03..00000000 --- a/packages/codegen/dist/ibc/rpc.query.d.ts +++ /dev/null @@ -1,243 +0,0 @@ -import { HttpEndpoint } from "@cosmjs/tendermint-rpc"; -export declare const createRPCQueryClient: ({ rpcEndpoint }: { - rpcEndpoint: string | HttpEndpoint; -}) => Promise<{ - cosmos: { - app: { - v1alpha1: { - config(request?: import("../cosmos/app/v1alpha1/query").QueryConfigRequest): Promise; - }; - }; - auth: { - v1beta1: { - accounts(request?: import("../cosmos/auth/v1beta1/query").QueryAccountsRequest): Promise; - account(request: import("../cosmos/auth/v1beta1/query").QueryAccountRequest): Promise; - params(request?: import("../cosmos/auth/v1beta1/query").QueryParamsRequest): Promise; - moduleAccounts(request?: import("../cosmos/auth/v1beta1/query").QueryModuleAccountsRequest): Promise; - bech32Prefix(request?: import("../cosmos/auth/v1beta1/query").Bech32PrefixRequest): Promise; - addressBytesToString(request: import("../cosmos/auth/v1beta1/query").AddressBytesToStringRequest): Promise; - addressStringToBytes(request: import("../cosmos/auth/v1beta1/query").AddressStringToBytesRequest): Promise; - }; - }; - authz: { - v1beta1: { - grants(request: import("../cosmos/authz/v1beta1/query").QueryGrantsRequest): Promise; - granterGrants(request: import("../cosmos/authz/v1beta1/query").QueryGranterGrantsRequest): Promise; - granteeGrants(request: import("../cosmos/authz/v1beta1/query").QueryGranteeGrantsRequest): Promise; - }; - }; - bank: { - v1beta1: { - balance(request: import("../cosmos/bank/v1beta1/query").QueryBalanceRequest): Promise; - allBalances(request: import("../cosmos/bank/v1beta1/query").QueryAllBalancesRequest): Promise; - spendableBalances(request: import("../cosmos/bank/v1beta1/query").QuerySpendableBalancesRequest): Promise; - totalSupply(request?: import("../cosmos/bank/v1beta1/query").QueryTotalSupplyRequest): Promise; - supplyOf(request: import("../cosmos/bank/v1beta1/query").QuerySupplyOfRequest): Promise; - params(request?: import("../cosmos/bank/v1beta1/query").QueryParamsRequest): Promise; - denomMetadata(request: import("../cosmos/bank/v1beta1/query").QueryDenomMetadataRequest): Promise; - denomsMetadata(request?: import("../cosmos/bank/v1beta1/query").QueryDenomsMetadataRequest): Promise; - denomOwners(request: import("../cosmos/bank/v1beta1/query").QueryDenomOwnersRequest): Promise; - }; - }; - base: { - tendermint: { - v1beta1: { - getNodeInfo(request?: import("../cosmos/base/tendermint/v1beta1/query").GetNodeInfoRequest): Promise; - getSyncing(request?: import("../cosmos/base/tendermint/v1beta1/query").GetSyncingRequest): Promise; - getLatestBlock(request?: import("../cosmos/base/tendermint/v1beta1/query").GetLatestBlockRequest): Promise; - getBlockByHeight(request: import("../cosmos/base/tendermint/v1beta1/query").GetBlockByHeightRequest): Promise; - getLatestValidatorSet(request?: import("../cosmos/base/tendermint/v1beta1/query").GetLatestValidatorSetRequest): Promise; - getValidatorSetByHeight(request: import("../cosmos/base/tendermint/v1beta1/query").GetValidatorSetByHeightRequest): Promise; - }; - }; - }; - distribution: { - v1beta1: { - params(request?: import("../cosmos/distribution/v1beta1/query").QueryParamsRequest): Promise; - validatorOutstandingRewards(request: import("../cosmos/distribution/v1beta1/query").QueryValidatorOutstandingRewardsRequest): Promise; - validatorCommission(request: import("../cosmos/distribution/v1beta1/query").QueryValidatorCommissionRequest): Promise; - validatorSlashes(request: import("../cosmos/distribution/v1beta1/query").QueryValidatorSlashesRequest): Promise; - delegationRewards(request: import("../cosmos/distribution/v1beta1/query").QueryDelegationRewardsRequest): Promise; - delegationTotalRewards(request: import("../cosmos/distribution/v1beta1/query").QueryDelegationTotalRewardsRequest): Promise; - delegatorValidators(request: import("../cosmos/distribution/v1beta1/query").QueryDelegatorValidatorsRequest): Promise; - delegatorWithdrawAddress(request: import("../cosmos/distribution/v1beta1/query").QueryDelegatorWithdrawAddressRequest): Promise; - communityPool(request?: import("../cosmos/distribution/v1beta1/query").QueryCommunityPoolRequest): Promise; - }; - }; - evidence: { - v1beta1: { - evidence(request: import("../cosmos/evidence/v1beta1/query").QueryEvidenceRequest): Promise; - allEvidence(request?: import("../cosmos/evidence/v1beta1/query").QueryAllEvidenceRequest): Promise; - }; - }; - feegrant: { - v1beta1: { - allowance(request: import("../cosmos/feegrant/v1beta1/query").QueryAllowanceRequest): Promise; - allowances(request: import("../cosmos/feegrant/v1beta1/query").QueryAllowancesRequest): Promise; - allowancesByGranter(request: import("../cosmos/feegrant/v1beta1/query").QueryAllowancesByGranterRequest): Promise; - }; - }; - gov: { - v1: { - proposal(request: import("../cosmos/gov/v1/query").QueryProposalRequest): Promise; - proposals(request: import("../cosmos/gov/v1/query").QueryProposalsRequest): Promise; - vote(request: import("../cosmos/gov/v1/query").QueryVoteRequest): Promise; - votes(request: import("../cosmos/gov/v1/query").QueryVotesRequest): Promise; - params(request: import("../cosmos/gov/v1/query").QueryParamsRequest): Promise; - deposit(request: import("../cosmos/gov/v1/query").QueryDepositRequest): Promise; - deposits(request: import("../cosmos/gov/v1/query").QueryDepositsRequest): Promise; - tallyResult(request: import("../cosmos/gov/v1/query").QueryTallyResultRequest): Promise; - }; - v1beta1: { - proposal(request: import("../cosmos/gov/v1beta1/query").QueryProposalRequest): Promise; - proposals(request: import("../cosmos/gov/v1beta1/query").QueryProposalsRequest): Promise; - vote(request: import("../cosmos/gov/v1beta1/query").QueryVoteRequest): Promise; - votes(request: import("../cosmos/gov/v1beta1/query").QueryVotesRequest): Promise; - params(request: import("../cosmos/gov/v1beta1/query").QueryParamsRequest): Promise; - deposit(request: import("../cosmos/gov/v1beta1/query").QueryDepositRequest): Promise; - deposits(request: import("../cosmos/gov/v1beta1/query").QueryDepositsRequest): Promise; - tallyResult(request: import("../cosmos/gov/v1beta1/query").QueryTallyResultRequest): Promise; - }; - }; - group: { - v1: { - groupInfo(request: import("../cosmos/group/v1/query").QueryGroupInfoRequest): Promise; - groupPolicyInfo(request: import("../cosmos/group/v1/query").QueryGroupPolicyInfoRequest): Promise; - groupMembers(request: import("../cosmos/group/v1/query").QueryGroupMembersRequest): Promise; - groupsByAdmin(request: import("../cosmos/group/v1/query").QueryGroupsByAdminRequest): Promise; - groupPoliciesByGroup(request: import("../cosmos/group/v1/query").QueryGroupPoliciesByGroupRequest): Promise; - groupPoliciesByAdmin(request: import("../cosmos/group/v1/query").QueryGroupPoliciesByAdminRequest): Promise; - proposal(request: import("../cosmos/group/v1/query").QueryProposalRequest): Promise; - proposalsByGroupPolicy(request: import("../cosmos/group/v1/query").QueryProposalsByGroupPolicyRequest): Promise; - voteByProposalVoter(request: import("../cosmos/group/v1/query").QueryVoteByProposalVoterRequest): Promise; - votesByProposal(request: import("../cosmos/group/v1/query").QueryVotesByProposalRequest): Promise; - votesByVoter(request: import("../cosmos/group/v1/query").QueryVotesByVoterRequest): Promise; - groupsByMember(request: import("../cosmos/group/v1/query").QueryGroupsByMemberRequest): Promise; - tallyResult(request: import("../cosmos/group/v1/query").QueryTallyResultRequest): Promise; - }; - }; - mint: { - v1beta1: { - params(request?: import("../cosmos/mint/v1beta1/query").QueryParamsRequest): Promise; - inflation(request?: import("../cosmos/mint/v1beta1/query").QueryInflationRequest): Promise; - annualProvisions(request?: import("../cosmos/mint/v1beta1/query").QueryAnnualProvisionsRequest): Promise; - }; - }; - nft: { - v1beta1: { - balance(request: import("../cosmos/nft/v1beta1/query").QueryBalanceRequest): Promise; - owner(request: import("../cosmos/nft/v1beta1/query").QueryOwnerRequest): Promise; - supply(request: import("../cosmos/nft/v1beta1/query").QuerySupplyRequest): Promise; - nFTs(request: import("../cosmos/nft/v1beta1/query").QueryNFTsRequest): Promise; - nFT(request: import("../cosmos/nft/v1beta1/query").QueryNFTRequest): Promise; - class(request: import("../cosmos/nft/v1beta1/query").QueryClassRequest): Promise; - classes(request?: import("../cosmos/nft/v1beta1/query").QueryClassesRequest): Promise; - }; - }; - params: { - v1beta1: { - params(request: import("../cosmos/params/v1beta1/query").QueryParamsRequest): Promise; - subspaces(request?: import("../cosmos/params/v1beta1/query").QuerySubspacesRequest): Promise; - }; - }; - slashing: { - v1beta1: { - params(request?: import("../cosmos/slashing/v1beta1/query").QueryParamsRequest): Promise; - signingInfo(request: import("../cosmos/slashing/v1beta1/query").QuerySigningInfoRequest): Promise; - signingInfos(request?: import("../cosmos/slashing/v1beta1/query").QuerySigningInfosRequest): Promise; - }; - }; - staking: { - v1beta1: { - validators(request: import("../cosmos/staking/v1beta1/query").QueryValidatorsRequest): Promise; - validator(request: import("../cosmos/staking/v1beta1/query").QueryValidatorRequest): Promise; - validatorDelegations(request: import("../cosmos/staking/v1beta1/query").QueryValidatorDelegationsRequest): Promise; - validatorUnbondingDelegations(request: import("../cosmos/staking/v1beta1/query").QueryValidatorUnbondingDelegationsRequest): Promise; - delegation(request: import("../cosmos/staking/v1beta1/query").QueryDelegationRequest): Promise; - unbondingDelegation(request: import("../cosmos/staking/v1beta1/query").QueryUnbondingDelegationRequest): Promise; - delegatorDelegations(request: import("../cosmos/staking/v1beta1/query").QueryDelegatorDelegationsRequest): Promise; - delegatorUnbondingDelegations(request: import("../cosmos/staking/v1beta1/query").QueryDelegatorUnbondingDelegationsRequest): Promise; - redelegations(request: import("../cosmos/staking/v1beta1/query").QueryRedelegationsRequest): Promise; - delegatorValidators(request: import("../cosmos/staking/v1beta1/query").QueryDelegatorValidatorsRequest): Promise; - delegatorValidator(request: import("../cosmos/staking/v1beta1/query").QueryDelegatorValidatorRequest): Promise; - historicalInfo(request: import("../cosmos/staking/v1beta1/query").QueryHistoricalInfoRequest): Promise; - pool(request?: import("../cosmos/staking/v1beta1/query").QueryPoolRequest): Promise; - params(request?: import("../cosmos/staking/v1beta1/query").QueryParamsRequest): Promise; - }; - }; - tx: { - v1beta1: { - simulate(request: import("../cosmos/tx/v1beta1/service").SimulateRequest): Promise; - getTx(request: import("../cosmos/tx/v1beta1/service").GetTxRequest): Promise; - broadcastTx(request: import("../cosmos/tx/v1beta1/service").BroadcastTxRequest): Promise; - getTxsEvent(request: import("../cosmos/tx/v1beta1/service").GetTxsEventRequest): Promise; - getBlockWithTxs(request: import("../cosmos/tx/v1beta1/service").GetBlockWithTxsRequest): Promise; - }; - }; - upgrade: { - v1beta1: { - currentPlan(request?: import("../cosmos/upgrade/v1beta1/query").QueryCurrentPlanRequest): Promise; - appliedPlan(request: import("../cosmos/upgrade/v1beta1/query").QueryAppliedPlanRequest): Promise; - upgradedConsensusState(request: import("../cosmos/upgrade/v1beta1/query").QueryUpgradedConsensusStateRequest): Promise; - moduleVersions(request: import("../cosmos/upgrade/v1beta1/query").QueryModuleVersionsRequest): Promise; - authority(request?: import("../cosmos/upgrade/v1beta1/query").QueryAuthorityRequest): Promise; - }; - }; - }; - ibc: { - applications: { - transfer: { - v1: { - denomTrace(request: import("./applications/transfer/v1/query").QueryDenomTraceRequest): Promise; - denomTraces(request?: import("./applications/transfer/v1/query").QueryDenomTracesRequest): Promise; - params(request?: import("./applications/transfer/v1/query").QueryParamsRequest): Promise; - }; - }; - }; - core: { - channel: { - v1: { - channel(request: import("./core/channel/v1/query").QueryChannelRequest): Promise; - channels(request?: import("./core/channel/v1/query").QueryChannelsRequest): Promise; - connectionChannels(request: import("./core/channel/v1/query").QueryConnectionChannelsRequest): Promise; - channelClientState(request: import("./core/channel/v1/query").QueryChannelClientStateRequest): Promise; - channelConsensusState(request: import("./core/channel/v1/query").QueryChannelConsensusStateRequest): Promise; - packetCommitment(request: import("./core/channel/v1/query").QueryPacketCommitmentRequest): Promise; - packetCommitments(request: import("./core/channel/v1/query").QueryPacketCommitmentsRequest): Promise; - packetReceipt(request: import("./core/channel/v1/query").QueryPacketReceiptRequest): Promise; - packetAcknowledgement(request: import("./core/channel/v1/query").QueryPacketAcknowledgementRequest): Promise; - packetAcknowledgements(request: import("./core/channel/v1/query").QueryPacketAcknowledgementsRequest): Promise; - unreceivedPackets(request: import("./core/channel/v1/query").QueryUnreceivedPacketsRequest): Promise; - unreceivedAcks(request: import("./core/channel/v1/query").QueryUnreceivedAcksRequest): Promise; - nextSequenceReceive(request: import("./core/channel/v1/query").QueryNextSequenceReceiveRequest): Promise; - }; - }; - client: { - v1: { - clientState(request: import("./core/client/v1/query").QueryClientStateRequest): Promise; - clientStates(request?: import("./core/client/v1/query").QueryClientStatesRequest): Promise; - consensusState(request: import("./core/client/v1/query").QueryConsensusStateRequest): Promise; - consensusStates(request: import("./core/client/v1/query").QueryConsensusStatesRequest): Promise; - clientStatus(request: import("./core/client/v1/query").QueryClientStatusRequest): Promise; - clientParams(request?: import("./core/client/v1/query").QueryClientParamsRequest): Promise; - upgradedClientState(request?: import("./core/client/v1/query").QueryUpgradedClientStateRequest): Promise; - upgradedConsensusState(request?: import("./core/client/v1/query").QueryUpgradedConsensusStateRequest): Promise; - }; - }; - connection: { - v1: { - connection(request: import("./core/connection/v1/query").QueryConnectionRequest): Promise; - connections(request?: import("./core/connection/v1/query").QueryConnectionsRequest): Promise; - clientConnections(request: import("./core/connection/v1/query").QueryClientConnectionsRequest): Promise; - connectionClientState(request: import("./core/connection/v1/query").QueryConnectionClientStateRequest): Promise; - connectionConsensusState(request: import("./core/connection/v1/query").QueryConnectionConsensusStateRequest): Promise; - }; - }; - port: { - v1: { - appVersion(request: import("./core/port/v1/query").QueryAppVersionRequest): Promise; - }; - }; - }; - }; -}>; diff --git a/packages/codegen/dist/ibc/rpc.tx.d.ts b/packages/codegen/dist/ibc/rpc.tx.d.ts deleted file mode 100644 index f7d15613..00000000 --- a/packages/codegen/dist/ibc/rpc.tx.d.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { Rpc } from "../helpers"; -export declare const createRPCMsgClient: ({ rpc }: { - rpc: Rpc; -}) => Promise<{ - cosmos: { - authz: { - v1beta1: import("../cosmos/authz/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - bank: { - v1beta1: import("../cosmos/bank/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - crisis: { - v1beta1: import("../cosmos/crisis/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - distribution: { - v1beta1: import("../cosmos/distribution/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - evidence: { - v1beta1: import("../cosmos/evidence/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - feegrant: { - v1beta1: import("../cosmos/feegrant/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - gov: { - v1: import("../cosmos/gov/v1/tx.rpc.msg").MsgClientImpl; - v1beta1: import("../cosmos/gov/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - group: { - v1: import("../cosmos/group/v1/tx.rpc.msg").MsgClientImpl; - }; - nft: { - v1beta1: import("../cosmos/nft/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - slashing: { - v1beta1: import("../cosmos/slashing/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - staking: { - v1beta1: import("../cosmos/staking/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - upgrade: { - v1beta1: import("../cosmos/upgrade/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - vesting: { - v1beta1: import("../cosmos/vesting/v1beta1/tx.rpc.msg").MsgClientImpl; - }; - }; - ibc: { - applications: { - transfer: { - v1: import("./applications/transfer/v1/tx.rpc.msg").MsgClientImpl; - }; - }; - core: { - channel: { - v1: import("./core/channel/v1/tx.rpc.msg").MsgClientImpl; - }; - client: { - v1: import("./core/client/v1/tx.rpc.msg").MsgClientImpl; - }; - connection: { - v1: import("./core/connection/v1/tx.rpc.msg").MsgClientImpl; - }; - }; - }; -}>; diff --git a/packages/codegen/dist/ics23/bundle.d.ts b/packages/codegen/dist/ics23/bundle.d.ts deleted file mode 100644 index 5793c757..00000000 --- a/packages/codegen/dist/ics23/bundle.d.ts +++ /dev/null @@ -1,545 +0,0 @@ -import * as _1 from "../confio/proofs"; -export declare const ics23: { - hashOpFromJSON(object: any): _1.HashOp; - hashOpToJSON(object: _1.HashOp): string; - lengthOpFromJSON(object: any): _1.LengthOp; - lengthOpToJSON(object: _1.LengthOp): string; - HashOp: typeof _1.HashOp; - HashOpSDKType: typeof _1.HashOp; - LengthOp: typeof _1.LengthOp; - LengthOpSDKType: typeof _1.LengthOp; - ExistenceProof: { - encode(message: _1.ExistenceProof, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _1.ExistenceProof; - fromPartial(object: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: { - hash?: _1.HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }[]; - }): _1.ExistenceProof; - }; - NonExistenceProof: { - encode(message: _1.NonExistenceProof, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _1.NonExistenceProof; - fromPartial(object: { - key?: Uint8Array; - left?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: { - hash?: _1.HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }[]; - }; - right?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: { - hash?: _1.HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }[]; - }; - }): _1.NonExistenceProof; - }; - CommitmentProof: { - encode(message: _1.CommitmentProof, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _1.CommitmentProof; - fromPartial(object: { - exist?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: { - hash?: _1.HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }[]; - }; - nonexist?: { - key?: Uint8Array; - left?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: { - hash?: _1.HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }[]; - }; - right?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: { - hash?: _1.HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }[]; - }; - }; - batch?: { - entries?: { - exist?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: { - hash?: _1.HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }[]; - }; - nonexist?: { - key?: Uint8Array; - left?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: { - hash?: _1.HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }[]; - }; - right?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: { - hash?: _1.HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }[]; - }; - }; - }[]; - }; - compressed?: { - entries?: { - exist?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: number[]; - }; - nonexist?: { - key?: Uint8Array; - left?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: number[]; - }; - right?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: number[]; - }; - }; - }[]; - lookupInners?: { - hash?: _1.HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }[]; - }; - }): _1.CommitmentProof; - }; - LeafOp: { - encode(message: _1.LeafOp, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _1.LeafOp; - fromPartial(object: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }): _1.LeafOp; - }; - InnerOp: { - encode(message: _1.InnerOp, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _1.InnerOp; - fromPartial(object: { - hash?: _1.HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }): _1.InnerOp; - }; - ProofSpec: { - encode(message: _1.ProofSpec, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _1.ProofSpec; - fromPartial(object: { - leafSpec?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - innerSpec?: { - childOrder?: number[]; - childSize?: number; - minPrefixLength?: number; - maxPrefixLength?: number; - emptyChild?: Uint8Array; - hash?: _1.HashOp; - }; - maxDepth?: number; - minDepth?: number; - }): _1.ProofSpec; - }; - InnerSpec: { - encode(message: _1.InnerSpec, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _1.InnerSpec; - fromPartial(object: { - childOrder?: number[]; - childSize?: number; - minPrefixLength?: number; - maxPrefixLength?: number; - emptyChild?: Uint8Array; - hash?: _1.HashOp; - }): _1.InnerSpec; - }; - BatchProof: { - encode(message: _1.BatchProof, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _1.BatchProof; - fromPartial(object: { - entries?: { - exist?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: { - hash?: _1.HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }[]; - }; - nonexist?: { - key?: Uint8Array; - left?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: { - hash?: _1.HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }[]; - }; - right?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: { - hash?: _1.HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }[]; - }; - }; - }[]; - }): _1.BatchProof; - }; - BatchEntry: { - encode(message: _1.BatchEntry, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _1.BatchEntry; - fromPartial(object: { - exist?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: { - hash?: _1.HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }[]; - }; - nonexist?: { - key?: Uint8Array; - left?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: { - hash?: _1.HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }[]; - }; - right?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: { - hash?: _1.HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }[]; - }; - }; - }): _1.BatchEntry; - }; - CompressedBatchProof: { - encode(message: _1.CompressedBatchProof, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _1.CompressedBatchProof; - fromPartial(object: { - entries?: { - exist?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: number[]; - }; - nonexist?: { - key?: Uint8Array; - left?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: number[]; - }; - right?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: number[]; - }; - }; - }[]; - lookupInners?: { - hash?: _1.HashOp; - prefix?: Uint8Array; - suffix?: Uint8Array; - }[]; - }): _1.CompressedBatchProof; - }; - CompressedBatchEntry: { - encode(message: _1.CompressedBatchEntry, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _1.CompressedBatchEntry; - fromPartial(object: { - exist?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: number[]; - }; - nonexist?: { - key?: Uint8Array; - left?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: number[]; - }; - right?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: number[]; - }; - }; - }): _1.CompressedBatchEntry; - }; - CompressedExistenceProof: { - encode(message: _1.CompressedExistenceProof, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _1.CompressedExistenceProof; - fromPartial(object: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: number[]; - }): _1.CompressedExistenceProof; - }; - CompressedNonExistenceProof: { - encode(message: _1.CompressedNonExistenceProof, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _1.CompressedNonExistenceProof; - fromPartial(object: { - key?: Uint8Array; - left?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: number[]; - }; - right?: { - key?: Uint8Array; - value?: Uint8Array; - leaf?: { - hash?: _1.HashOp; - prehashKey?: _1.HashOp; - prehashValue?: _1.HashOp; - length?: _1.LengthOp; - prefix?: Uint8Array; - }; - path?: number[]; - }; - }): _1.CompressedNonExistenceProof; - }; -}; diff --git a/packages/codegen/dist/index.d.ts b/packages/codegen/dist/index.d.ts deleted file mode 100644 index 5e348be3..00000000 --- a/packages/codegen/dist/index.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** - * This file and any referenced files were automatically generated by @osmonauts/telescope@0.88.2 - * DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain - * and run the transpile command or yarn proto command to regenerate this bundle. - */ -export * from "./amino/bundle"; -export * from "./ics23/bundle"; -export * from "./cosmos_proto/bundle"; -export * from "./cosmos/bundle"; -export * from "./cosmwasm/bundle"; -export * from "./gogoproto/bundle"; -export * from "./google/bundle"; -export * from "./ibc/bundle"; -export * from "./tendermint/bundle"; diff --git a/packages/codegen/dist/tendermint/abci/types.d.ts b/packages/codegen/dist/tendermint/abci/types.d.ts deleted file mode 100644 index 8ecf55d7..00000000 --- a/packages/codegen/dist/tendermint/abci/types.d.ts +++ /dev/null @@ -1,833 +0,0 @@ -/// -import { Header, HeaderSDKType } from "../types/types"; -import { ProofOps, ProofOpsSDKType } from "../crypto/proof"; -import { EvidenceParams, EvidenceParamsSDKType, ValidatorParams, ValidatorParamsSDKType, VersionParams, VersionParamsSDKType } from "../types/params"; -import { PublicKey, PublicKeySDKType } from "../crypto/keys"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../helpers"; -export declare enum CheckTxType { - NEW = 0, - RECHECK = 1, - UNRECOGNIZED = -1 -} -export declare const CheckTxTypeSDKType: typeof CheckTxType; -export declare function checkTxTypeFromJSON(object: any): CheckTxType; -export declare function checkTxTypeToJSON(object: CheckTxType): string; -export declare enum ResponseOfferSnapshot_Result { - /** UNKNOWN - Unknown result, abort all snapshot restoration */ - UNKNOWN = 0, - /** ACCEPT - Snapshot accepted, apply chunks */ - ACCEPT = 1, - /** ABORT - Abort all snapshot restoration */ - ABORT = 2, - /** REJECT - Reject this specific snapshot, try others */ - REJECT = 3, - /** REJECT_FORMAT - Reject all snapshots of this format, try others */ - REJECT_FORMAT = 4, - /** REJECT_SENDER - Reject all snapshots from the sender(s), try others */ - REJECT_SENDER = 5, - UNRECOGNIZED = -1 -} -export declare const ResponseOfferSnapshot_ResultSDKType: typeof ResponseOfferSnapshot_Result; -export declare function responseOfferSnapshot_ResultFromJSON(object: any): ResponseOfferSnapshot_Result; -export declare function responseOfferSnapshot_ResultToJSON(object: ResponseOfferSnapshot_Result): string; -export declare enum ResponseApplySnapshotChunk_Result { - /** UNKNOWN - Unknown result, abort all snapshot restoration */ - UNKNOWN = 0, - /** ACCEPT - Chunk successfully accepted */ - ACCEPT = 1, - /** ABORT - Abort all snapshot restoration */ - ABORT = 2, - /** RETRY - Retry chunk (combine with refetch and reject) */ - RETRY = 3, - /** RETRY_SNAPSHOT - Retry snapshot (combine with refetch and reject) */ - RETRY_SNAPSHOT = 4, - /** REJECT_SNAPSHOT - Reject this snapshot, try others */ - REJECT_SNAPSHOT = 5, - UNRECOGNIZED = -1 -} -export declare const ResponseApplySnapshotChunk_ResultSDKType: typeof ResponseApplySnapshotChunk_Result; -export declare function responseApplySnapshotChunk_ResultFromJSON(object: any): ResponseApplySnapshotChunk_Result; -export declare function responseApplySnapshotChunk_ResultToJSON(object: ResponseApplySnapshotChunk_Result): string; -export declare enum EvidenceType { - UNKNOWN = 0, - DUPLICATE_VOTE = 1, - LIGHT_CLIENT_ATTACK = 2, - UNRECOGNIZED = -1 -} -export declare const EvidenceTypeSDKType: typeof EvidenceType; -export declare function evidenceTypeFromJSON(object: any): EvidenceType; -export declare function evidenceTypeToJSON(object: EvidenceType): string; -export interface Request { - echo?: RequestEcho; - flush?: RequestFlush; - info?: RequestInfo; - setOption?: RequestSetOption; - initChain?: RequestInitChain; - query?: RequestQuery; - beginBlock?: RequestBeginBlock; - checkTx?: RequestCheckTx; - deliverTx?: RequestDeliverTx; - endBlock?: RequestEndBlock; - commit?: RequestCommit; - listSnapshots?: RequestListSnapshots; - offerSnapshot?: RequestOfferSnapshot; - loadSnapshotChunk?: RequestLoadSnapshotChunk; - applySnapshotChunk?: RequestApplySnapshotChunk; -} -export interface RequestSDKType { - echo?: RequestEchoSDKType; - flush?: RequestFlushSDKType; - info?: RequestInfoSDKType; - set_option?: RequestSetOptionSDKType; - init_chain?: RequestInitChainSDKType; - query?: RequestQuerySDKType; - begin_block?: RequestBeginBlockSDKType; - check_tx?: RequestCheckTxSDKType; - deliver_tx?: RequestDeliverTxSDKType; - end_block?: RequestEndBlockSDKType; - commit?: RequestCommitSDKType; - list_snapshots?: RequestListSnapshotsSDKType; - offer_snapshot?: RequestOfferSnapshotSDKType; - load_snapshot_chunk?: RequestLoadSnapshotChunkSDKType; - apply_snapshot_chunk?: RequestApplySnapshotChunkSDKType; -} -export interface RequestEcho { - message: string; -} -export interface RequestEchoSDKType { - message: string; -} -export interface RequestFlush { -} -export interface RequestFlushSDKType { -} -export interface RequestInfo { - version: string; - blockVersion: Long; - p2pVersion: Long; -} -export interface RequestInfoSDKType { - version: string; - block_version: Long; - p2p_version: Long; -} -/** nondeterministic */ -export interface RequestSetOption { - key: string; - value: string; -} -/** nondeterministic */ -export interface RequestSetOptionSDKType { - key: string; - value: string; -} -export interface RequestInitChain { - time?: Date; - chainId: string; - consensusParams?: ConsensusParams; - validators: ValidatorUpdate[]; - appStateBytes: Uint8Array; - initialHeight: Long; -} -export interface RequestInitChainSDKType { - time?: Date; - chain_id: string; - consensus_params?: ConsensusParamsSDKType; - validators: ValidatorUpdateSDKType[]; - app_state_bytes: Uint8Array; - initial_height: Long; -} -export interface RequestQuery { - data: Uint8Array; - path: string; - height: Long; - prove: boolean; -} -export interface RequestQuerySDKType { - data: Uint8Array; - path: string; - height: Long; - prove: boolean; -} -export interface RequestBeginBlock { - hash: Uint8Array; - header?: Header; - lastCommitInfo?: LastCommitInfo; - byzantineValidators: Evidence[]; -} -export interface RequestBeginBlockSDKType { - hash: Uint8Array; - header?: HeaderSDKType; - last_commit_info?: LastCommitInfoSDKType; - byzantine_validators: EvidenceSDKType[]; -} -export interface RequestCheckTx { - tx: Uint8Array; - type: CheckTxType; -} -export interface RequestCheckTxSDKType { - tx: Uint8Array; - type: CheckTxType; -} -export interface RequestDeliverTx { - tx: Uint8Array; -} -export interface RequestDeliverTxSDKType { - tx: Uint8Array; -} -export interface RequestEndBlock { - height: Long; -} -export interface RequestEndBlockSDKType { - height: Long; -} -export interface RequestCommit { -} -export interface RequestCommitSDKType { -} -/** lists available snapshots */ -export interface RequestListSnapshots { -} -/** lists available snapshots */ -export interface RequestListSnapshotsSDKType { -} -/** offers a snapshot to the application */ -export interface RequestOfferSnapshot { - /** snapshot offered by peers */ - snapshot?: Snapshot; - /** light client-verified app hash for snapshot height */ - appHash: Uint8Array; -} -/** offers a snapshot to the application */ -export interface RequestOfferSnapshotSDKType { - snapshot?: SnapshotSDKType; - app_hash: Uint8Array; -} -/** loads a snapshot chunk */ -export interface RequestLoadSnapshotChunk { - height: Long; - format: number; - chunk: number; -} -/** loads a snapshot chunk */ -export interface RequestLoadSnapshotChunkSDKType { - height: Long; - format: number; - chunk: number; -} -/** Applies a snapshot chunk */ -export interface RequestApplySnapshotChunk { - index: number; - chunk: Uint8Array; - sender: string; -} -/** Applies a snapshot chunk */ -export interface RequestApplySnapshotChunkSDKType { - index: number; - chunk: Uint8Array; - sender: string; -} -export interface Response { - exception?: ResponseException; - echo?: ResponseEcho; - flush?: ResponseFlush; - info?: ResponseInfo; - setOption?: ResponseSetOption; - initChain?: ResponseInitChain; - query?: ResponseQuery; - beginBlock?: ResponseBeginBlock; - checkTx?: ResponseCheckTx; - deliverTx?: ResponseDeliverTx; - endBlock?: ResponseEndBlock; - commit?: ResponseCommit; - listSnapshots?: ResponseListSnapshots; - offerSnapshot?: ResponseOfferSnapshot; - loadSnapshotChunk?: ResponseLoadSnapshotChunk; - applySnapshotChunk?: ResponseApplySnapshotChunk; -} -export interface ResponseSDKType { - exception?: ResponseExceptionSDKType; - echo?: ResponseEchoSDKType; - flush?: ResponseFlushSDKType; - info?: ResponseInfoSDKType; - set_option?: ResponseSetOptionSDKType; - init_chain?: ResponseInitChainSDKType; - query?: ResponseQuerySDKType; - begin_block?: ResponseBeginBlockSDKType; - check_tx?: ResponseCheckTxSDKType; - deliver_tx?: ResponseDeliverTxSDKType; - end_block?: ResponseEndBlockSDKType; - commit?: ResponseCommitSDKType; - list_snapshots?: ResponseListSnapshotsSDKType; - offer_snapshot?: ResponseOfferSnapshotSDKType; - load_snapshot_chunk?: ResponseLoadSnapshotChunkSDKType; - apply_snapshot_chunk?: ResponseApplySnapshotChunkSDKType; -} -/** nondeterministic */ -export interface ResponseException { - error: string; -} -/** nondeterministic */ -export interface ResponseExceptionSDKType { - error: string; -} -export interface ResponseEcho { - message: string; -} -export interface ResponseEchoSDKType { - message: string; -} -export interface ResponseFlush { -} -export interface ResponseFlushSDKType { -} -export interface ResponseInfo { - data: string; - version: string; - appVersion: Long; - lastBlockHeight: Long; - lastBlockAppHash: Uint8Array; -} -export interface ResponseInfoSDKType { - data: string; - version: string; - app_version: Long; - last_block_height: Long; - last_block_app_hash: Uint8Array; -} -/** nondeterministic */ -export interface ResponseSetOption { - code: number; - /** bytes data = 2; */ - log: string; - info: string; -} -/** nondeterministic */ -export interface ResponseSetOptionSDKType { - code: number; - log: string; - info: string; -} -export interface ResponseInitChain { - consensusParams?: ConsensusParams; - validators: ValidatorUpdate[]; - appHash: Uint8Array; -} -export interface ResponseInitChainSDKType { - consensus_params?: ConsensusParamsSDKType; - validators: ValidatorUpdateSDKType[]; - app_hash: Uint8Array; -} -export interface ResponseQuery { - code: number; - /** bytes data = 2; // use "value" instead. */ - log: string; - /** nondeterministic */ - info: string; - index: Long; - key: Uint8Array; - value: Uint8Array; - proofOps?: ProofOps; - height: Long; - codespace: string; -} -export interface ResponseQuerySDKType { - code: number; - log: string; - info: string; - index: Long; - key: Uint8Array; - value: Uint8Array; - proof_ops?: ProofOpsSDKType; - height: Long; - codespace: string; -} -export interface ResponseBeginBlock { - events: Event[]; -} -export interface ResponseBeginBlockSDKType { - events: EventSDKType[]; -} -export interface ResponseCheckTx { - code: number; - data: Uint8Array; - /** nondeterministic */ - log: string; - /** nondeterministic */ - info: string; - gasWanted: Long; - gasUsed: Long; - events: Event[]; - codespace: string; -} -export interface ResponseCheckTxSDKType { - code: number; - data: Uint8Array; - log: string; - info: string; - gas_wanted: Long; - gas_used: Long; - events: EventSDKType[]; - codespace: string; -} -export interface ResponseDeliverTx { - code: number; - data: Uint8Array; - /** nondeterministic */ - log: string; - /** nondeterministic */ - info: string; - gasWanted: Long; - gasUsed: Long; - events: Event[]; - codespace: string; -} -export interface ResponseDeliverTxSDKType { - code: number; - data: Uint8Array; - log: string; - info: string; - gas_wanted: Long; - gas_used: Long; - events: EventSDKType[]; - codespace: string; -} -export interface ResponseEndBlock { - validatorUpdates: ValidatorUpdate[]; - consensusParamUpdates?: ConsensusParams; - events: Event[]; -} -export interface ResponseEndBlockSDKType { - validator_updates: ValidatorUpdateSDKType[]; - consensus_param_updates?: ConsensusParamsSDKType; - events: EventSDKType[]; -} -export interface ResponseCommit { - /** reserve 1 */ - data: Uint8Array; - retainHeight: Long; -} -export interface ResponseCommitSDKType { - data: Uint8Array; - retain_height: Long; -} -export interface ResponseListSnapshots { - snapshots: Snapshot[]; -} -export interface ResponseListSnapshotsSDKType { - snapshots: SnapshotSDKType[]; -} -export interface ResponseOfferSnapshot { - result: ResponseOfferSnapshot_Result; -} -export interface ResponseOfferSnapshotSDKType { - result: ResponseOfferSnapshot_Result; -} -export interface ResponseLoadSnapshotChunk { - chunk: Uint8Array; -} -export interface ResponseLoadSnapshotChunkSDKType { - chunk: Uint8Array; -} -export interface ResponseApplySnapshotChunk { - result: ResponseApplySnapshotChunk_Result; - /** Chunks to refetch and reapply */ - refetchChunks: number[]; - /** Chunk senders to reject and ban */ - rejectSenders: string[]; -} -export interface ResponseApplySnapshotChunkSDKType { - result: ResponseApplySnapshotChunk_Result; - refetch_chunks: number[]; - reject_senders: string[]; -} -/** - * ConsensusParams contains all consensus-relevant parameters - * that can be adjusted by the abci app - */ -export interface ConsensusParams { - block?: BlockParams; - evidence?: EvidenceParams; - validator?: ValidatorParams; - version?: VersionParams; -} -/** - * ConsensusParams contains all consensus-relevant parameters - * that can be adjusted by the abci app - */ -export interface ConsensusParamsSDKType { - block?: BlockParamsSDKType; - evidence?: EvidenceParamsSDKType; - validator?: ValidatorParamsSDKType; - version?: VersionParamsSDKType; -} -/** BlockParams contains limits on the block size. */ -export interface BlockParams { - /** Note: must be greater than 0 */ - maxBytes: Long; - /** Note: must be greater or equal to -1 */ - maxGas: Long; -} -/** BlockParams contains limits on the block size. */ -export interface BlockParamsSDKType { - max_bytes: Long; - max_gas: Long; -} -export interface LastCommitInfo { - round: number; - votes: VoteInfo[]; -} -export interface LastCommitInfoSDKType { - round: number; - votes: VoteInfoSDKType[]; -} -/** - * Event allows application developers to attach additional information to - * ResponseBeginBlock, ResponseEndBlock, ResponseCheckTx and ResponseDeliverTx. - * Later, transactions may be queried using these events. - */ -export interface Event { - type: string; - attributes: EventAttribute[]; -} -/** - * Event allows application developers to attach additional information to - * ResponseBeginBlock, ResponseEndBlock, ResponseCheckTx and ResponseDeliverTx. - * Later, transactions may be queried using these events. - */ -export interface EventSDKType { - type: string; - attributes: EventAttributeSDKType[]; -} -/** EventAttribute is a single key-value pair, associated with an event. */ -export interface EventAttribute { - key: Uint8Array; - value: Uint8Array; - /** nondeterministic */ - index: boolean; -} -/** EventAttribute is a single key-value pair, associated with an event. */ -export interface EventAttributeSDKType { - key: Uint8Array; - value: Uint8Array; - index: boolean; -} -/** - * TxResult contains results of executing the transaction. - * - * One usage is indexing transaction results. - */ -export interface TxResult { - height: Long; - index: number; - tx: Uint8Array; - result?: ResponseDeliverTx; -} -/** - * TxResult contains results of executing the transaction. - * - * One usage is indexing transaction results. - */ -export interface TxResultSDKType { - height: Long; - index: number; - tx: Uint8Array; - result?: ResponseDeliverTxSDKType; -} -/** Validator */ -export interface Validator { - /** - * The first 20 bytes of SHA256(public key) - * PubKey pub_key = 2 [(gogoproto.nullable)=false]; - */ - address: Uint8Array; - /** The voting power */ - power: Long; -} -/** Validator */ -export interface ValidatorSDKType { - address: Uint8Array; - power: Long; -} -/** ValidatorUpdate */ -export interface ValidatorUpdate { - pubKey?: PublicKey; - power: Long; -} -/** ValidatorUpdate */ -export interface ValidatorUpdateSDKType { - pub_key?: PublicKeySDKType; - power: Long; -} -/** VoteInfo */ -export interface VoteInfo { - validator?: Validator; - signedLastBlock: boolean; -} -/** VoteInfo */ -export interface VoteInfoSDKType { - validator?: ValidatorSDKType; - signed_last_block: boolean; -} -export interface Evidence { - type: EvidenceType; - /** The offending validator */ - validator?: Validator; - /** The height when the offense occurred */ - height: Long; - /** The corresponding time where the offense occurred */ - time?: Date; - /** - * Total voting power of the validator set in case the ABCI application does - * not store historical validators. - * https://github.com/tendermint/tendermint/issues/4581 - */ - totalVotingPower: Long; -} -export interface EvidenceSDKType { - type: EvidenceType; - validator?: ValidatorSDKType; - height: Long; - time?: Date; - total_voting_power: Long; -} -export interface Snapshot { - /** The height at which the snapshot was taken */ - height: Long; - /** The application-specific snapshot format */ - format: number; - /** Number of chunks in the snapshot */ - chunks: number; - /** Arbitrary snapshot hash, equal only if identical */ - hash: Uint8Array; - /** Arbitrary application metadata */ - metadata: Uint8Array; -} -export interface SnapshotSDKType { - height: Long; - format: number; - chunks: number; - hash: Uint8Array; - metadata: Uint8Array; -} -export declare const Request: { - encode(message: Request, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Request; - fromPartial(object: DeepPartial): Request; -}; -export declare const RequestEcho: { - encode(message: RequestEcho, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): RequestEcho; - fromPartial(object: DeepPartial): RequestEcho; -}; -export declare const RequestFlush: { - encode(_: RequestFlush, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): RequestFlush; - fromPartial(_: DeepPartial): RequestFlush; -}; -export declare const RequestInfo: { - encode(message: RequestInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): RequestInfo; - fromPartial(object: DeepPartial): RequestInfo; -}; -export declare const RequestSetOption: { - encode(message: RequestSetOption, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): RequestSetOption; - fromPartial(object: DeepPartial): RequestSetOption; -}; -export declare const RequestInitChain: { - encode(message: RequestInitChain, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): RequestInitChain; - fromPartial(object: DeepPartial): RequestInitChain; -}; -export declare const RequestQuery: { - encode(message: RequestQuery, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): RequestQuery; - fromPartial(object: DeepPartial): RequestQuery; -}; -export declare const RequestBeginBlock: { - encode(message: RequestBeginBlock, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): RequestBeginBlock; - fromPartial(object: DeepPartial): RequestBeginBlock; -}; -export declare const RequestCheckTx: { - encode(message: RequestCheckTx, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): RequestCheckTx; - fromPartial(object: DeepPartial): RequestCheckTx; -}; -export declare const RequestDeliverTx: { - encode(message: RequestDeliverTx, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): RequestDeliverTx; - fromPartial(object: DeepPartial): RequestDeliverTx; -}; -export declare const RequestEndBlock: { - encode(message: RequestEndBlock, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): RequestEndBlock; - fromPartial(object: DeepPartial): RequestEndBlock; -}; -export declare const RequestCommit: { - encode(_: RequestCommit, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): RequestCommit; - fromPartial(_: DeepPartial): RequestCommit; -}; -export declare const RequestListSnapshots: { - encode(_: RequestListSnapshots, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): RequestListSnapshots; - fromPartial(_: DeepPartial): RequestListSnapshots; -}; -export declare const RequestOfferSnapshot: { - encode(message: RequestOfferSnapshot, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): RequestOfferSnapshot; - fromPartial(object: DeepPartial): RequestOfferSnapshot; -}; -export declare const RequestLoadSnapshotChunk: { - encode(message: RequestLoadSnapshotChunk, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): RequestLoadSnapshotChunk; - fromPartial(object: DeepPartial): RequestLoadSnapshotChunk; -}; -export declare const RequestApplySnapshotChunk: { - encode(message: RequestApplySnapshotChunk, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): RequestApplySnapshotChunk; - fromPartial(object: DeepPartial): RequestApplySnapshotChunk; -}; -export declare const Response: { - encode(message: Response, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Response; - fromPartial(object: DeepPartial): Response; -}; -export declare const ResponseException: { - encode(message: ResponseException, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseException; - fromPartial(object: DeepPartial): ResponseException; -}; -export declare const ResponseEcho: { - encode(message: ResponseEcho, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseEcho; - fromPartial(object: DeepPartial): ResponseEcho; -}; -export declare const ResponseFlush: { - encode(_: ResponseFlush, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseFlush; - fromPartial(_: DeepPartial): ResponseFlush; -}; -export declare const ResponseInfo: { - encode(message: ResponseInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseInfo; - fromPartial(object: DeepPartial): ResponseInfo; -}; -export declare const ResponseSetOption: { - encode(message: ResponseSetOption, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseSetOption; - fromPartial(object: DeepPartial): ResponseSetOption; -}; -export declare const ResponseInitChain: { - encode(message: ResponseInitChain, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseInitChain; - fromPartial(object: DeepPartial): ResponseInitChain; -}; -export declare const ResponseQuery: { - encode(message: ResponseQuery, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseQuery; - fromPartial(object: DeepPartial): ResponseQuery; -}; -export declare const ResponseBeginBlock: { - encode(message: ResponseBeginBlock, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseBeginBlock; - fromPartial(object: DeepPartial): ResponseBeginBlock; -}; -export declare const ResponseCheckTx: { - encode(message: ResponseCheckTx, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseCheckTx; - fromPartial(object: DeepPartial): ResponseCheckTx; -}; -export declare const ResponseDeliverTx: { - encode(message: ResponseDeliverTx, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseDeliverTx; - fromPartial(object: DeepPartial): ResponseDeliverTx; -}; -export declare const ResponseEndBlock: { - encode(message: ResponseEndBlock, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseEndBlock; - fromPartial(object: DeepPartial): ResponseEndBlock; -}; -export declare const ResponseCommit: { - encode(message: ResponseCommit, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseCommit; - fromPartial(object: DeepPartial): ResponseCommit; -}; -export declare const ResponseListSnapshots: { - encode(message: ResponseListSnapshots, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseListSnapshots; - fromPartial(object: DeepPartial): ResponseListSnapshots; -}; -export declare const ResponseOfferSnapshot: { - encode(message: ResponseOfferSnapshot, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseOfferSnapshot; - fromPartial(object: DeepPartial): ResponseOfferSnapshot; -}; -export declare const ResponseLoadSnapshotChunk: { - encode(message: ResponseLoadSnapshotChunk, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseLoadSnapshotChunk; - fromPartial(object: DeepPartial): ResponseLoadSnapshotChunk; -}; -export declare const ResponseApplySnapshotChunk: { - encode(message: ResponseApplySnapshotChunk, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseApplySnapshotChunk; - fromPartial(object: DeepPartial): ResponseApplySnapshotChunk; -}; -export declare const ConsensusParams: { - encode(message: ConsensusParams, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ConsensusParams; - fromPartial(object: DeepPartial): ConsensusParams; -}; -export declare const BlockParams: { - encode(message: BlockParams, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): BlockParams; - fromPartial(object: DeepPartial): BlockParams; -}; -export declare const LastCommitInfo: { - encode(message: LastCommitInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): LastCommitInfo; - fromPartial(object: DeepPartial): LastCommitInfo; -}; -export declare const Event: { - encode(message: Event, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Event; - fromPartial(object: DeepPartial): Event; -}; -export declare const EventAttribute: { - encode(message: EventAttribute, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): EventAttribute; - fromPartial(object: DeepPartial): EventAttribute; -}; -export declare const TxResult: { - encode(message: TxResult, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): TxResult; - fromPartial(object: DeepPartial): TxResult; -}; -export declare const Validator: { - encode(message: Validator, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Validator; - fromPartial(object: DeepPartial): Validator; -}; -export declare const ValidatorUpdate: { - encode(message: ValidatorUpdate, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorUpdate; - fromPartial(object: DeepPartial): ValidatorUpdate; -}; -export declare const VoteInfo: { - encode(message: VoteInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): VoteInfo; - fromPartial(object: DeepPartial): VoteInfo; -}; -export declare const Evidence: { - encode(message: Evidence, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Evidence; - fromPartial(object: DeepPartial): Evidence; -}; -export declare const Snapshot: { - encode(message: Snapshot, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Snapshot; - fromPartial(object: DeepPartial): Snapshot; -}; diff --git a/packages/codegen/dist/tendermint/bundle.d.ts b/packages/codegen/dist/tendermint/bundle.d.ts deleted file mode 100644 index 85f6bcdd..00000000 --- a/packages/codegen/dist/tendermint/bundle.d.ts +++ /dev/null @@ -1,2066 +0,0 @@ -/// -import * as _134 from "./abci/types"; -import * as _135 from "./crypto/keys"; -import * as _136 from "./crypto/proof"; -import * as _137 from "./libs/bits/types"; -import * as _138 from "./p2p/types"; -import * as _139 from "./types/block"; -import * as _140 from "./types/evidence"; -import * as _141 from "./types/params"; -import * as _142 from "./types/types"; -import * as _143 from "./types/validator"; -import * as _144 from "./version/types"; -export declare namespace tendermint { - const abci: { - checkTxTypeFromJSON(object: any): _134.CheckTxType; - checkTxTypeToJSON(object: _134.CheckTxType): string; - responseOfferSnapshot_ResultFromJSON(object: any): _134.ResponseOfferSnapshot_Result; - responseOfferSnapshot_ResultToJSON(object: _134.ResponseOfferSnapshot_Result): string; - responseApplySnapshotChunk_ResultFromJSON(object: any): _134.ResponseApplySnapshotChunk_Result; - responseApplySnapshotChunk_ResultToJSON(object: _134.ResponseApplySnapshotChunk_Result): string; - evidenceTypeFromJSON(object: any): _134.EvidenceType; - evidenceTypeToJSON(object: _134.EvidenceType): string; - CheckTxType: typeof _134.CheckTxType; - CheckTxTypeSDKType: typeof _134.CheckTxType; - ResponseOfferSnapshot_Result: typeof _134.ResponseOfferSnapshot_Result; - ResponseOfferSnapshot_ResultSDKType: typeof _134.ResponseOfferSnapshot_Result; - ResponseApplySnapshotChunk_Result: typeof _134.ResponseApplySnapshotChunk_Result; - ResponseApplySnapshotChunk_ResultSDKType: typeof _134.ResponseApplySnapshotChunk_Result; - EvidenceType: typeof _134.EvidenceType; - EvidenceTypeSDKType: typeof _134.EvidenceType; - Request: { - encode(message: _134.Request, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.Request; - fromPartial(object: { - echo?: { - message?: string; - }; - flush?: {}; - info?: { - version?: string; - blockVersion?: string | number | import("long").Long; - p2pVersion?: string | number | import("long").Long; - }; - setOption?: { - key?: string; - value?: string; - }; - initChain?: { - time?: Date; - chainId?: string; - consensusParams?: { - block?: { - maxBytes?: string | number | import("long").Long; - maxGas?: string | number | import("long").Long; - }; - evidence?: { - maxAgeNumBlocks?: string | number | import("long").Long; - maxAgeDuration?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - maxBytes?: string | number | import("long").Long; - }; - validator?: { - pubKeyTypes?: string[]; - }; - version?: { - appVersion?: string | number | import("long").Long; - }; - }; - validators?: { - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - power?: string | number | import("long").Long; - }[]; - appStateBytes?: Uint8Array; - initialHeight?: string | number | import("long").Long; - }; - query?: { - data?: Uint8Array; - path?: string; - height?: string | number | import("long").Long; - prove?: boolean; - }; - beginBlock?: { - hash?: Uint8Array; - header?: { - version?: { - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }; - chainId?: string; - height?: string | number | import("long").Long; - time?: Date; - lastBlockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - lastCommitHash?: Uint8Array; - dataHash?: Uint8Array; - validatorsHash?: Uint8Array; - nextValidatorsHash?: Uint8Array; - consensusHash?: Uint8Array; - appHash?: Uint8Array; - lastResultsHash?: Uint8Array; - evidenceHash?: Uint8Array; - proposerAddress?: Uint8Array; - }; - lastCommitInfo?: { - round?: number; - votes?: { - validator?: { - address?: Uint8Array; - power?: string | number | import("long").Long; - }; - signedLastBlock?: boolean; - }[]; - }; - byzantineValidators?: { - type?: _134.EvidenceType; - validator?: { - address?: Uint8Array; - power?: string | number | import("long").Long; - }; - height?: string | number | import("long").Long; - time?: Date; - totalVotingPower?: string | number | import("long").Long; - }[]; - }; - checkTx?: { - tx?: Uint8Array; - type?: _134.CheckTxType; - }; - deliverTx?: { - tx?: Uint8Array; - }; - endBlock?: { - height?: string | number | import("long").Long; - }; - commit?: {}; - listSnapshots?: {}; - offerSnapshot?: { - snapshot?: { - height?: string | number | import("long").Long; - format?: number; - chunks?: number; - hash?: Uint8Array; - metadata?: Uint8Array; - }; - appHash?: Uint8Array; - }; - loadSnapshotChunk?: { - height?: string | number | import("long").Long; - format?: number; - chunk?: number; - }; - applySnapshotChunk?: { - index?: number; - chunk?: Uint8Array; - sender?: string; - }; - }): _134.Request; - }; - RequestEcho: { - encode(message: _134.RequestEcho, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.RequestEcho; - fromPartial(object: { - message?: string; - }): _134.RequestEcho; - }; - RequestFlush: { - encode(_: _134.RequestFlush, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.RequestFlush; - fromPartial(_: {}): _134.RequestFlush; - }; - RequestInfo: { - encode(message: _134.RequestInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.RequestInfo; - fromPartial(object: { - version?: string; - blockVersion?: string | number | import("long").Long; - p2pVersion?: string | number | import("long").Long; - }): _134.RequestInfo; - }; - RequestSetOption: { - encode(message: _134.RequestSetOption, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.RequestSetOption; - fromPartial(object: { - key?: string; - value?: string; - }): _134.RequestSetOption; - }; - RequestInitChain: { - encode(message: _134.RequestInitChain, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.RequestInitChain; - fromPartial(object: { - time?: Date; - chainId?: string; - consensusParams?: { - block?: { - maxBytes?: string | number | import("long").Long; - maxGas?: string | number | import("long").Long; - }; - evidence?: { - maxAgeNumBlocks?: string | number | import("long").Long; - maxAgeDuration?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - maxBytes?: string | number | import("long").Long; - }; - validator?: { - pubKeyTypes?: string[]; - }; - version?: { - appVersion?: string | number | import("long").Long; - }; - }; - validators?: { - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - power?: string | number | import("long").Long; - }[]; - appStateBytes?: Uint8Array; - initialHeight?: string | number | import("long").Long; - }): _134.RequestInitChain; - }; - RequestQuery: { - encode(message: _134.RequestQuery, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.RequestQuery; - fromPartial(object: { - data?: Uint8Array; - path?: string; - height?: string | number | import("long").Long; - prove?: boolean; - }): _134.RequestQuery; - }; - RequestBeginBlock: { - encode(message: _134.RequestBeginBlock, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.RequestBeginBlock; - fromPartial(object: { - hash?: Uint8Array; - header?: { - version?: { - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }; - chainId?: string; - height?: string | number | import("long").Long; - time?: Date; - lastBlockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - lastCommitHash?: Uint8Array; - dataHash?: Uint8Array; - validatorsHash?: Uint8Array; - nextValidatorsHash?: Uint8Array; - consensusHash?: Uint8Array; - appHash?: Uint8Array; - lastResultsHash?: Uint8Array; - evidenceHash?: Uint8Array; - proposerAddress?: Uint8Array; - }; - lastCommitInfo?: { - round?: number; - votes?: { - validator?: { - address?: Uint8Array; - power?: string | number | import("long").Long; - }; - signedLastBlock?: boolean; - }[]; - }; - byzantineValidators?: { - type?: _134.EvidenceType; - validator?: { - address?: Uint8Array; - power?: string | number | import("long").Long; - }; - height?: string | number | import("long").Long; - time?: Date; - totalVotingPower?: string | number | import("long").Long; - }[]; - }): _134.RequestBeginBlock; - }; - RequestCheckTx: { - encode(message: _134.RequestCheckTx, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.RequestCheckTx; - fromPartial(object: { - tx?: Uint8Array; - type?: _134.CheckTxType; - }): _134.RequestCheckTx; - }; - RequestDeliverTx: { - encode(message: _134.RequestDeliverTx, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.RequestDeliverTx; - fromPartial(object: { - tx?: Uint8Array; - }): _134.RequestDeliverTx; - }; - RequestEndBlock: { - encode(message: _134.RequestEndBlock, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.RequestEndBlock; - fromPartial(object: { - height?: string | number | import("long").Long; - }): _134.RequestEndBlock; - }; - RequestCommit: { - encode(_: _134.RequestCommit, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.RequestCommit; - fromPartial(_: {}): _134.RequestCommit; - }; - RequestListSnapshots: { - encode(_: _134.RequestListSnapshots, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.RequestListSnapshots; - fromPartial(_: {}): _134.RequestListSnapshots; - }; - RequestOfferSnapshot: { - encode(message: _134.RequestOfferSnapshot, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.RequestOfferSnapshot; - fromPartial(object: { - snapshot?: { - height?: string | number | import("long").Long; - format?: number; - chunks?: number; - hash?: Uint8Array; - metadata?: Uint8Array; - }; - appHash?: Uint8Array; - }): _134.RequestOfferSnapshot; - }; - RequestLoadSnapshotChunk: { - encode(message: _134.RequestLoadSnapshotChunk, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.RequestLoadSnapshotChunk; - fromPartial(object: { - height?: string | number | import("long").Long; - format?: number; - chunk?: number; - }): _134.RequestLoadSnapshotChunk; - }; - RequestApplySnapshotChunk: { - encode(message: _134.RequestApplySnapshotChunk, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.RequestApplySnapshotChunk; - fromPartial(object: { - index?: number; - chunk?: Uint8Array; - sender?: string; - }): _134.RequestApplySnapshotChunk; - }; - Response: { - encode(message: _134.Response, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.Response; - fromPartial(object: { - exception?: { - error?: string; - }; - echo?: { - message?: string; - }; - flush?: {}; - info?: { - data?: string; - version?: string; - appVersion?: string | number | import("long").Long; - lastBlockHeight?: string | number | import("long").Long; - lastBlockAppHash?: Uint8Array; - }; - setOption?: { - code?: number; - log?: string; - info?: string; - }; - initChain?: { - consensusParams?: { - block?: { - maxBytes?: string | number | import("long").Long; - maxGas?: string | number | import("long").Long; - }; - evidence?: { - maxAgeNumBlocks?: string | number | import("long").Long; - maxAgeDuration?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - maxBytes?: string | number | import("long").Long; - }; - validator?: { - pubKeyTypes?: string[]; - }; - version?: { - appVersion?: string | number | import("long").Long; - }; - }; - validators?: { - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - power?: string | number | import("long").Long; - }[]; - appHash?: Uint8Array; - }; - query?: { - code?: number; - log?: string; - info?: string; - index?: string | number | import("long").Long; - key?: Uint8Array; - value?: Uint8Array; - proofOps?: { - ops?: { - type?: string; - key?: Uint8Array; - data?: Uint8Array; - }[]; - }; - height?: string | number | import("long").Long; - codespace?: string; - }; - beginBlock?: { - events?: { - type?: string; - attributes?: { - key?: Uint8Array; - value?: Uint8Array; - index?: boolean; - }[]; - }[]; - }; - checkTx?: { - code?: number; - data?: Uint8Array; - log?: string; - info?: string; - gasWanted?: string | number | import("long").Long; - gasUsed?: string | number | import("long").Long; - events?: { - type?: string; - attributes?: { - key?: Uint8Array; - value?: Uint8Array; - index?: boolean; - }[]; - }[]; - codespace?: string; - }; - deliverTx?: { - code?: number; - data?: Uint8Array; - log?: string; - info?: string; - gasWanted?: string | number | import("long").Long; - gasUsed?: string | number | import("long").Long; - events?: { - type?: string; - attributes?: { - key?: Uint8Array; - value?: Uint8Array; - index?: boolean; - }[]; - }[]; - codespace?: string; - }; - endBlock?: { - validatorUpdates?: { - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - power?: string | number | import("long").Long; - }[]; - consensusParamUpdates?: { - block?: { - maxBytes?: string | number | import("long").Long; - maxGas?: string | number | import("long").Long; - }; - evidence?: { - maxAgeNumBlocks?: string | number | import("long").Long; - maxAgeDuration?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - maxBytes?: string | number | import("long").Long; - }; - validator?: { - pubKeyTypes?: string[]; - }; - version?: { - appVersion?: string | number | import("long").Long; - }; - }; - events?: { - type?: string; - attributes?: { - key?: Uint8Array; - value?: Uint8Array; - index?: boolean; - }[]; - }[]; - }; - commit?: { - data?: Uint8Array; - retainHeight?: string | number | import("long").Long; - }; - listSnapshots?: { - snapshots?: { - height?: string | number | import("long").Long; - format?: number; - chunks?: number; - hash?: Uint8Array; - metadata?: Uint8Array; - }[]; - }; - offerSnapshot?: { - result?: _134.ResponseOfferSnapshot_Result; - }; - loadSnapshotChunk?: { - chunk?: Uint8Array; - }; - applySnapshotChunk?: { - result?: _134.ResponseApplySnapshotChunk_Result; - refetchChunks?: number[]; - rejectSenders?: string[]; - }; - }): _134.Response; - }; - ResponseException: { - encode(message: _134.ResponseException, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.ResponseException; - fromPartial(object: { - error?: string; - }): _134.ResponseException; - }; - ResponseEcho: { - encode(message: _134.ResponseEcho, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.ResponseEcho; - fromPartial(object: { - message?: string; - }): _134.ResponseEcho; - }; - ResponseFlush: { - encode(_: _134.ResponseFlush, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.ResponseFlush; - fromPartial(_: {}): _134.ResponseFlush; - }; - ResponseInfo: { - encode(message: _134.ResponseInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.ResponseInfo; - fromPartial(object: { - data?: string; - version?: string; - appVersion?: string | number | import("long").Long; - lastBlockHeight?: string | number | import("long").Long; - lastBlockAppHash?: Uint8Array; - }): _134.ResponseInfo; - }; - ResponseSetOption: { - encode(message: _134.ResponseSetOption, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.ResponseSetOption; - fromPartial(object: { - code?: number; - log?: string; - info?: string; - }): _134.ResponseSetOption; - }; - ResponseInitChain: { - encode(message: _134.ResponseInitChain, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.ResponseInitChain; - fromPartial(object: { - consensusParams?: { - block?: { - maxBytes?: string | number | import("long").Long; - maxGas?: string | number | import("long").Long; - }; - evidence?: { - maxAgeNumBlocks?: string | number | import("long").Long; - maxAgeDuration?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - maxBytes?: string | number | import("long").Long; - }; - validator?: { - pubKeyTypes?: string[]; - }; - version?: { - appVersion?: string | number | import("long").Long; - }; - }; - validators?: { - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - power?: string | number | import("long").Long; - }[]; - appHash?: Uint8Array; - }): _134.ResponseInitChain; - }; - ResponseQuery: { - encode(message: _134.ResponseQuery, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.ResponseQuery; - fromPartial(object: { - code?: number; - log?: string; - info?: string; - index?: string | number | import("long").Long; - key?: Uint8Array; - value?: Uint8Array; - proofOps?: { - ops?: { - type?: string; - key?: Uint8Array; - data?: Uint8Array; - }[]; - }; - height?: string | number | import("long").Long; - codespace?: string; - }): _134.ResponseQuery; - }; - ResponseBeginBlock: { - encode(message: _134.ResponseBeginBlock, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.ResponseBeginBlock; - fromPartial(object: { - events?: { - type?: string; - attributes?: { - key?: Uint8Array; - value?: Uint8Array; - index?: boolean; - }[]; - }[]; - }): _134.ResponseBeginBlock; - }; - ResponseCheckTx: { - encode(message: _134.ResponseCheckTx, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.ResponseCheckTx; - fromPartial(object: { - code?: number; - data?: Uint8Array; - log?: string; - info?: string; - gasWanted?: string | number | import("long").Long; - gasUsed?: string | number | import("long").Long; - events?: { - type?: string; - attributes?: { - key?: Uint8Array; - value?: Uint8Array; - index?: boolean; - }[]; - }[]; - codespace?: string; - }): _134.ResponseCheckTx; - }; - ResponseDeliverTx: { - encode(message: _134.ResponseDeliverTx, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.ResponseDeliverTx; - fromPartial(object: { - code?: number; - data?: Uint8Array; - log?: string; - info?: string; - gasWanted?: string | number | import("long").Long; - gasUsed?: string | number | import("long").Long; - events?: { - type?: string; - attributes?: { - key?: Uint8Array; - value?: Uint8Array; - index?: boolean; - }[]; - }[]; - codespace?: string; - }): _134.ResponseDeliverTx; - }; - ResponseEndBlock: { - encode(message: _134.ResponseEndBlock, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.ResponseEndBlock; - fromPartial(object: { - validatorUpdates?: { - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - power?: string | number | import("long").Long; - }[]; - consensusParamUpdates?: { - block?: { - maxBytes?: string | number | import("long").Long; - maxGas?: string | number | import("long").Long; - }; - evidence?: { - maxAgeNumBlocks?: string | number | import("long").Long; - maxAgeDuration?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - maxBytes?: string | number | import("long").Long; - }; - validator?: { - pubKeyTypes?: string[]; - }; - version?: { - appVersion?: string | number | import("long").Long; - }; - }; - events?: { - type?: string; - attributes?: { - key?: Uint8Array; - value?: Uint8Array; - index?: boolean; - }[]; - }[]; - }): _134.ResponseEndBlock; - }; - ResponseCommit: { - encode(message: _134.ResponseCommit, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.ResponseCommit; - fromPartial(object: { - data?: Uint8Array; - retainHeight?: string | number | import("long").Long; - }): _134.ResponseCommit; - }; - ResponseListSnapshots: { - encode(message: _134.ResponseListSnapshots, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.ResponseListSnapshots; - fromPartial(object: { - snapshots?: { - height?: string | number | import("long").Long; - format?: number; - chunks?: number; - hash?: Uint8Array; - metadata?: Uint8Array; - }[]; - }): _134.ResponseListSnapshots; - }; - ResponseOfferSnapshot: { - encode(message: _134.ResponseOfferSnapshot, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.ResponseOfferSnapshot; - fromPartial(object: { - result?: _134.ResponseOfferSnapshot_Result; - }): _134.ResponseOfferSnapshot; - }; - ResponseLoadSnapshotChunk: { - encode(message: _134.ResponseLoadSnapshotChunk, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.ResponseLoadSnapshotChunk; - fromPartial(object: { - chunk?: Uint8Array; - }): _134.ResponseLoadSnapshotChunk; - }; - ResponseApplySnapshotChunk: { - encode(message: _134.ResponseApplySnapshotChunk, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.ResponseApplySnapshotChunk; - fromPartial(object: { - result?: _134.ResponseApplySnapshotChunk_Result; - refetchChunks?: number[]; - rejectSenders?: string[]; - }): _134.ResponseApplySnapshotChunk; - }; - ConsensusParams: { - encode(message: _134.ConsensusParams, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.ConsensusParams; - fromPartial(object: { - block?: { - maxBytes?: string | number | import("long").Long; - maxGas?: string | number | import("long").Long; - }; - evidence?: { - maxAgeNumBlocks?: string | number | import("long").Long; - maxAgeDuration?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - maxBytes?: string | number | import("long").Long; - }; - validator?: { - pubKeyTypes?: string[]; - }; - version?: { - appVersion?: string | number | import("long").Long; - }; - }): _134.ConsensusParams; - }; - BlockParams: { - encode(message: _134.BlockParams, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.BlockParams; - fromPartial(object: { - maxBytes?: string | number | import("long").Long; - maxGas?: string | number | import("long").Long; - }): _134.BlockParams; - }; - LastCommitInfo: { - encode(message: _134.LastCommitInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.LastCommitInfo; - fromPartial(object: { - round?: number; - votes?: { - validator?: { - address?: Uint8Array; - power?: string | number | import("long").Long; - }; - signedLastBlock?: boolean; - }[]; - }): _134.LastCommitInfo; - }; - Event: { - encode(message: _134.Event, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.Event; - fromPartial(object: { - type?: string; - attributes?: { - key?: Uint8Array; - value?: Uint8Array; - index?: boolean; - }[]; - }): _134.Event; - }; - EventAttribute: { - encode(message: _134.EventAttribute, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.EventAttribute; - fromPartial(object: { - key?: Uint8Array; - value?: Uint8Array; - index?: boolean; - }): _134.EventAttribute; - }; - TxResult: { - encode(message: _134.TxResult, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.TxResult; - fromPartial(object: { - height?: string | number | import("long").Long; - index?: number; - tx?: Uint8Array; - result?: { - code?: number; - data?: Uint8Array; - log?: string; - info?: string; - gasWanted?: string | number | import("long").Long; - gasUsed?: string | number | import("long").Long; - events?: { - type?: string; - attributes?: { - key?: Uint8Array; - value?: Uint8Array; - index?: boolean; - }[]; - }[]; - codespace?: string; - }; - }): _134.TxResult; - }; - Validator: { - encode(message: _134.Validator, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.Validator; - fromPartial(object: { - address?: Uint8Array; - power?: string | number | import("long").Long; - }): _134.Validator; - }; - ValidatorUpdate: { - encode(message: _134.ValidatorUpdate, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.ValidatorUpdate; - fromPartial(object: { - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - power?: string | number | import("long").Long; - }): _134.ValidatorUpdate; - }; - VoteInfo: { - encode(message: _134.VoteInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.VoteInfo; - fromPartial(object: { - validator?: { - address?: Uint8Array; - power?: string | number | import("long").Long; - }; - signedLastBlock?: boolean; - }): _134.VoteInfo; - }; - Evidence: { - encode(message: _134.Evidence, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.Evidence; - fromPartial(object: { - type?: _134.EvidenceType; - validator?: { - address?: Uint8Array; - power?: string | number | import("long").Long; - }; - height?: string | number | import("long").Long; - time?: Date; - totalVotingPower?: string | number | import("long").Long; - }): _134.Evidence; - }; - Snapshot: { - encode(message: _134.Snapshot, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _134.Snapshot; - fromPartial(object: { - height?: string | number | import("long").Long; - format?: number; - chunks?: number; - hash?: Uint8Array; - metadata?: Uint8Array; - }): _134.Snapshot; - }; - }; - const crypto: { - Proof: { - encode(message: _136.Proof, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _136.Proof; - fromPartial(object: { - total?: string | number | import("long").Long; - index?: string | number | import("long").Long; - leafHash?: Uint8Array; - aunts?: Uint8Array[]; - }): _136.Proof; - }; - ValueOp: { - encode(message: _136.ValueOp, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _136.ValueOp; - fromPartial(object: { - key?: Uint8Array; - proof?: { - total?: string | number | import("long").Long; - index?: string | number | import("long").Long; - leafHash?: Uint8Array; - aunts?: Uint8Array[]; - }; - }): _136.ValueOp; - }; - DominoOp: { - encode(message: _136.DominoOp, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _136.DominoOp; - fromPartial(object: { - key?: string; - input?: string; - output?: string; - }): _136.DominoOp; - }; - ProofOp: { - encode(message: _136.ProofOp, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _136.ProofOp; - fromPartial(object: { - type?: string; - key?: Uint8Array; - data?: Uint8Array; - }): _136.ProofOp; - }; - ProofOps: { - encode(message: _136.ProofOps, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _136.ProofOps; - fromPartial(object: { - ops?: { - type?: string; - key?: Uint8Array; - data?: Uint8Array; - }[]; - }): _136.ProofOps; - }; - PublicKey: { - encode(message: _135.PublicKey, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _135.PublicKey; - fromPartial(object: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }): _135.PublicKey; - }; - }; - namespace libs { - const bits: { - BitArray: { - encode(message: _137.BitArray, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _137.BitArray; - fromPartial(object: { - bits?: string | number | import("long").Long; - elems?: (string | number | import("long").Long)[]; - }): _137.BitArray; - }; - }; - } - const p2p: { - ProtocolVersion: { - encode(message: _138.ProtocolVersion, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _138.ProtocolVersion; - fromPartial(object: { - p2p?: string | number | import("long").Long; - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }): _138.ProtocolVersion; - }; - NodeInfo: { - encode(message: _138.NodeInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _138.NodeInfo; - fromPartial(object: { - protocolVersion?: { - p2p?: string | number | import("long").Long; - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }; - nodeId?: string; - listenAddr?: string; - network?: string; - version?: string; - channels?: Uint8Array; - moniker?: string; - other?: { - txIndex?: string; - rpcAddress?: string; - }; - }): _138.NodeInfo; - }; - NodeInfoOther: { - encode(message: _138.NodeInfoOther, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _138.NodeInfoOther; - fromPartial(object: { - txIndex?: string; - rpcAddress?: string; - }): _138.NodeInfoOther; - }; - PeerInfo: { - encode(message: _138.PeerInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _138.PeerInfo; - fromPartial(object: { - id?: string; - addressInfo?: { - address?: string; - lastDialSuccess?: Date; - lastDialFailure?: Date; - dialFailures?: number; - }[]; - lastConnected?: Date; - }): _138.PeerInfo; - }; - PeerAddressInfo: { - encode(message: _138.PeerAddressInfo, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _138.PeerAddressInfo; - fromPartial(object: { - address?: string; - lastDialSuccess?: Date; - lastDialFailure?: Date; - dialFailures?: number; - }): _138.PeerAddressInfo; - }; - }; - const types: { - ValidatorSet: { - encode(message: _143.ValidatorSet, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _143.ValidatorSet; - fromPartial(object: { - validators?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }[]; - proposer?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }; - totalVotingPower?: string | number | import("long").Long; - }): _143.ValidatorSet; - }; - Validator: { - encode(message: _143.Validator, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _143.Validator; - fromPartial(object: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }): _143.Validator; - }; - SimpleValidator: { - encode(message: _143.SimpleValidator, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _143.SimpleValidator; - fromPartial(object: { - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - }): _143.SimpleValidator; - }; - blockIDFlagFromJSON(object: any): _142.BlockIDFlag; - blockIDFlagToJSON(object: _142.BlockIDFlag): string; - signedMsgTypeFromJSON(object: any): _142.SignedMsgType; - signedMsgTypeToJSON(object: _142.SignedMsgType): string; - BlockIDFlag: typeof _142.BlockIDFlag; - BlockIDFlagSDKType: typeof _142.BlockIDFlag; - SignedMsgType: typeof _142.SignedMsgType; - SignedMsgTypeSDKType: typeof _142.SignedMsgType; - PartSetHeader: { - encode(message: _142.PartSetHeader, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _142.PartSetHeader; - fromPartial(object: { - total?: number; - hash?: Uint8Array; - }): _142.PartSetHeader; - }; - Part: { - encode(message: _142.Part, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _142.Part; - fromPartial(object: { - index?: number; - bytes?: Uint8Array; - proof?: { - total?: string | number | import("long").Long; - index?: string | number | import("long").Long; - leafHash?: Uint8Array; - aunts?: Uint8Array[]; - }; - }): _142.Part; - }; - BlockID: { - encode(message: _142.BlockID, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _142.BlockID; - fromPartial(object: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }): _142.BlockID; - }; - Header: { - encode(message: _142.Header, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _142.Header; - fromPartial(object: { - version?: { - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }; - chainId?: string; - height?: string | number | import("long").Long; - time?: Date; - lastBlockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - lastCommitHash?: Uint8Array; - dataHash?: Uint8Array; - validatorsHash?: Uint8Array; - nextValidatorsHash?: Uint8Array; - consensusHash?: Uint8Array; - appHash?: Uint8Array; - lastResultsHash?: Uint8Array; - evidenceHash?: Uint8Array; - proposerAddress?: Uint8Array; - }): _142.Header; - }; - Data: { - encode(message: _142.Data, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _142.Data; - fromPartial(object: { - txs?: Uint8Array[]; - }): _142.Data; - }; - Vote: { - encode(message: _142.Vote, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _142.Vote; - fromPartial(object: { - type?: _142.SignedMsgType; - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - timestamp?: Date; - validatorAddress?: Uint8Array; - validatorIndex?: number; - signature?: Uint8Array; - }): _142.Vote; - }; - Commit: { - encode(message: _142.Commit, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _142.Commit; - fromPartial(object: { - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - signatures?: { - blockIdFlag?: _142.BlockIDFlag; - validatorAddress?: Uint8Array; - timestamp?: Date; - signature?: Uint8Array; - }[]; - }): _142.Commit; - }; - CommitSig: { - encode(message: _142.CommitSig, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _142.CommitSig; - fromPartial(object: { - blockIdFlag?: _142.BlockIDFlag; - validatorAddress?: Uint8Array; - timestamp?: Date; - signature?: Uint8Array; - }): _142.CommitSig; - }; - Proposal: { - encode(message: _142.Proposal, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _142.Proposal; - fromPartial(object: { - type?: _142.SignedMsgType; - height?: string | number | import("long").Long; - round?: number; - polRound?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - timestamp?: Date; - signature?: Uint8Array; - }): _142.Proposal; - }; - SignedHeader: { - encode(message: _142.SignedHeader, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _142.SignedHeader; - fromPartial(object: { - header?: { - version?: { - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }; - chainId?: string; - height?: string | number | import("long").Long; - time?: Date; - lastBlockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - lastCommitHash?: Uint8Array; - dataHash?: Uint8Array; - validatorsHash?: Uint8Array; - nextValidatorsHash?: Uint8Array; - consensusHash?: Uint8Array; - appHash?: Uint8Array; - lastResultsHash?: Uint8Array; - evidenceHash?: Uint8Array; - proposerAddress?: Uint8Array; - }; - commit?: { - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - signatures?: { - blockIdFlag?: _142.BlockIDFlag; - validatorAddress?: Uint8Array; - timestamp?: Date; - signature?: Uint8Array; - }[]; - }; - }): _142.SignedHeader; - }; - LightBlock: { - encode(message: _142.LightBlock, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _142.LightBlock; - fromPartial(object: { - signedHeader?: { - header?: { - version?: { - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }; - chainId?: string; - height?: string | number | import("long").Long; - time?: Date; - lastBlockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - lastCommitHash?: Uint8Array; - dataHash?: Uint8Array; - validatorsHash?: Uint8Array; - nextValidatorsHash?: Uint8Array; - consensusHash?: Uint8Array; - appHash?: Uint8Array; - lastResultsHash?: Uint8Array; - evidenceHash?: Uint8Array; - proposerAddress?: Uint8Array; - }; - commit?: { - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - signatures?: { - blockIdFlag?: _142.BlockIDFlag; - validatorAddress?: Uint8Array; - timestamp?: Date; - signature?: Uint8Array; - }[]; - }; - }; - validatorSet?: { - validators?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }[]; - proposer?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }; - totalVotingPower?: string | number | import("long").Long; - }; - }): _142.LightBlock; - }; - BlockMeta: { - encode(message: _142.BlockMeta, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _142.BlockMeta; - fromPartial(object: { - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - blockSize?: string | number | import("long").Long; - header?: { - version?: { - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }; - chainId?: string; - height?: string | number | import("long").Long; - time?: Date; - lastBlockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - lastCommitHash?: Uint8Array; - dataHash?: Uint8Array; - validatorsHash?: Uint8Array; - nextValidatorsHash?: Uint8Array; - consensusHash?: Uint8Array; - appHash?: Uint8Array; - lastResultsHash?: Uint8Array; - evidenceHash?: Uint8Array; - proposerAddress?: Uint8Array; - }; - numTxs?: string | number | import("long").Long; - }): _142.BlockMeta; - }; - TxProof: { - encode(message: _142.TxProof, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _142.TxProof; - fromPartial(object: { - rootHash?: Uint8Array; - data?: Uint8Array; - proof?: { - total?: string | number | import("long").Long; - index?: string | number | import("long").Long; - leafHash?: Uint8Array; - aunts?: Uint8Array[]; - }; - }): _142.TxProof; - }; - ConsensusParams: { - encode(message: _141.ConsensusParams, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _141.ConsensusParams; - fromPartial(object: { - block?: { - maxBytes?: string | number | import("long").Long; - maxGas?: string | number | import("long").Long; - timeIotaMs?: string | number | import("long").Long; - }; - evidence?: { - maxAgeNumBlocks?: string | number | import("long").Long; - maxAgeDuration?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - maxBytes?: string | number | import("long").Long; - }; - validator?: { - pubKeyTypes?: string[]; - }; - version?: { - appVersion?: string | number | import("long").Long; - }; - }): _141.ConsensusParams; - }; - BlockParams: { - encode(message: _141.BlockParams, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _141.BlockParams; - fromPartial(object: { - maxBytes?: string | number | import("long").Long; - maxGas?: string | number | import("long").Long; - timeIotaMs?: string | number | import("long").Long; - }): _141.BlockParams; - }; - EvidenceParams: { - encode(message: _141.EvidenceParams, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _141.EvidenceParams; - fromPartial(object: { - maxAgeNumBlocks?: string | number | import("long").Long; - maxAgeDuration?: { - seconds?: string | number | import("long").Long; - nanos?: number; - }; - maxBytes?: string | number | import("long").Long; - }): _141.EvidenceParams; - }; - ValidatorParams: { - encode(message: _141.ValidatorParams, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _141.ValidatorParams; - fromPartial(object: { - pubKeyTypes?: string[]; - }): _141.ValidatorParams; - }; - VersionParams: { - encode(message: _141.VersionParams, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _141.VersionParams; - fromPartial(object: { - appVersion?: string | number | import("long").Long; - }): _141.VersionParams; - }; - HashedParams: { - encode(message: _141.HashedParams, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _141.HashedParams; - fromPartial(object: { - blockMaxBytes?: string | number | import("long").Long; - blockMaxGas?: string | number | import("long").Long; - }): _141.HashedParams; - }; - Evidence: { - encode(message: _140.Evidence, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _140.Evidence; - fromPartial(object: { - duplicateVoteEvidence?: { - voteA?: { - type?: _142.SignedMsgType; - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - timestamp?: Date; - validatorAddress?: Uint8Array; - validatorIndex?: number; - signature?: Uint8Array; - }; - voteB?: { - type?: _142.SignedMsgType; - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - timestamp?: Date; - validatorAddress?: Uint8Array; - validatorIndex?: number; - signature?: Uint8Array; - }; - totalVotingPower?: string | number | import("long").Long; - validatorPower?: string | number | import("long").Long; - timestamp?: Date; - }; - lightClientAttackEvidence?: { - conflictingBlock?: { - signedHeader?: { - header?: { - version?: { - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }; - chainId?: string; - height?: string | number | import("long").Long; - time?: Date; - lastBlockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - lastCommitHash?: Uint8Array; - dataHash?: Uint8Array; - validatorsHash?: Uint8Array; - nextValidatorsHash?: Uint8Array; - consensusHash?: Uint8Array; - appHash?: Uint8Array; - lastResultsHash?: Uint8Array; - evidenceHash?: Uint8Array; - proposerAddress?: Uint8Array; - }; - commit?: { - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - signatures?: { - blockIdFlag?: _142.BlockIDFlag; - validatorAddress?: Uint8Array; - timestamp?: Date; - signature?: Uint8Array; - }[]; - }; - }; - validatorSet?: { - validators?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }[]; - proposer?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }; - totalVotingPower?: string | number | import("long").Long; - }; - }; - commonHeight?: string | number | import("long").Long; - byzantineValidators?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }[]; - totalVotingPower?: string | number | import("long").Long; - timestamp?: Date; - }; - }): _140.Evidence; - }; - DuplicateVoteEvidence: { - encode(message: _140.DuplicateVoteEvidence, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _140.DuplicateVoteEvidence; - fromPartial(object: { - voteA?: { - type?: _142.SignedMsgType; - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - timestamp?: Date; - validatorAddress?: Uint8Array; - validatorIndex?: number; - signature?: Uint8Array; - }; - voteB?: { - type?: _142.SignedMsgType; - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - timestamp?: Date; - validatorAddress?: Uint8Array; - validatorIndex?: number; - signature?: Uint8Array; - }; - totalVotingPower?: string | number | import("long").Long; - validatorPower?: string | number | import("long").Long; - timestamp?: Date; - }): _140.DuplicateVoteEvidence; - }; - LightClientAttackEvidence: { - encode(message: _140.LightClientAttackEvidence, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _140.LightClientAttackEvidence; - fromPartial(object: { - conflictingBlock?: { - signedHeader?: { - header?: { - version?: { - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }; - chainId?: string; - height?: string | number | import("long").Long; - time?: Date; - lastBlockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - lastCommitHash?: Uint8Array; - dataHash?: Uint8Array; - validatorsHash?: Uint8Array; - nextValidatorsHash?: Uint8Array; - consensusHash?: Uint8Array; - appHash?: Uint8Array; - lastResultsHash?: Uint8Array; - evidenceHash?: Uint8Array; - proposerAddress?: Uint8Array; - }; - commit?: { - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - signatures?: { - blockIdFlag?: _142.BlockIDFlag; - validatorAddress?: Uint8Array; - timestamp?: Date; - signature?: Uint8Array; - }[]; - }; - }; - validatorSet?: { - validators?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }[]; - proposer?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }; - totalVotingPower?: string | number | import("long").Long; - }; - }; - commonHeight?: string | number | import("long").Long; - byzantineValidators?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }[]; - totalVotingPower?: string | number | import("long").Long; - timestamp?: Date; - }): _140.LightClientAttackEvidence; - }; - EvidenceList: { - encode(message: _140.EvidenceList, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _140.EvidenceList; - fromPartial(object: { - evidence?: { - duplicateVoteEvidence?: { - voteA?: { - type?: _142.SignedMsgType; - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - timestamp?: Date; - validatorAddress?: Uint8Array; - validatorIndex?: number; - signature?: Uint8Array; - }; - voteB?: { - type?: _142.SignedMsgType; - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - timestamp?: Date; - validatorAddress?: Uint8Array; - validatorIndex?: number; - signature?: Uint8Array; - }; - totalVotingPower?: string | number | import("long").Long; - validatorPower?: string | number | import("long").Long; - timestamp?: Date; - }; - lightClientAttackEvidence?: { - conflictingBlock?: { - signedHeader?: { - header?: { - version?: { - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }; - chainId?: string; - height?: string | number | import("long").Long; - time?: Date; - lastBlockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - lastCommitHash?: Uint8Array; - dataHash?: Uint8Array; - validatorsHash?: Uint8Array; - nextValidatorsHash?: Uint8Array; - consensusHash?: Uint8Array; - appHash?: Uint8Array; - lastResultsHash?: Uint8Array; - evidenceHash?: Uint8Array; - proposerAddress?: Uint8Array; - }; - commit?: { - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - signatures?: { - blockIdFlag?: _142.BlockIDFlag; - validatorAddress?: Uint8Array; - timestamp?: Date; - signature?: Uint8Array; - }[]; - }; - }; - validatorSet?: { - validators?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }[]; - proposer?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }; - totalVotingPower?: string | number | import("long").Long; - }; - }; - commonHeight?: string | number | import("long").Long; - byzantineValidators?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }[]; - totalVotingPower?: string | number | import("long").Long; - timestamp?: Date; - }; - }[]; - }): _140.EvidenceList; - }; - Block: { - encode(message: _139.Block, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _139.Block; - fromPartial(object: { - header?: { - version?: { - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }; - chainId?: string; - height?: string | number | import("long").Long; - time?: Date; - lastBlockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - lastCommitHash?: Uint8Array; - dataHash?: Uint8Array; - validatorsHash?: Uint8Array; - nextValidatorsHash?: Uint8Array; - consensusHash?: Uint8Array; - appHash?: Uint8Array; - lastResultsHash?: Uint8Array; - evidenceHash?: Uint8Array; - proposerAddress?: Uint8Array; - }; - data?: { - txs?: Uint8Array[]; - }; - evidence?: { - evidence?: { - duplicateVoteEvidence?: { - voteA?: { - type?: _142.SignedMsgType; - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - timestamp?: Date; - validatorAddress?: Uint8Array; - validatorIndex?: number; - signature?: Uint8Array; - }; - voteB?: { - type?: _142.SignedMsgType; - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - timestamp?: Date; - validatorAddress?: Uint8Array; - validatorIndex?: number; - signature?: Uint8Array; - }; - totalVotingPower?: string | number | import("long").Long; - validatorPower?: string | number | import("long").Long; - timestamp?: Date; - }; - lightClientAttackEvidence?: { - conflictingBlock?: { - signedHeader?: { - header?: { - version?: { - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }; - chainId?: string; - height?: string | number | import("long").Long; - time?: Date; - lastBlockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - lastCommitHash?: Uint8Array; - dataHash?: Uint8Array; - validatorsHash?: Uint8Array; - nextValidatorsHash?: Uint8Array; - consensusHash?: Uint8Array; - appHash?: Uint8Array; - lastResultsHash?: Uint8Array; - evidenceHash?: Uint8Array; - proposerAddress?: Uint8Array; - }; - commit?: { - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - signatures?: { - blockIdFlag?: _142.BlockIDFlag; - validatorAddress?: Uint8Array; - timestamp?: Date; - signature?: Uint8Array; - }[]; - }; - }; - validatorSet?: { - validators?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }[]; - proposer?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }; - totalVotingPower?: string | number | import("long").Long; - }; - }; - commonHeight?: string | number | import("long").Long; - byzantineValidators?: { - address?: Uint8Array; - pubKey?: { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; - }; - votingPower?: string | number | import("long").Long; - proposerPriority?: string | number | import("long").Long; - }[]; - totalVotingPower?: string | number | import("long").Long; - timestamp?: Date; - }; - }[]; - }; - lastCommit?: { - height?: string | number | import("long").Long; - round?: number; - blockId?: { - hash?: Uint8Array; - partSetHeader?: { - total?: number; - hash?: Uint8Array; - }; - }; - signatures?: { - blockIdFlag?: _142.BlockIDFlag; - validatorAddress?: Uint8Array; - timestamp?: Date; - signature?: Uint8Array; - }[]; - }; - }): _139.Block; - }; - }; - const version: { - App: { - encode(message: _144.App, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _144.App; - fromPartial(object: { - protocol?: string | number | import("long").Long; - software?: string; - }): _144.App; - }; - Consensus: { - encode(message: _144.Consensus, writer?: import("protobufjs").Writer): import("protobufjs").Writer; - decode(input: Uint8Array | import("protobufjs").Reader, length?: number): _144.Consensus; - fromPartial(object: { - block?: string | number | import("long").Long; - app?: string | number | import("long").Long; - }): _144.Consensus; - }; - }; -} diff --git a/packages/codegen/dist/tendermint/crypto/keys.d.ts b/packages/codegen/dist/tendermint/crypto/keys.d.ts deleted file mode 100644 index 00a0cb4f..00000000 --- a/packages/codegen/dist/tendermint/crypto/keys.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../helpers"; -/** PublicKey defines the keys available for use with Tendermint Validators */ -export interface PublicKey { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; -} -/** PublicKey defines the keys available for use with Tendermint Validators */ -export interface PublicKeySDKType { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; -} -export declare const PublicKey: { - encode(message: PublicKey, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PublicKey; - fromPartial(object: DeepPartial): PublicKey; -}; diff --git a/packages/codegen/dist/tendermint/crypto/proof.d.ts b/packages/codegen/dist/tendermint/crypto/proof.d.ts deleted file mode 100644 index 44de5a80..00000000 --- a/packages/codegen/dist/tendermint/crypto/proof.d.ts +++ /dev/null @@ -1,88 +0,0 @@ -/// -import { Long, DeepPartial } from "../../helpers"; -import * as _m0 from "protobufjs/minimal"; -export interface Proof { - total: Long; - index: Long; - leafHash: Uint8Array; - aunts: Uint8Array[]; -} -export interface ProofSDKType { - total: Long; - index: Long; - leaf_hash: Uint8Array; - aunts: Uint8Array[]; -} -export interface ValueOp { - /** Encoded in ProofOp.Key. */ - key: Uint8Array; - /** To encode in ProofOp.Data */ - proof?: Proof; -} -export interface ValueOpSDKType { - key: Uint8Array; - proof?: ProofSDKType; -} -export interface DominoOp { - key: string; - input: string; - output: string; -} -export interface DominoOpSDKType { - key: string; - input: string; - output: string; -} -/** - * ProofOp defines an operation used for calculating Merkle root - * The data could be arbitrary format, providing nessecary data - * for example neighbouring node hash - */ -export interface ProofOp { - type: string; - key: Uint8Array; - data: Uint8Array; -} -/** - * ProofOp defines an operation used for calculating Merkle root - * The data could be arbitrary format, providing nessecary data - * for example neighbouring node hash - */ -export interface ProofOpSDKType { - type: string; - key: Uint8Array; - data: Uint8Array; -} -/** ProofOps is Merkle proof defined by the list of ProofOps */ -export interface ProofOps { - ops: ProofOp[]; -} -/** ProofOps is Merkle proof defined by the list of ProofOps */ -export interface ProofOpsSDKType { - ops: ProofOpSDKType[]; -} -export declare const Proof: { - encode(message: Proof, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Proof; - fromPartial(object: DeepPartial): Proof; -}; -export declare const ValueOp: { - encode(message: ValueOp, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ValueOp; - fromPartial(object: DeepPartial): ValueOp; -}; -export declare const DominoOp: { - encode(message: DominoOp, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): DominoOp; - fromPartial(object: DeepPartial): DominoOp; -}; -export declare const ProofOp: { - encode(message: ProofOp, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ProofOp; - fromPartial(object: DeepPartial): ProofOp; -}; -export declare const ProofOps: { - encode(message: ProofOps, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ProofOps; - fromPartial(object: DeepPartial): ProofOps; -}; diff --git a/packages/codegen/dist/tendermint/libs/bits/types.d.ts b/packages/codegen/dist/tendermint/libs/bits/types.d.ts deleted file mode 100644 index 0c0b2c4c..00000000 --- a/packages/codegen/dist/tendermint/libs/bits/types.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -/// -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -export interface BitArray { - bits: Long; - elems: Long[]; -} -export interface BitArraySDKType { - bits: Long; - elems: Long[]; -} -export declare const BitArray: { - encode(message: BitArray, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): BitArray; - fromPartial(object: DeepPartial): BitArray; -}; diff --git a/packages/codegen/dist/tendermint/p2p/types.d.ts b/packages/codegen/dist/tendermint/p2p/types.d.ts deleted file mode 100644 index 542f5dc6..00000000 --- a/packages/codegen/dist/tendermint/p2p/types.d.ts +++ /dev/null @@ -1,88 +0,0 @@ -/// -import { Long, DeepPartial } from "../../helpers"; -import * as _m0 from "protobufjs/minimal"; -export interface ProtocolVersion { - p2p: Long; - block: Long; - app: Long; -} -export interface ProtocolVersionSDKType { - p2p: Long; - block: Long; - app: Long; -} -export interface NodeInfo { - protocolVersion?: ProtocolVersion; - nodeId: string; - listenAddr: string; - network: string; - version: string; - channels: Uint8Array; - moniker: string; - other?: NodeInfoOther; -} -export interface NodeInfoSDKType { - protocol_version?: ProtocolVersionSDKType; - node_id: string; - listen_addr: string; - network: string; - version: string; - channels: Uint8Array; - moniker: string; - other?: NodeInfoOtherSDKType; -} -export interface NodeInfoOther { - txIndex: string; - rpcAddress: string; -} -export interface NodeInfoOtherSDKType { - tx_index: string; - rpc_address: string; -} -export interface PeerInfo { - id: string; - addressInfo: PeerAddressInfo[]; - lastConnected?: Date; -} -export interface PeerInfoSDKType { - id: string; - address_info: PeerAddressInfoSDKType[]; - last_connected?: Date; -} -export interface PeerAddressInfo { - address: string; - lastDialSuccess?: Date; - lastDialFailure?: Date; - dialFailures: number; -} -export interface PeerAddressInfoSDKType { - address: string; - last_dial_success?: Date; - last_dial_failure?: Date; - dial_failures: number; -} -export declare const ProtocolVersion: { - encode(message: ProtocolVersion, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ProtocolVersion; - fromPartial(object: DeepPartial): ProtocolVersion; -}; -export declare const NodeInfo: { - encode(message: NodeInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): NodeInfo; - fromPartial(object: DeepPartial): NodeInfo; -}; -export declare const NodeInfoOther: { - encode(message: NodeInfoOther, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): NodeInfoOther; - fromPartial(object: DeepPartial): NodeInfoOther; -}; -export declare const PeerInfo: { - encode(message: PeerInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PeerInfo; - fromPartial(object: DeepPartial): PeerInfo; -}; -export declare const PeerAddressInfo: { - encode(message: PeerAddressInfo, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PeerAddressInfo; - fromPartial(object: DeepPartial): PeerAddressInfo; -}; diff --git a/packages/codegen/dist/tendermint/types/block.d.ts b/packages/codegen/dist/tendermint/types/block.d.ts deleted file mode 100644 index 68402646..00000000 --- a/packages/codegen/dist/tendermint/types/block.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Header, HeaderSDKType, Data, DataSDKType, Commit, CommitSDKType } from "./types"; -import { EvidenceList, EvidenceListSDKType } from "./evidence"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../helpers"; -export interface Block { - header?: Header; - data?: Data; - evidence?: EvidenceList; - lastCommit?: Commit; -} -export interface BlockSDKType { - header?: HeaderSDKType; - data?: DataSDKType; - evidence?: EvidenceListSDKType; - last_commit?: CommitSDKType; -} -export declare const Block: { - encode(message: Block, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Block; - fromPartial(object: DeepPartial): Block; -}; diff --git a/packages/codegen/dist/tendermint/types/evidence.d.ts b/packages/codegen/dist/tendermint/types/evidence.d.ts deleted file mode 100644 index 461bbc59..00000000 --- a/packages/codegen/dist/tendermint/types/evidence.d.ts +++ /dev/null @@ -1,71 +0,0 @@ -/// -import { Vote, VoteSDKType, LightBlock, LightBlockSDKType } from "./types"; -import { Validator, ValidatorSDKType } from "./validator"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../helpers"; -export interface Evidence { - duplicateVoteEvidence?: DuplicateVoteEvidence; - lightClientAttackEvidence?: LightClientAttackEvidence; -} -export interface EvidenceSDKType { - duplicate_vote_evidence?: DuplicateVoteEvidenceSDKType; - light_client_attack_evidence?: LightClientAttackEvidenceSDKType; -} -/** DuplicateVoteEvidence contains evidence of a validator signed two conflicting votes. */ -export interface DuplicateVoteEvidence { - voteA?: Vote; - voteB?: Vote; - totalVotingPower: Long; - validatorPower: Long; - timestamp?: Date; -} -/** DuplicateVoteEvidence contains evidence of a validator signed two conflicting votes. */ -export interface DuplicateVoteEvidenceSDKType { - vote_a?: VoteSDKType; - vote_b?: VoteSDKType; - total_voting_power: Long; - validator_power: Long; - timestamp?: Date; -} -/** LightClientAttackEvidence contains evidence of a set of validators attempting to mislead a light client. */ -export interface LightClientAttackEvidence { - conflictingBlock?: LightBlock; - commonHeight: Long; - byzantineValidators: Validator[]; - totalVotingPower: Long; - timestamp?: Date; -} -/** LightClientAttackEvidence contains evidence of a set of validators attempting to mislead a light client. */ -export interface LightClientAttackEvidenceSDKType { - conflicting_block?: LightBlockSDKType; - common_height: Long; - byzantine_validators: ValidatorSDKType[]; - total_voting_power: Long; - timestamp?: Date; -} -export interface EvidenceList { - evidence: Evidence[]; -} -export interface EvidenceListSDKType { - evidence: EvidenceSDKType[]; -} -export declare const Evidence: { - encode(message: Evidence, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Evidence; - fromPartial(object: DeepPartial): Evidence; -}; -export declare const DuplicateVoteEvidence: { - encode(message: DuplicateVoteEvidence, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): DuplicateVoteEvidence; - fromPartial(object: DeepPartial): DuplicateVoteEvidence; -}; -export declare const LightClientAttackEvidence: { - encode(message: LightClientAttackEvidence, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): LightClientAttackEvidence; - fromPartial(object: DeepPartial): LightClientAttackEvidence; -}; -export declare const EvidenceList: { - encode(message: EvidenceList, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): EvidenceList; - fromPartial(object: DeepPartial): EvidenceList; -}; diff --git a/packages/codegen/dist/tendermint/types/params.d.ts b/packages/codegen/dist/tendermint/types/params.d.ts deleted file mode 100644 index a6608d49..00000000 --- a/packages/codegen/dist/tendermint/types/params.d.ts +++ /dev/null @@ -1,150 +0,0 @@ -/// -import { Duration, DurationSDKType } from "../../google/protobuf/duration"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../helpers"; -/** - * ConsensusParams contains consensus critical parameters that determine the - * validity of blocks. - */ -export interface ConsensusParams { - block?: BlockParams; - evidence?: EvidenceParams; - validator?: ValidatorParams; - version?: VersionParams; -} -/** - * ConsensusParams contains consensus critical parameters that determine the - * validity of blocks. - */ -export interface ConsensusParamsSDKType { - block?: BlockParamsSDKType; - evidence?: EvidenceParamsSDKType; - validator?: ValidatorParamsSDKType; - version?: VersionParamsSDKType; -} -/** BlockParams contains limits on the block size. */ -export interface BlockParams { - /** - * Max block size, in bytes. - * Note: must be greater than 0 - */ - maxBytes: Long; - /** - * Max gas per block. - * Note: must be greater or equal to -1 - */ - maxGas: Long; - /** - * Minimum time increment between consecutive blocks (in milliseconds) If the - * block header timestamp is ahead of the system clock, decrease this value. - * - * Not exposed to the application. - */ - timeIotaMs: Long; -} -/** BlockParams contains limits on the block size. */ -export interface BlockParamsSDKType { - max_bytes: Long; - max_gas: Long; - time_iota_ms: Long; -} -/** EvidenceParams determine how we handle evidence of malfeasance. */ -export interface EvidenceParams { - /** - * Max age of evidence, in blocks. - * - * The basic formula for calculating this is: MaxAgeDuration / {average block - * time}. - */ - maxAgeNumBlocks: Long; - /** - * 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). - */ - maxAgeDuration?: 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 - */ - maxBytes: Long; -} -/** EvidenceParams determine how we handle evidence of malfeasance. */ -export interface EvidenceParamsSDKType { - max_age_num_blocks: Long; - max_age_duration?: DurationSDKType; - max_bytes: Long; -} -/** - * ValidatorParams restrict the public key types validators can use. - * NOTE: uses ABCI pubkey naming, not Amino names. - */ -export interface ValidatorParams { - pubKeyTypes: string[]; -} -/** - * ValidatorParams restrict the public key types validators can use. - * NOTE: uses ABCI pubkey naming, not Amino names. - */ -export interface ValidatorParamsSDKType { - pub_key_types: string[]; -} -/** VersionParams contains the ABCI application version. */ -export interface VersionParams { - appVersion: Long; -} -/** VersionParams contains the ABCI application version. */ -export interface VersionParamsSDKType { - app_version: Long; -} -/** - * HashedParams is a subset of ConsensusParams. - * - * It is hashed into the Header.ConsensusHash. - */ -export interface HashedParams { - blockMaxBytes: Long; - blockMaxGas: Long; -} -/** - * HashedParams is a subset of ConsensusParams. - * - * It is hashed into the Header.ConsensusHash. - */ -export interface HashedParamsSDKType { - block_max_bytes: Long; - block_max_gas: Long; -} -export declare const ConsensusParams: { - encode(message: ConsensusParams, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ConsensusParams; - fromPartial(object: DeepPartial): ConsensusParams; -}; -export declare const BlockParams: { - encode(message: BlockParams, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): BlockParams; - fromPartial(object: DeepPartial): BlockParams; -}; -export declare const EvidenceParams: { - encode(message: EvidenceParams, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): EvidenceParams; - fromPartial(object: DeepPartial): EvidenceParams; -}; -export declare const ValidatorParams: { - encode(message: ValidatorParams, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorParams; - fromPartial(object: DeepPartial): ValidatorParams; -}; -export declare const VersionParams: { - encode(message: VersionParams, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): VersionParams; - fromPartial(object: DeepPartial): VersionParams; -}; -export declare const HashedParams: { - encode(message: HashedParams, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): HashedParams; - fromPartial(object: DeepPartial): HashedParams; -}; diff --git a/packages/codegen/dist/tendermint/types/types.d.ts b/packages/codegen/dist/tendermint/types/types.d.ts deleted file mode 100644 index e55d4cd4..00000000 --- a/packages/codegen/dist/tendermint/types/types.d.ts +++ /dev/null @@ -1,296 +0,0 @@ -/// -import { Proof, ProofSDKType } from "../crypto/proof"; -import { Consensus, ConsensusSDKType } from "../version/types"; -import { ValidatorSet, ValidatorSetSDKType } from "./validator"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../helpers"; -/** BlockIdFlag indicates which BlcokID the signature is for */ -export declare enum BlockIDFlag { - BLOCK_ID_FLAG_UNKNOWN = 0, - BLOCK_ID_FLAG_ABSENT = 1, - BLOCK_ID_FLAG_COMMIT = 2, - BLOCK_ID_FLAG_NIL = 3, - UNRECOGNIZED = -1 -} -export declare const BlockIDFlagSDKType: typeof BlockIDFlag; -export declare function blockIDFlagFromJSON(object: any): BlockIDFlag; -export declare function blockIDFlagToJSON(object: BlockIDFlag): string; -/** SignedMsgType is a type of signed message in the consensus. */ -export declare enum SignedMsgType { - SIGNED_MSG_TYPE_UNKNOWN = 0, - /** SIGNED_MSG_TYPE_PREVOTE - Votes */ - SIGNED_MSG_TYPE_PREVOTE = 1, - SIGNED_MSG_TYPE_PRECOMMIT = 2, - /** SIGNED_MSG_TYPE_PROPOSAL - Proposals */ - SIGNED_MSG_TYPE_PROPOSAL = 32, - UNRECOGNIZED = -1 -} -export declare const SignedMsgTypeSDKType: typeof SignedMsgType; -export declare function signedMsgTypeFromJSON(object: any): SignedMsgType; -export declare function signedMsgTypeToJSON(object: SignedMsgType): string; -/** PartsetHeader */ -export interface PartSetHeader { - total: number; - hash: Uint8Array; -} -/** PartsetHeader */ -export interface PartSetHeaderSDKType { - total: number; - hash: Uint8Array; -} -export interface Part { - index: number; - bytes: Uint8Array; - proof?: Proof; -} -export interface PartSDKType { - index: number; - bytes: Uint8Array; - proof?: ProofSDKType; -} -/** BlockID */ -export interface BlockID { - hash: Uint8Array; - partSetHeader?: PartSetHeader; -} -/** BlockID */ -export interface BlockIDSDKType { - hash: Uint8Array; - part_set_header?: PartSetHeaderSDKType; -} -/** Header defines the structure of a Tendermint block header. */ -export interface Header { - /** basic block info */ - version?: Consensus; - chainId: string; - height: Long; - time?: Date; - /** prev block info */ - lastBlockId?: BlockID; - /** hashes of block data */ - lastCommitHash: Uint8Array; - dataHash: Uint8Array; - /** hashes from the app output from the prev block */ - validatorsHash: Uint8Array; - /** validators for the next block */ - nextValidatorsHash: Uint8Array; - /** consensus params for current block */ - consensusHash: Uint8Array; - /** state after txs from the previous block */ - appHash: Uint8Array; - lastResultsHash: Uint8Array; - /** consensus info */ - evidenceHash: Uint8Array; - /** original proposer of the block */ - proposerAddress: Uint8Array; -} -/** Header defines the structure of a Tendermint block header. */ -export interface HeaderSDKType { - version?: ConsensusSDKType; - chain_id: string; - height: Long; - time?: Date; - last_block_id?: BlockIDSDKType; - last_commit_hash: Uint8Array; - data_hash: Uint8Array; - validators_hash: Uint8Array; - next_validators_hash: Uint8Array; - consensus_hash: Uint8Array; - app_hash: Uint8Array; - last_results_hash: Uint8Array; - evidence_hash: Uint8Array; - proposer_address: Uint8Array; -} -/** Data contains the set of transactions included in the block */ -export interface 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. - */ - txs: Uint8Array[]; -} -/** Data contains the set of transactions included in the block */ -export interface DataSDKType { - txs: Uint8Array[]; -} -/** - * Vote represents a prevote, precommit, or commit vote from validators for - * consensus. - */ -export interface Vote { - type: SignedMsgType; - height: Long; - round: number; - /** zero if vote is nil. */ - blockId?: BlockID; - timestamp?: Date; - validatorAddress: Uint8Array; - validatorIndex: number; - signature: Uint8Array; -} -/** - * Vote represents a prevote, precommit, or commit vote from validators for - * consensus. - */ -export interface VoteSDKType { - type: SignedMsgType; - height: Long; - round: number; - block_id?: BlockIDSDKType; - timestamp?: Date; - validator_address: Uint8Array; - validator_index: number; - signature: Uint8Array; -} -/** Commit contains the evidence that a block was committed by a set of validators. */ -export interface Commit { - height: Long; - round: number; - blockId?: BlockID; - signatures: CommitSig[]; -} -/** Commit contains the evidence that a block was committed by a set of validators. */ -export interface CommitSDKType { - height: Long; - round: number; - block_id?: BlockIDSDKType; - signatures: CommitSigSDKType[]; -} -/** CommitSig is a part of the Vote included in a Commit. */ -export interface CommitSig { - blockIdFlag: BlockIDFlag; - validatorAddress: Uint8Array; - timestamp?: Date; - signature: Uint8Array; -} -/** CommitSig is a part of the Vote included in a Commit. */ -export interface CommitSigSDKType { - block_id_flag: BlockIDFlag; - validator_address: Uint8Array; - timestamp?: Date; - signature: Uint8Array; -} -export interface Proposal { - type: SignedMsgType; - height: Long; - round: number; - polRound: number; - blockId?: BlockID; - timestamp?: Date; - signature: Uint8Array; -} -export interface ProposalSDKType { - type: SignedMsgType; - height: Long; - round: number; - pol_round: number; - block_id?: BlockIDSDKType; - timestamp?: Date; - signature: Uint8Array; -} -export interface SignedHeader { - header?: Header; - commit?: Commit; -} -export interface SignedHeaderSDKType { - header?: HeaderSDKType; - commit?: CommitSDKType; -} -export interface LightBlock { - signedHeader?: SignedHeader; - validatorSet?: ValidatorSet; -} -export interface LightBlockSDKType { - signed_header?: SignedHeaderSDKType; - validator_set?: ValidatorSetSDKType; -} -export interface BlockMeta { - blockId?: BlockID; - blockSize: Long; - header?: Header; - numTxs: Long; -} -export interface BlockMetaSDKType { - block_id?: BlockIDSDKType; - block_size: Long; - header?: HeaderSDKType; - num_txs: Long; -} -/** TxProof represents a Merkle proof of the presence of a transaction in the Merkle tree. */ -export interface TxProof { - rootHash: Uint8Array; - data: Uint8Array; - proof?: Proof; -} -/** TxProof represents a Merkle proof of the presence of a transaction in the Merkle tree. */ -export interface TxProofSDKType { - root_hash: Uint8Array; - data: Uint8Array; - proof?: ProofSDKType; -} -export declare const PartSetHeader: { - encode(message: PartSetHeader, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): PartSetHeader; - fromPartial(object: DeepPartial): PartSetHeader; -}; -export declare const Part: { - encode(message: Part, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Part; - fromPartial(object: DeepPartial): Part; -}; -export declare const BlockID: { - encode(message: BlockID, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): BlockID; - fromPartial(object: DeepPartial): BlockID; -}; -export declare const Header: { - encode(message: Header, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Header; - fromPartial(object: DeepPartial
): Header; -}; -export declare const Data: { - encode(message: Data, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Data; - fromPartial(object: DeepPartial): Data; -}; -export declare const Vote: { - encode(message: Vote, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Vote; - fromPartial(object: DeepPartial): Vote; -}; -export declare const Commit: { - encode(message: Commit, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Commit; - fromPartial(object: DeepPartial): Commit; -}; -export declare const CommitSig: { - encode(message: CommitSig, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): CommitSig; - fromPartial(object: DeepPartial): CommitSig; -}; -export declare const Proposal: { - encode(message: Proposal, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Proposal; - fromPartial(object: DeepPartial): Proposal; -}; -export declare const SignedHeader: { - encode(message: SignedHeader, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SignedHeader; - fromPartial(object: DeepPartial): SignedHeader; -}; -export declare const LightBlock: { - encode(message: LightBlock, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): LightBlock; - fromPartial(object: DeepPartial): LightBlock; -}; -export declare const BlockMeta: { - encode(message: BlockMeta, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): BlockMeta; - fromPartial(object: DeepPartial): BlockMeta; -}; -export declare const TxProof: { - encode(message: TxProof, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): TxProof; - fromPartial(object: DeepPartial): TxProof; -}; diff --git a/packages/codegen/dist/tendermint/types/validator.d.ts b/packages/codegen/dist/tendermint/types/validator.d.ts deleted file mode 100644 index 5a0f01e5..00000000 --- a/packages/codegen/dist/tendermint/types/validator.d.ts +++ /dev/null @@ -1,49 +0,0 @@ -/// -import { PublicKey, PublicKeySDKType } from "../crypto/keys"; -import { Long, DeepPartial } from "../../helpers"; -import * as _m0 from "protobufjs/minimal"; -export interface ValidatorSet { - validators: Validator[]; - proposer?: Validator; - totalVotingPower: Long; -} -export interface ValidatorSetSDKType { - validators: ValidatorSDKType[]; - proposer?: ValidatorSDKType; - total_voting_power: Long; -} -export interface Validator { - address: Uint8Array; - pubKey?: PublicKey; - votingPower: Long; - proposerPriority: Long; -} -export interface ValidatorSDKType { - address: Uint8Array; - pub_key?: PublicKeySDKType; - voting_power: Long; - proposer_priority: Long; -} -export interface SimpleValidator { - pubKey?: PublicKey; - votingPower: Long; -} -export interface SimpleValidatorSDKType { - pub_key?: PublicKeySDKType; - voting_power: Long; -} -export declare const ValidatorSet: { - encode(message: ValidatorSet, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorSet; - fromPartial(object: DeepPartial): ValidatorSet; -}; -export declare const Validator: { - encode(message: Validator, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Validator; - fromPartial(object: DeepPartial): Validator; -}; -export declare const SimpleValidator: { - encode(message: SimpleValidator, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): SimpleValidator; - fromPartial(object: DeepPartial): SimpleValidator; -}; diff --git a/packages/codegen/dist/tendermint/version/types.d.ts b/packages/codegen/dist/tendermint/version/types.d.ts deleted file mode 100644 index c1896705..00000000 --- a/packages/codegen/dist/tendermint/version/types.d.ts +++ /dev/null @@ -1,49 +0,0 @@ -/// -import { Long, DeepPartial } from "../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * App includes the protocol and software version for the application. - * This information is included in ResponseInfo. The App.Protocol can be - * updated in ResponseEndBlock. - */ -export interface App { - protocol: Long; - software: string; -} -/** - * App includes the protocol and software version for the application. - * This information is included in ResponseInfo. The App.Protocol can be - * updated in ResponseEndBlock. - */ -export interface AppSDKType { - protocol: Long; - software: string; -} -/** - * 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. - */ -export interface Consensus { - block: Long; - app: Long; -} -/** - * 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. - */ -export interface ConsensusSDKType { - block: Long; - app: Long; -} -export declare const App: { - encode(message: App, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): App; - fromPartial(object: DeepPartial): App; -}; -export declare const Consensus: { - encode(message: Consensus, writer?: _m0.Writer): _m0.Writer; - decode(input: _m0.Reader | Uint8Array, length?: number): Consensus; - fromPartial(object: DeepPartial): Consensus; -}; diff --git a/packages/codegen/package.json b/packages/codegen/package.json deleted file mode 100644 index b93d43d1..00000000 --- a/packages/codegen/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "@ping-pub/codegen", - "version": "1.0.0", - "description": "Libs genereted from protobuf by Telescope.", - "main": "dist/index.js", - "module": "src/index.ts", - "types": "dist/index.d.ts", - "repository": "https://github.com/ping-pub/explorer.git", - "author": "Ping Liang", - "license": "MIT", - "private": false, - "devDependencies": { - "@osmonauts/telescope": "^0.88.2", - "@protobufs/cosmos": "^0.1.0", - "@protobufs/cosmos_proto": "^0.0.10", - "@protobufs/cosmwasm": "^0.1.1", - "@protobufs/google": "^0.0.10", - "@protobufs/ibc": "^0.1.0" - }, - "scripts": { - "build": "tsc --module es2022 --project ./tsconfig.json ", - "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore" - } -} \ No newline at end of file diff --git a/packages/codegen/proto/amino/LICENSE b/packages/codegen/proto/amino/LICENSE deleted file mode 100644 index 063e03fc..00000000 --- a/packages/codegen/proto/amino/LICENSE +++ /dev/null @@ -1,204 +0,0 @@ -Cosmos SDK -License: Apache2.0 - - 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 2016 All in Bits, Inc - - 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 newline at end of file diff --git a/packages/codegen/proto/amino/README.md b/packages/codegen/proto/amino/README.md deleted file mode 100644 index b0d34bbf..00000000 --- a/packages/codegen/proto/amino/README.md +++ /dev/null @@ -1 +0,0 @@ -# amino \ No newline at end of file diff --git a/packages/codegen/proto/amino/amino.proto b/packages/codegen/proto/amino/amino.proto deleted file mode 100644 index d01f1752..00000000 --- a/packages/codegen/proto/amino/amino.proto +++ /dev/null @@ -1,79 +0,0 @@ -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; -} \ No newline at end of file diff --git a/packages/codegen/proto/confio/LICENSE b/packages/codegen/proto/confio/LICENSE deleted file mode 100644 index deaad1f5..00000000 --- a/packages/codegen/proto/confio/LICENSE +++ /dev/null @@ -1,204 +0,0 @@ -Confio/ICS23 -License: Apache2.0 - - 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 2019 Confio UO - - 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 newline at end of file diff --git a/packages/codegen/proto/confio/README.md b/packages/codegen/proto/confio/README.md deleted file mode 100644 index af52fb63..00000000 --- a/packages/codegen/proto/confio/README.md +++ /dev/null @@ -1 +0,0 @@ -# confio \ No newline at end of file diff --git a/packages/codegen/proto/confio/proofs.proto b/packages/codegen/proto/confio/proofs.proto deleted file mode 100644 index da43503e..00000000 --- a/packages/codegen/proto/confio/proofs.proto +++ /dev/null @@ -1,234 +0,0 @@ -syntax = "proto3"; - -package ics23; -option go_package = "github.com/confio/ics23/go"; - -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)) -} - -/** -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/packages/codegen/proto/cosmos/LICENSE b/packages/codegen/proto/cosmos/LICENSE deleted file mode 100644 index 063e03fc..00000000 --- a/packages/codegen/proto/cosmos/LICENSE +++ /dev/null @@ -1,204 +0,0 @@ -Cosmos SDK -License: Apache2.0 - - 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 2016 All in Bits, Inc - - 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 newline at end of file diff --git a/packages/codegen/proto/cosmos/README.md b/packages/codegen/proto/cosmos/README.md deleted file mode 100644 index 98a49c6b..00000000 --- a/packages/codegen/proto/cosmos/README.md +++ /dev/null @@ -1 +0,0 @@ -# cosmos \ No newline at end of file diff --git a/packages/codegen/proto/cosmos/app/v1alpha1/config.proto b/packages/codegen/proto/cosmos/app/v1alpha1/config.proto deleted file mode 100644 index ed775006..00000000 --- a/packages/codegen/proto/cosmos/app/v1alpha1/config.proto +++ /dev/null @@ -1,36 +0,0 @@ -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; -} - -// 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; -} diff --git a/packages/codegen/proto/cosmos/app/v1alpha1/module.proto b/packages/codegen/proto/cosmos/app/v1alpha1/module.proto deleted file mode 100644 index 599078d7..00000000 --- a/packages/codegen/proto/cosmos/app/v1alpha1/module.proto +++ /dev/null @@ -1,93 +0,0 @@ -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. Either go_import must be defined here - // or the go_package option must be defined at the file level to indicate - // to users where to location the module implementation. go_import takes - // precedence over go_package when both are defined. - 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 fields containing the - // test "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/packages/codegen/proto/cosmos/app/v1alpha1/query.proto b/packages/codegen/proto/cosmos/app/v1alpha1/query.proto deleted file mode 100644 index efec9c81..00000000 --- a/packages/codegen/proto/cosmos/app/v1alpha1/query.proto +++ /dev/null @@ -1,22 +0,0 @@ -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/packages/codegen/proto/cosmos/auth/v1beta1/auth.proto b/packages/codegen/proto/cosmos/auth/v1beta1/auth.proto deleted file mode 100644 index 486d507f..00000000 --- a/packages/codegen/proto/cosmos/auth/v1beta1/auth.proto +++ /dev/null @@ -1,47 +0,0 @@ -syntax = "proto3"; -package cosmos.auth.v1beta1; - -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 (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = false; - option (gogoproto.equal) = false; - - option (cosmos_proto.implements_interface) = "cosmos.auth.AccountI"; - - string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - google.protobuf.Any pub_key = 2 [(gogoproto.jsontag) = "public_key,omitempty"]; - uint64 account_number = 3; - uint64 sequence = 4; -} - -// ModuleAccount defines an account for modules that holds coins on a pool. -message ModuleAccount { - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = false; - option (cosmos_proto.implements_interface) = "cosmos.auth.ModuleAccountI"; - - BaseAccount base_account = 1 [(gogoproto.embed) = true]; - string name = 2; - repeated string permissions = 3; -} - -// Params defines the parameters for the auth module. -message Params { - option (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = false; - - 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/packages/codegen/proto/cosmos/auth/v1beta1/genesis.proto b/packages/codegen/proto/cosmos/auth/v1beta1/genesis.proto deleted file mode 100644 index c88b94ee..00000000 --- a/packages/codegen/proto/cosmos/auth/v1beta1/genesis.proto +++ /dev/null @@ -1,17 +0,0 @@ -syntax = "proto3"; -package cosmos.auth.v1beta1; - -import "google/protobuf/any.proto"; -import "gogoproto/gogo.proto"; -import "cosmos/auth/v1beta1/auth.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 paramaters of the module. - Params params = 1 [(gogoproto.nullable) = false]; - - // accounts are the accounts present at genesis. - repeated google.protobuf.Any accounts = 2; -} diff --git a/packages/codegen/proto/cosmos/auth/v1beta1/query.proto b/packages/codegen/proto/cosmos/auth/v1beta1/query.proto deleted file mode 100644 index 8de4d09d..00000000 --- a/packages/codegen/proto/cosmos/auth/v1beta1/query.proto +++ /dev/null @@ -1,130 +0,0 @@ -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"; - -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 - // - // Since: cosmos-sdk 0.43 - rpc Accounts(QueryAccountsRequest) returns (QueryAccountsResponse) { - option (google.api.http).get = "/cosmos/auth/v1beta1/accounts"; - } - - // Account returns account details based on address. - rpc Account(QueryAccountRequest) returns (QueryAccountResponse) { - option (google.api.http).get = "/cosmos/auth/v1beta1/accounts/{address}"; - } - - // Params queries all parameters. - rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { - option (google.api.http).get = "/cosmos/auth/v1beta1/params"; - } - - // ModuleAccounts returns all the existing module accounts. - rpc ModuleAccounts(QueryModuleAccountsRequest) returns (QueryModuleAccountsResponse) { - option (google.api.http).get = "/cosmos/auth/v1beta1/module_accounts"; - } - - // Bech32 queries bech32Prefix - rpc Bech32Prefix(Bech32PrefixRequest) returns (Bech32PrefixResponse) { - option (google.api.http).get = "/cosmos/auth/v1beta1/bech32"; - } - - // AddressBytesToString converts Account Address bytes to string - rpc AddressBytesToString(AddressBytesToStringRequest) returns (AddressBytesToStringResponse) { - option (google.api.http).get = "/cosmos/auth/v1beta1/bech32/{address_bytes}"; - } - - // AddressStringToBytes converts Address string to bytes - rpc AddressStringToBytes(AddressStringToBytesRequest) returns (AddressStringToBytesResponse) { - option (google.api.http).get = "/cosmos/auth/v1beta1/bech32/{address_string}"; - } -} - -// 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.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"]; -} - -// QueryModuleAccountsRequest is the request type for the Query/ModuleAccounts RPC method. -message QueryModuleAccountsRequest {} - -// 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]; -} - -// 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.AccountI"]; -} - -// QueryParamsRequest is the request type for the Query/Params RPC method. -message QueryParamsRequest {} - -// QueryModuleAccountsResponse is the response type for the Query/ModuleAccounts RPC method. -message QueryModuleAccountsResponse { - repeated google.protobuf.Any accounts = 1 [(cosmos_proto.accepts_interface) = "cosmos.auth.ModuleAccountI"]; -} - -// Bech32PrefixRequest is the request type for Bech32Prefix rpc method -message Bech32PrefixRequest {} - -// Bech32PrefixResponse is the response type for Bech32Prefix rpc method -message Bech32PrefixResponse { - string bech32_prefix = 1; -} - -// AddressBytesToStringRequest is the request type for AddressString rpc method -message AddressBytesToStringRequest { - bytes address_bytes = 1; -} - -// AddressBytesToStringResponse is the response type for AddressString rpc method -message AddressBytesToStringResponse { - string address_string = 1; -} - -// AddressStringToBytesRequest is the request type for AccountBytes rpc method -message AddressStringToBytesRequest { - string address_string = 1; -} - -// AddressStringToBytesResponse is the response type for AddressBytes rpc method -message AddressStringToBytesResponse { - bytes address_bytes = 1; -} diff --git a/packages/codegen/proto/cosmos/authz/v1beta1/authz.proto b/packages/codegen/proto/cosmos/authz/v1beta1/authz.proto deleted file mode 100644 index 2dce1ce0..00000000 --- a/packages/codegen/proto/cosmos/authz/v1beta1/authz.proto +++ /dev/null @@ -1,46 +0,0 @@ -// Since: cosmos-sdk 0.43 -syntax = "proto3"; -package cosmos.authz.v1beta1; - -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 (cosmos_proto.implements_interface) = "cosmos.authz.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.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.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/packages/codegen/proto/cosmos/authz/v1beta1/event.proto b/packages/codegen/proto/cosmos/authz/v1beta1/event.proto deleted file mode 100644 index 0476649a..00000000 --- a/packages/codegen/proto/cosmos/authz/v1beta1/event.proto +++ /dev/null @@ -1,27 +0,0 @@ -// 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/packages/codegen/proto/cosmos/authz/v1beta1/genesis.proto b/packages/codegen/proto/cosmos/authz/v1beta1/genesis.proto deleted file mode 100644 index 310f6265..00000000 --- a/packages/codegen/proto/cosmos/authz/v1beta1/genesis.proto +++ /dev/null @@ -1,13 +0,0 @@ -// Since: cosmos-sdk 0.43 -syntax = "proto3"; -package cosmos.authz.v1beta1; - -import "gogoproto/gogo.proto"; -import "cosmos/authz/v1beta1/authz.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]; -} diff --git a/packages/codegen/proto/cosmos/authz/v1beta1/query.proto b/packages/codegen/proto/cosmos/authz/v1beta1/query.proto deleted file mode 100644 index 62154ac1..00000000 --- a/packages/codegen/proto/cosmos/authz/v1beta1/query.proto +++ /dev/null @@ -1,82 +0,0 @@ -// 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/packages/codegen/proto/cosmos/authz/v1beta1/tx.proto b/packages/codegen/proto/cosmos/authz/v1beta1/tx.proto deleted file mode 100644 index 9c8ae160..00000000 --- a/packages/codegen/proto/cosmos/authz/v1beta1/tx.proto +++ /dev/null @@ -1,75 +0,0 @@ -// 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"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/authz"; -option (gogoproto.goproto_getters_all) = false; - -// Msg defines the authz Msg service. -service Msg { - // 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"; - - 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]; -} - -// 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"; - - string grantee = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - // Authorization Msg requests to execute. Each msg must implement Authorization interface - // 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) = "sdk.Msg, cosmos.authz.Authorization"]; -} - -// 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"; - - 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/packages/codegen/proto/cosmos/bank/v1beta1/authz.proto b/packages/codegen/proto/cosmos/bank/v1beta1/authz.proto deleted file mode 100644 index e3e600b4..00000000 --- a/packages/codegen/proto/cosmos/bank/v1beta1/authz.proto +++ /dev/null @@ -1,19 +0,0 @@ -syntax = "proto3"; -package cosmos.bank.v1beta1; - -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.Authorization"; - - repeated cosmos.base.v1beta1.Coin spend_limit = 1 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; -} diff --git a/packages/codegen/proto/cosmos/bank/v1beta1/bank.proto b/packages/codegen/proto/cosmos/bank/v1beta1/bank.proto deleted file mode 100644 index f70c24ab..00000000 --- a/packages/codegen/proto/cosmos/bank/v1beta1/bank.proto +++ /dev/null @@ -1,108 +0,0 @@ -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"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/bank/types"; - -// Params defines the parameters for the bank module. -message Params { - option (gogoproto.goproto_stringer) = false; - repeated SendEnabled send_enabled = 1; - 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; - option (gogoproto.goproto_stringer) = false; - 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, (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, (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) = "SupplyI"; - - repeated cosmos.base.v1beta1.Coin total = 1 - [(gogoproto.nullable) = false, (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/packages/codegen/proto/cosmos/bank/v1beta1/genesis.proto b/packages/codegen/proto/cosmos/bank/v1beta1/genesis.proto deleted file mode 100644 index aa35790b..00000000 --- a/packages/codegen/proto/cosmos/bank/v1beta1/genesis.proto +++ /dev/null @@ -1,40 +0,0 @@ -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"; - -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 paramaters of the module. - Params params = 1 [(gogoproto.nullable) = false]; - - // balances is an array containing the balances of all the accounts. - repeated Balance balances = 2 [(gogoproto.nullable) = false]; - - // 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 - [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", (gogoproto.nullable) = false]; - - // denom_metadata defines the metadata of the differents coins. - repeated Metadata denom_metadata = 4 [(gogoproto.nullable) = false]; -} - -// 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 - [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", (gogoproto.nullable) = false]; -} diff --git a/packages/codegen/proto/cosmos/bank/v1beta1/query.proto b/packages/codegen/proto/cosmos/bank/v1beta1/query.proto deleted file mode 100644 index cbe7f38a..00000000 --- a/packages/codegen/proto/cosmos/bank/v1beta1/query.proto +++ /dev/null @@ -1,231 +0,0 @@ -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"; - -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 (google.api.http).get = "/cosmos/bank/v1beta1/balances/{address}/by_denom"; - } - - // AllBalances queries the balance of all coins for a single account. - rpc AllBalances(QueryAllBalancesRequest) returns (QueryAllBalancesResponse) { - option (google.api.http).get = "/cosmos/bank/v1beta1/balances/{address}"; - } - - // SpendableBalances queries the spenable balance of all coins for a single - // account. - rpc SpendableBalances(QuerySpendableBalancesRequest) returns (QuerySpendableBalancesResponse) { - option (google.api.http).get = "/cosmos/bank/v1beta1/spendable_balances/{address}"; - } - - // TotalSupply queries the total supply of all coins. - rpc TotalSupply(QueryTotalSupplyRequest) returns (QueryTotalSupplyResponse) { - option (google.api.http).get = "/cosmos/bank/v1beta1/supply"; - } - - // SupplyOf queries the supply of a single coin. - rpc SupplyOf(QuerySupplyOfRequest) returns (QuerySupplyOfResponse) { - 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 (google.api.http).get = "/cosmos/bank/v1beta1/params"; - } - - // DenomsMetadata queries the client metadata of a given coin denomination. - rpc DenomMetadata(QueryDenomMetadataRequest) returns (QueryDenomMetadataResponse) { - 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 (google.api.http).get = "/cosmos/bank/v1beta1/denoms_metadata"; - } - - // DenomOwners queries for all account addresses that own a particular token - // denomination. - rpc DenomOwners(QueryDenomOwnersRequest) returns (QueryDenomOwnersResponse) { - option (google.api.http).get = "/cosmos/bank/v1beta1/denom_owners/{denom}"; - } -} - -// 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; -} - -// 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, (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. -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. -message QuerySpendableBalancesResponse { - // balances is the spendable balances of all the coins. - repeated cosmos.base.v1beta1.Coin balances = 1 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; - - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// 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, (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]; -} - -// 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]; -} - -// 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]; - - // 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]; -} - -// 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. -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]; -} - -// QueryDenomOwnersResponse defines the RPC response of a DenomOwners RPC query. -message QueryDenomOwnersResponse { - repeated DenomOwner denom_owners = 1; - - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} diff --git a/packages/codegen/proto/cosmos/bank/v1beta1/tx.proto b/packages/codegen/proto/cosmos/bank/v1beta1/tx.proto deleted file mode 100644 index 22e62cbf..00000000 --- a/packages/codegen/proto/cosmos/bank/v1beta1/tx.proto +++ /dev/null @@ -1,48 +0,0 @@ -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"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/bank/types"; - -// Msg defines the bank Msg service. -service Msg { - // 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); -} - -// MsgSend represents a message to send coins from one account to another. -message MsgSend { - option (cosmos.msg.v1.signer) = "from_address"; - - 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, (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 (gogoproto.equal) = false; - - repeated Input inputs = 1 [(gogoproto.nullable) = false]; - repeated Output outputs = 2 [(gogoproto.nullable) = false]; -} - -// MsgMultiSendResponse defines the Msg/MultiSend response type. -message MsgMultiSendResponse {} diff --git a/packages/codegen/proto/cosmos/base/abci/v1beta1/abci.proto b/packages/codegen/proto/cosmos/base/abci/v1beta1/abci.proto deleted file mode 100644 index 09a2fcc4..00000000 --- a/packages/codegen/proto/cosmos/base/abci/v1beta1/abci.proto +++ /dev/null @@ -1,158 +0,0 @@ -syntax = "proto3"; -package cosmos.base.abci.v1beta1; - -import "gogoproto/gogo.proto"; -import "tendermint/abci/types.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 handler. 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; -} diff --git a/packages/codegen/proto/cosmos/base/kv/v1beta1/kv.proto b/packages/codegen/proto/cosmos/base/kv/v1beta1/kv.proto deleted file mode 100644 index 4e9b8d28..00000000 --- a/packages/codegen/proto/cosmos/base/kv/v1beta1/kv.proto +++ /dev/null @@ -1,17 +0,0 @@ -syntax = "proto3"; -package cosmos.base.kv.v1beta1; - -import "gogoproto/gogo.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/types/kv"; - -// 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/packages/codegen/proto/cosmos/base/query/v1beta1/pagination.proto b/packages/codegen/proto/cosmos/base/query/v1beta1/pagination.proto deleted file mode 100644 index 0a368144..00000000 --- a/packages/codegen/proto/cosmos/base/query/v1beta1/pagination.proto +++ /dev/null @@ -1,56 +0,0 @@ -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/packages/codegen/proto/cosmos/base/reflection/v1beta1/reflection.proto b/packages/codegen/proto/cosmos/base/reflection/v1beta1/reflection.proto deleted file mode 100644 index 22670e72..00000000 --- a/packages/codegen/proto/cosmos/base/reflection/v1beta1/reflection.proto +++ /dev/null @@ -1,44 +0,0 @@ -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/packages/codegen/proto/cosmos/base/reflection/v2alpha1/reflection.proto b/packages/codegen/proto/cosmos/base/reflection/v2alpha1/reflection.proto deleted file mode 100644 index d5b04855..00000000 --- a/packages/codegen/proto/cosmos/base/reflection/v2alpha1/reflection.proto +++ /dev/null @@ -1,218 +0,0 @@ -// 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/packages/codegen/proto/cosmos/base/snapshots/v1beta1/snapshot.proto b/packages/codegen/proto/cosmos/base/snapshots/v1beta1/snapshot.proto deleted file mode 100644 index a89e0b4c..00000000 --- a/packages/codegen/proto/cosmos/base/snapshots/v1beta1/snapshot.proto +++ /dev/null @@ -1,70 +0,0 @@ -syntax = "proto3"; -package cosmos.base.snapshots.v1beta1; - -import "gogoproto/gogo.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/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. -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; - SnapshotKVItem kv = 5 [(gogoproto.customname) = "KV"]; - SnapshotSchema schema = 6; - } -} - -// SnapshotStoreItem contains metadata about a snapshotted store. -message SnapshotStoreItem { - string name = 1; -} - -// SnapshotIAVLItem is an exported IAVL node. -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. -message SnapshotExtensionMeta { - string name = 1; - uint32 format = 2; -} - -// SnapshotExtensionPayload contains payloads of an external snapshotter. -message SnapshotExtensionPayload { - bytes payload = 1; -} - -// SnapshotKVItem is an exported Key/Value Pair -message SnapshotKVItem { - bytes key = 1; - bytes value = 2; -} - -// SnapshotSchema is an exported schema of smt store -message SnapshotSchema{ - repeated bytes keys = 1; -} diff --git a/packages/codegen/proto/cosmos/base/store/v1beta1/commit_info.proto b/packages/codegen/proto/cosmos/base/store/v1beta1/commit_info.proto deleted file mode 100644 index 98a33d30..00000000 --- a/packages/codegen/proto/cosmos/base/store/v1beta1/commit_info.proto +++ /dev/null @@ -1,29 +0,0 @@ -syntax = "proto3"; -package cosmos.base.store.v1beta1; - -import "gogoproto/gogo.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/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]; -} - -// 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 committment information when a specific store is -// committed. -message CommitID { - option (gogoproto.goproto_stringer) = false; - - int64 version = 1; - bytes hash = 2; -} diff --git a/packages/codegen/proto/cosmos/base/store/v1beta1/listening.proto b/packages/codegen/proto/cosmos/base/store/v1beta1/listening.proto deleted file mode 100644 index 35999710..00000000 --- a/packages/codegen/proto/cosmos/base/store/v1beta1/listening.proto +++ /dev/null @@ -1,16 +0,0 @@ -syntax = "proto3"; -package cosmos.base.store.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/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; -} diff --git a/packages/codegen/proto/cosmos/base/tendermint/v1beta1/query.proto b/packages/codegen/proto/cosmos/base/tendermint/v1beta1/query.proto deleted file mode 100644 index 96a46e53..00000000 --- a/packages/codegen/proto/cosmos/base/tendermint/v1beta1/query.proto +++ /dev/null @@ -1,138 +0,0 @@ -syntax = "proto3"; -package cosmos.base.tendermint.v1beta1; - -import "google/protobuf/any.proto"; -import "google/api/annotations.proto"; -import "tendermint/p2p/types.proto"; -import "tendermint/types/block.proto"; -import "tendermint/types/types.proto"; -import "cosmos/base/query/v1beta1/pagination.proto"; -import "cosmos_proto/cosmos.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/client/grpc/tmservice"; - -// 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}"; - } -} - -// 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; - .tendermint.types.Block block = 2; -} - -// 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; - .tendermint.types.Block block = 2; -} - -// 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.NodeInfo 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; -} diff --git a/packages/codegen/proto/cosmos/base/v1beta1/coin.proto b/packages/codegen/proto/cosmos/base/v1beta1/coin.proto deleted file mode 100644 index 69e67e09..00000000 --- a/packages/codegen/proto/cosmos/base/v1beta1/coin.proto +++ /dev/null @@ -1,43 +0,0 @@ -syntax = "proto3"; -package cosmos.base.v1beta1; - -import "gogoproto/gogo.proto"; -import "cosmos_proto/cosmos.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) = "Int", (gogoproto.nullable) = false]; -} - -// 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) = "Dec", (gogoproto.nullable) = false]; -} - -// IntProto defines a Protobuf wrapper around an Int object. -message IntProto { - string int = 1 [(cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "Int", (gogoproto.nullable) = false]; -} - -// DecProto defines a Protobuf wrapper around a Dec object. -message DecProto { - string dec = 1 [(cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "Dec", (gogoproto.nullable) = false]; -} diff --git a/packages/codegen/proto/cosmos/capability/v1beta1/capability.proto b/packages/codegen/proto/cosmos/capability/v1beta1/capability.proto deleted file mode 100644 index c433566d..00000000 --- a/packages/codegen/proto/cosmos/capability/v1beta1/capability.proto +++ /dev/null @@ -1,30 +0,0 @@ -syntax = "proto3"; -package cosmos.capability.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/x/capability/types"; - -import "gogoproto/gogo.proto"; - -// 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]; -} diff --git a/packages/codegen/proto/cosmos/capability/v1beta1/genesis.proto b/packages/codegen/proto/cosmos/capability/v1beta1/genesis.proto deleted file mode 100644 index b5482439..00000000 --- a/packages/codegen/proto/cosmos/capability/v1beta1/genesis.proto +++ /dev/null @@ -1,26 +0,0 @@ -syntax = "proto3"; -package cosmos.capability.v1beta1; - -import "gogoproto/gogo.proto"; -import "cosmos/capability/v1beta1/capability.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/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]; -} - -// 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]; -} diff --git a/packages/codegen/proto/cosmos/crisis/v1beta1/genesis.proto b/packages/codegen/proto/cosmos/crisis/v1beta1/genesis.proto deleted file mode 100644 index 5c291604..00000000 --- a/packages/codegen/proto/cosmos/crisis/v1beta1/genesis.proto +++ /dev/null @@ -1,14 +0,0 @@ -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"; - -// 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]; -} diff --git a/packages/codegen/proto/cosmos/crisis/v1beta1/tx.proto b/packages/codegen/proto/cosmos/crisis/v1beta1/tx.proto deleted file mode 100644 index fea9059f..00000000 --- a/packages/codegen/proto/cosmos/crisis/v1beta1/tx.proto +++ /dev/null @@ -1,29 +0,0 @@ -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"; - -// Msg defines the bank Msg service. -service Msg { - // VerifyInvariant defines a method to verify a particular invariance. - rpc VerifyInvariant(MsgVerifyInvariant) returns (MsgVerifyInvariantResponse); -} - -// MsgVerifyInvariant represents a message to verify a particular invariance. -message MsgVerifyInvariant { - option (cosmos.msg.v1.signer) = "sender"; - - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - string sender = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - string invariant_module_name = 2; - string invariant_route = 3; -} - -// MsgVerifyInvariantResponse defines the Msg/VerifyInvariant response type. -message MsgVerifyInvariantResponse {} diff --git a/packages/codegen/proto/cosmos/crypto/ed25519/keys.proto b/packages/codegen/proto/cosmos/crypto/ed25519/keys.proto deleted file mode 100644 index 6ffec344..00000000 --- a/packages/codegen/proto/cosmos/crypto/ed25519/keys.proto +++ /dev/null @@ -1,23 +0,0 @@ -syntax = "proto3"; -package cosmos.crypto.ed25519; - -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 (gogoproto.goproto_stringer) = false; - - bytes key = 1 [(gogoproto.casttype) = "crypto/ed25519.PublicKey"]; -} - -// Deprecated: PrivKey defines a ed25519 private key. -// NOTE: ed25519 keys must not be used in SDK apps except in a tendermint validator context. -message PrivKey { - bytes key = 1 [(gogoproto.casttype) = "crypto/ed25519.PrivateKey"]; -} diff --git a/packages/codegen/proto/cosmos/crypto/hd/v1/hd.proto b/packages/codegen/proto/cosmos/crypto/hd/v1/hd.proto deleted file mode 100644 index e4a95afc..00000000 --- a/packages/codegen/proto/cosmos/crypto/hd/v1/hd.proto +++ /dev/null @@ -1,23 +0,0 @@ -syntax = "proto3"; -package cosmos.crypto.hd.v1; - -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 (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/packages/codegen/proto/cosmos/crypto/keyring/v1/record.proto b/packages/codegen/proto/cosmos/crypto/keyring/v1/record.proto deleted file mode 100644 index 9b2d3c96..00000000 --- a/packages/codegen/proto/cosmos/crypto/keyring/v1/record.proto +++ /dev/null @@ -1,47 +0,0 @@ -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; - -// 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 public information about a locally stored key - Local local = 3; - // ledger stores the public information about a Ledger key - Ledger ledger = 4; - // Multi does not store any information. - Multi multi = 5; - // Offline does not store any information. - Offline offline = 6; - } - - // Item is a keyring item stored in a keyring backend. - // Local item - message Local { - google.protobuf.Any priv_key = 1; - string priv_key_type = 2; - } - - // Ledger item - message Ledger { - hd.v1.BIP44Params path = 1; - } - - // Multi item - message Multi {} - - // Offline item - message Offline {} -} diff --git a/packages/codegen/proto/cosmos/crypto/multisig/keys.proto b/packages/codegen/proto/cosmos/crypto/multisig/keys.proto deleted file mode 100644 index 7a11fe33..00000000 --- a/packages/codegen/proto/cosmos/crypto/multisig/keys.proto +++ /dev/null @@ -1,17 +0,0 @@ -syntax = "proto3"; -package cosmos.crypto.multisig; - -import "gogoproto/gogo.proto"; -import "google/protobuf/any.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 (gogoproto.goproto_getters) = false; - - uint32 threshold = 1; - repeated google.protobuf.Any public_keys = 2 [(gogoproto.customname) = "PubKeys"]; -} diff --git a/packages/codegen/proto/cosmos/crypto/multisig/v1beta1/multisig.proto b/packages/codegen/proto/cosmos/crypto/multisig/v1beta1/multisig.proto deleted file mode 100644 index bf671f17..00000000 --- a/packages/codegen/proto/cosmos/crypto/multisig/v1beta1/multisig.proto +++ /dev/null @@ -1,25 +0,0 @@ -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/packages/codegen/proto/cosmos/crypto/secp256k1/keys.proto b/packages/codegen/proto/cosmos/crypto/secp256k1/keys.proto deleted file mode 100644 index a2272571..00000000 --- a/packages/codegen/proto/cosmos/crypto/secp256k1/keys.proto +++ /dev/null @@ -1,22 +0,0 @@ -syntax = "proto3"; -package cosmos.crypto.secp256k1; - -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 (gogoproto.goproto_stringer) = false; - - bytes key = 1; -} - -// PrivKey defines a secp256k1 private key. -message PrivKey { - bytes key = 1; -} diff --git a/packages/codegen/proto/cosmos/crypto/secp256r1/keys.proto b/packages/codegen/proto/cosmos/crypto/secp256r1/keys.proto deleted file mode 100644 index 2e96c6e3..00000000 --- a/packages/codegen/proto/cosmos/crypto/secp256r1/keys.proto +++ /dev/null @@ -1,23 +0,0 @@ -// 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/packages/codegen/proto/cosmos/distribution/v1beta1/distribution.proto b/packages/codegen/proto/cosmos/distribution/v1beta1/distribution.proto deleted file mode 100644 index 1afe25ae..00000000 --- a/packages/codegen/proto/cosmos/distribution/v1beta1/distribution.proto +++ /dev/null @@ -1,154 +0,0 @@ -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"; - -// Params defines the set of params for the distribution module. -message Params { - option (gogoproto.goproto_stringer) = false; - string community_tax = 1 [ - (cosmos_proto.scalar) = "cosmos.Dec", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false - ]; - string base_proposer_reward = 2 [ - (cosmos_proto.scalar) = "cosmos.Dec", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false - ]; - string bonus_proposer_reward = 3 [ - (cosmos_proto.scalar) = "cosmos.Dec", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false - ]; - 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]; - 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]; - 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]; -} - -// 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]; -} - -// 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 { - option (gogoproto.goproto_stringer) = false; - repeated ValidatorSlashEvent validator_slash_events = 1 [(gogoproto.nullable) = false]; -} - -// FeePool is the global fee pool for distribution. -message FeePool { - repeated cosmos.base.v1beta1.DecCoin community_pool = 1 - [(gogoproto.nullable) = false, (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. -message CommunityPoolSpendProposal { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = 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, (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 - ]; - uint64 height = 3 [(gogoproto.jsontag) = "creation_height"]; -} - -// DelegationDelegatorReward represents the properties -// of a delegator's delegation reward. -message DelegationDelegatorReward { - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = true; - - string validator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - - repeated cosmos.base.v1beta1.DecCoin reward = 2 - [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", (gogoproto.nullable) = false]; -} - -// CommunityPoolSpendProposalWithDeposit defines a CommunityPoolSpendProposal -// with a deposit -message CommunityPoolSpendProposalWithDeposit { - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = true; - 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/packages/codegen/proto/cosmos/distribution/v1beta1/genesis.proto b/packages/codegen/proto/cosmos/distribution/v1beta1/genesis.proto deleted file mode 100644 index 4662e8df..00000000 --- a/packages/codegen/proto/cosmos/distribution/v1beta1/genesis.proto +++ /dev/null @@ -1,144 +0,0 @@ -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"; - -// 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.AddressString"]; - - // outstanding_rewards represents the oustanding rewards of a validator. - repeated cosmos.base.v1beta1.DecCoin outstanding_rewards = 2 - [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", (gogoproto.nullable) = false]; -} - -// 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.AddressString"]; - - // accumulated is the accumulated commission of a validator. - ValidatorAccumulatedCommission accumulated = 2 [(gogoproto.nullable) = false]; -} - -// 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.AddressString"]; - - // 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]; -} - -// 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.AddressString"]; - - // rewards defines the current rewards of a validator. - ValidatorCurrentRewards rewards = 2 [(gogoproto.nullable) = false]; -} - -// 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.AddressString"]; - - // starting_info defines the starting info of a delegator. - DelegatorStartingInfo starting_info = 3 [(gogoproto.nullable) = false]; -} - -// 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.AddressString"]; - // height defines the block height at which the slash event occured. - 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]; -} - -// GenesisState defines the distribution module's genesis state. -message GenesisState { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // params defines all the paramaters of the module. - Params params = 1 [(gogoproto.nullable) = false]; - - // fee_pool defines the fee pool at genesis. - FeePool fee_pool = 2 [(gogoproto.nullable) = false]; - - // fee_pool defines the delegator withdraw infos at genesis. - repeated DelegatorWithdrawInfo delegator_withdraw_infos = 3 [(gogoproto.nullable) = false]; - - // 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]; - - // fee_pool defines the accumulated commisions of all validators at genesis. - repeated ValidatorAccumulatedCommissionRecord validator_accumulated_commissions = 6 [(gogoproto.nullable) = false]; - - // fee_pool defines the historical rewards of all validators at genesis. - repeated ValidatorHistoricalRewardsRecord validator_historical_rewards = 7 [(gogoproto.nullable) = false]; - - // fee_pool defines the current rewards of all validators at genesis. - repeated ValidatorCurrentRewardsRecord validator_current_rewards = 8 [(gogoproto.nullable) = false]; - - // fee_pool defines the delegator starting infos at genesis. - repeated DelegatorStartingInfoRecord delegator_starting_infos = 9 [(gogoproto.nullable) = false]; - - // fee_pool defines the validator slash events at genesis. - repeated ValidatorSlashEventRecord validator_slash_events = 10 [(gogoproto.nullable) = false]; -} diff --git a/packages/codegen/proto/cosmos/distribution/v1beta1/query.proto b/packages/codegen/proto/cosmos/distribution/v1beta1/query.proto deleted file mode 100644 index a09413fc..00000000 --- a/packages/codegen/proto/cosmos/distribution/v1beta1/query.proto +++ /dev/null @@ -1,219 +0,0 @@ -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"; - -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"; - } - - // 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 a 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]; -} - -// 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.AddressString"]; -} - -// QueryValidatorOutstandingRewardsResponse is the response type for the -// Query/ValidatorOutstandingRewards RPC method. -message QueryValidatorOutstandingRewardsResponse { - ValidatorOutstandingRewards rewards = 1 [(gogoproto.nullable) = false]; -} - -// 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.AddressString"]; -} - -// QueryValidatorCommissionResponse is the response type for the -// Query/ValidatorCommission RPC method -message QueryValidatorCommissionResponse { - // commission defines the commision the validator received. - ValidatorAccumulatedCommission commission = 1 [(gogoproto.nullable) = false]; -} - -// QueryValidatorSlashesRequest is the request type for the -// Query/ValidatorSlashes RPC method -message QueryValidatorSlashesRequest { - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = true; - - // validator_address defines the validator address to query for. - string validator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - // 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]; - - // 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.AddressString"]; -} - -// 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, (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]; - // total defines the sum of all the rewards. - repeated cosmos.base.v1beta1.DecCoin total = 2 - [(gogoproto.nullable) = false, (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]; -} diff --git a/packages/codegen/proto/cosmos/distribution/v1beta1/tx.proto b/packages/codegen/proto/cosmos/distribution/v1beta1/tx.proto deleted file mode 100644 index 7f22dce9..00000000 --- a/packages/codegen/proto/cosmos/distribution/v1beta1/tx.proto +++ /dev/null @@ -1,95 +0,0 @@ -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"; - -// Msg defines the distribution Msg service. -service Msg { - // 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); -} - -// MsgSetWithdrawAddress sets the withdraw address for -// a delegator (or validator self-delegation). -message MsgSetWithdrawAddress { - option (cosmos.msg.v1.signer) = "delegator_address"; - - 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 (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"]; -} - -// MsgWithdrawDelegatorRewardResponse defines the Msg/WithdrawDelegatorReward response type. -message MsgWithdrawDelegatorRewardResponse { - repeated cosmos.base.v1beta1.Coin amount = 1 - [(gogoproto.nullable) = false, (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 (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - string validator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; -} - -// MsgWithdrawValidatorCommissionResponse defines the Msg/WithdrawValidatorCommission response type. -message MsgWithdrawValidatorCommissionResponse { - repeated cosmos.base.v1beta1.Coin amount = 1 - [(gogoproto.nullable) = false, (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 (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - repeated cosmos.base.v1beta1.Coin amount = 1 - [(gogoproto.nullable) = false, (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 {} diff --git a/packages/codegen/proto/cosmos/evidence/v1beta1/evidence.proto b/packages/codegen/proto/cosmos/evidence/v1beta1/evidence.proto deleted file mode 100644 index 83f9ec3d..00000000 --- a/packages/codegen/proto/cosmos/evidence/v1beta1/evidence.proto +++ /dev/null @@ -1,22 +0,0 @@ -syntax = "proto3"; -package cosmos.evidence.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/x/evidence/types"; -option (gogoproto.equal_all) = true; - -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 (gogoproto.goproto_stringer) = false; - option (gogoproto.goproto_getters) = false; - option (gogoproto.equal) = false; - - int64 height = 1; - google.protobuf.Timestamp time = 2 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; - int64 power = 3; - string consensus_address = 4 [(cosmos_proto.scalar) = "cosmos.AddressString"]; -} \ No newline at end of file diff --git a/packages/codegen/proto/cosmos/evidence/v1beta1/genesis.proto b/packages/codegen/proto/cosmos/evidence/v1beta1/genesis.proto deleted file mode 100644 index 199f446f..00000000 --- a/packages/codegen/proto/cosmos/evidence/v1beta1/genesis.proto +++ /dev/null @@ -1,12 +0,0 @@ -syntax = "proto3"; -package cosmos.evidence.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/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/packages/codegen/proto/cosmos/evidence/v1beta1/query.proto b/packages/codegen/proto/cosmos/evidence/v1beta1/query.proto deleted file mode 100644 index eda00544..00000000 --- a/packages/codegen/proto/cosmos/evidence/v1beta1/query.proto +++ /dev/null @@ -1,51 +0,0 @@ -syntax = "proto3"; -package cosmos.evidence.v1beta1; - -import "cosmos/base/query/v1beta1/pagination.proto"; -import "gogoproto/gogo.proto"; -import "google/protobuf/any.proto"; -import "google/api/annotations.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/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/{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. - bytes evidence_hash = 1 [(gogoproto.casttype) = "github.com/tendermint/tendermint/libs/bytes.HexBytes"]; -} - -// 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/packages/codegen/proto/cosmos/evidence/v1beta1/tx.proto b/packages/codegen/proto/cosmos/evidence/v1beta1/tx.proto deleted file mode 100644 index 90f62964..00000000 --- a/packages/codegen/proto/cosmos/evidence/v1beta1/tx.proto +++ /dev/null @@ -1,35 +0,0 @@ -syntax = "proto3"; -package cosmos.evidence.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/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"; - -// Msg defines the evidence Msg service. -service Msg { - // 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 (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - string submitter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - google.protobuf.Any evidence = 2 [(cosmos_proto.accepts_interface) = "cosmos.evidence.Evidence"]; -} - -// MsgSubmitEvidenceResponse defines the Msg/SubmitEvidence response type. -message MsgSubmitEvidenceResponse { - // hash defines the hash of the evidence. - bytes hash = 4; -} diff --git a/packages/codegen/proto/cosmos/feegrant/v1beta1/feegrant.proto b/packages/codegen/proto/cosmos/feegrant/v1beta1/feegrant.proto deleted file mode 100644 index 25fec10b..00000000 --- a/packages/codegen/proto/cosmos/feegrant/v1beta1/feegrant.proto +++ /dev/null @@ -1,78 +0,0 @@ -// 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 "google/protobuf/timestamp.proto"; -import "google/protobuf/duration.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/feegrant"; - -// BasicAllowance implements Allowance with a one-time grant of tokens -// that optionally expires. The grantee can use up to SpendLimit to cover fees. -message BasicAllowance { - option (cosmos_proto.implements_interface) = "cosmos.feegrant.FeeAllowanceI"; - - // spend_limit specifies the maximum amount of tokens that can be spent - // by this allowance and will be updated as tokens 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, (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.FeeAllowanceI"; - - // basic specifies a struct of `BasicAllowance` - BasicAllowance basic = 1 [(gogoproto.nullable) = false]; - - // 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]; - - // 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, (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, (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]; -} - -// AllowedMsgAllowance creates allowance only for specified message types. -message AllowedMsgAllowance { - option (gogoproto.goproto_getters) = false; - option (cosmos_proto.implements_interface) = "cosmos.feegrant.FeeAllowanceI"; - - // allowance can be any of basic and periodic fee allowance. - google.protobuf.Any allowance = 1 [(cosmos_proto.accepts_interface) = "cosmos.feegrant.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.FeeAllowanceI"]; -} diff --git a/packages/codegen/proto/cosmos/feegrant/v1beta1/genesis.proto b/packages/codegen/proto/cosmos/feegrant/v1beta1/genesis.proto deleted file mode 100644 index 5b1ac4ca..00000000 --- a/packages/codegen/proto/cosmos/feegrant/v1beta1/genesis.proto +++ /dev/null @@ -1,13 +0,0 @@ -// Since: cosmos-sdk 0.43 -syntax = "proto3"; -package cosmos.feegrant.v1beta1; - -import "gogoproto/gogo.proto"; -import "cosmos/feegrant/v1beta1/feegrant.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/feegrant"; - -// GenesisState contains a set of fee allowances, persisted from the store -message GenesisState { - repeated Grant allowances = 1 [(gogoproto.nullable) = false]; -} diff --git a/packages/codegen/proto/cosmos/feegrant/v1beta1/query.proto b/packages/codegen/proto/cosmos/feegrant/v1beta1/query.proto deleted file mode 100644 index 59c992c9..00000000 --- a/packages/codegen/proto/cosmos/feegrant/v1beta1/query.proto +++ /dev/null @@ -1,79 +0,0 @@ -// 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 = "github.com/cosmos/cosmos-sdk/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 v0.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. -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. -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/packages/codegen/proto/cosmos/feegrant/v1beta1/tx.proto b/packages/codegen/proto/cosmos/feegrant/v1beta1/tx.proto deleted file mode 100644 index 5cef0557..00000000 --- a/packages/codegen/proto/cosmos/feegrant/v1beta1/tx.proto +++ /dev/null @@ -1,53 +0,0 @@ -// 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"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/feegrant"; - -// Msg defines the feegrant msg service. -service Msg { - - // 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"; - - // 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.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"; - - // 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/packages/codegen/proto/cosmos/genutil/v1beta1/genesis.proto b/packages/codegen/proto/cosmos/genutil/v1beta1/genesis.proto deleted file mode 100644 index 958d15fe..00000000 --- a/packages/codegen/proto/cosmos/genutil/v1beta1/genesis.proto +++ /dev/null @@ -1,12 +0,0 @@ -syntax = "proto3"; -package cosmos.genutil.v1beta1; - -import "gogoproto/gogo.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"]; -} diff --git a/packages/codegen/proto/cosmos/gov/v1/genesis.proto b/packages/codegen/proto/cosmos/gov/v1/genesis.proto deleted file mode 100644 index cb44a7f3..00000000 --- a/packages/codegen/proto/cosmos/gov/v1/genesis.proto +++ /dev/null @@ -1,26 +0,0 @@ -// 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; - // params defines all the paramaters of related to deposit. - DepositParams deposit_params = 5; - // params defines all the paramaters of related to voting. - VotingParams voting_params = 6; - // params defines all the paramaters of related to tally. - TallyParams tally_params = 7; -} diff --git a/packages/codegen/proto/cosmos/gov/v1/gov.proto b/packages/codegen/proto/cosmos/gov/v1/gov.proto deleted file mode 100644 index fb014d65..00000000 --- a/packages/codegen/proto/cosmos/gov/v1/gov.proto +++ /dev/null @@ -1,132 +0,0 @@ -// 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"; - -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 { - VoteOption option = 1; - string weight = 2 [(cosmos_proto.scalar) = "cosmos.Dec"]; -} - -// Deposit defines an amount deposited by an account address to an active -// proposal. -message Deposit { - uint64 proposal_id = 1; - string depositor = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - repeated cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false]; -} - -// Proposal defines the core field members of a governance proposal. -message Proposal { - uint64 id = 1; - repeated google.protobuf.Any messages = 2; - 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; - google.protobuf.Timestamp submit_time = 5 [(gogoproto.stdtime) = true]; - google.protobuf.Timestamp deposit_end_time = 6 [(gogoproto.stdtime) = true]; - repeated cosmos.base.v1beta1.Coin total_deposit = 7 [(gogoproto.nullable) = false]; - google.protobuf.Timestamp voting_start_time = 8 [(gogoproto.stdtime) = true]; - google.protobuf.Timestamp voting_end_time = 9 [(gogoproto.stdtime) = true]; - - // metadata is any arbitrary metadata attached to the proposal. - string metadata = 10; -} - -// ProposalStatus enumerates the valid statuses of a proposal. -enum ProposalStatus { - // PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal 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 { - string yes_count = 1 [(cosmos_proto.scalar) = "cosmos.Int"]; - string abstain_count = 2 [(cosmos_proto.scalar) = "cosmos.Int"]; - string no_count = 3 [(cosmos_proto.scalar) = "cosmos.Int"]; - 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 { - uint64 proposal_id = 1; - string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - reserved 3; - repeated WeightedVoteOption options = 4; - - // metadata is any arbitrary metadata to attached to the vote. - string metadata = 5; -} - -// 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.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 { - // Length 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 { - // Minimum percentage of total stake needed to vote for a result to be - // considered valid. - string quorum = 1 [(cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.jsontag) = "quorum,omitempty"]; - - // Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. - string threshold = 2 [(cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.jsontag) = "threshold,omitempty"]; - - // 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", (gogoproto.jsontag) = "veto_threshold,omitempty"]; -} diff --git a/packages/codegen/proto/cosmos/gov/v1/query.proto b/packages/codegen/proto/cosmos/gov/v1/query.proto deleted file mode 100644 index ea46472a..00000000 --- a/packages/codegen/proto/cosmos/gov/v1/query.proto +++ /dev/null @@ -1,183 +0,0 @@ - -// 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 { - // 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"; - } -} - -// 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; -} - -// 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 { - 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 oter 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 defined 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 defined 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 { - // voting_params defines the parameters related to voting. - VotingParams voting_params = 1; - // deposit_params defines the parameters related to deposit. - DepositParams deposit_params = 2; - // tally_params defines the parameters related to tally. - TallyParams tally_params = 3; -} - -// 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 { - 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/packages/codegen/proto/cosmos/gov/v1/tx.proto b/packages/codegen/proto/cosmos/gov/v1/tx.proto deleted file mode 100644 index 7aee9991..00000000 --- a/packages/codegen/proto/cosmos/gov/v1/tx.proto +++ /dev/null @@ -1,100 +0,0 @@ -// 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"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1"; - -// Msg defines the gov Msg service. -service Msg { - // SubmitProposal defines a method to create new proposal given a content. - 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); -} - -// MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary -// proposal Content. -message MsgSubmitProposal { - option (cosmos.msg.v1.signer) = "proposer"; - - repeated google.protobuf.Any messages = 1; - repeated cosmos.base.v1beta1.Coin initial_deposit = 2 [(gogoproto.nullable) = false]; - string proposer = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - // metadata is any arbitrary metadata attached to the proposal. - string metadata = 4; -} - -// MsgSubmitProposalResponse defines the Msg/SubmitProposal response type. -message MsgSubmitProposalResponse { - 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"; - - // 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"; - - uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id"]; - string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - VoteOption option = 3; - 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"; - - uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id"]; - string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - repeated WeightedVoteOption options = 3; - 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"; - - uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id"]; - string depositor = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - repeated cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false]; -} - -// MsgDepositResponse defines the Msg/Deposit response type. -message MsgDepositResponse {} diff --git a/packages/codegen/proto/cosmos/gov/v1beta1/genesis.proto b/packages/codegen/proto/cosmos/gov/v1beta1/genesis.proto deleted file mode 100644 index be9b07e4..00000000 --- a/packages/codegen/proto/cosmos/gov/v1beta1/genesis.proto +++ /dev/null @@ -1,26 +0,0 @@ -syntax = "proto3"; - -package cosmos.gov.v1beta1; - -import "gogoproto/gogo.proto"; -import "cosmos/gov/v1beta1/gov.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]; - // votes defines all the votes present at genesis. - repeated Vote votes = 3 [(gogoproto.castrepeated) = "Votes", (gogoproto.nullable) = false]; - // proposals defines all the proposals present at genesis. - repeated Proposal proposals = 4 [(gogoproto.castrepeated) = "Proposals", (gogoproto.nullable) = false]; - // params defines all the paramaters of related to deposit. - DepositParams deposit_params = 5 [(gogoproto.nullable) = false]; - // params defines all the paramaters of related to voting. - VotingParams voting_params = 6 [(gogoproto.nullable) = false]; - // params defines all the paramaters of related to tally. - TallyParams tally_params = 7 [(gogoproto.nullable) = false]; -} diff --git a/packages/codegen/proto/cosmos/gov/v1beta1/gov.proto b/packages/codegen/proto/cosmos/gov/v1beta1/gov.proto deleted file mode 100644 index c23dd925..00000000 --- a/packages/codegen/proto/cosmos/gov/v1beta1/gov.proto +++ /dev/null @@ -1,201 +0,0 @@ -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"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"; - -option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.stringer_all) = false; -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 { - VoteOption option = 1; - string weight = 2 [ - (cosmos_proto.scalar) = "cosmos.Dec", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (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 (gogoproto.equal) = true; - - string title = 1; - 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; - - uint64 proposal_id = 1; - string depositor = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - repeated cosmos.base.v1beta1.Coin amount = 3 - [(gogoproto.nullable) = false, (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; - - uint64 proposal_id = 1; - google.protobuf.Any content = 2 [(cosmos_proto.accepts_interface) = "cosmos.gov.v1beta1.Content"]; - 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]; - google.protobuf.Timestamp submit_time = 5 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; - google.protobuf.Timestamp deposit_end_time = 6 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; - repeated cosmos.base.v1beta1.Coin total_deposit = 7 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; - google.protobuf.Timestamp voting_start_time = 8 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; - google.protobuf.Timestamp voting_end_time = 9 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; -} - -// ProposalStatus enumerates the valid statuses of a proposal. -enum ProposalStatus { - option (gogoproto.goproto_enum_prefix) = false; - - // PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal 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; - - string yes = 1 [ - (cosmos_proto.scalar) = "cosmos.Int", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.nullable) = false - ]; - string abstain = 2 [ - (cosmos_proto.scalar) = "cosmos.Int", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.nullable) = false - ]; - string no = 3 [ - (cosmos_proto.scalar) = "cosmos.Int", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.nullable) = false - ]; - 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.goproto_stringer) = false; - option (gogoproto.equal) = false; - - uint64 proposal_id = 1 [(gogoproto.jsontag) = "id"]; - 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]; - // Since: cosmos-sdk 0.43 - repeated WeightedVoteOption options = 4 [(gogoproto.nullable) = false]; -} - -// 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 { - // Length 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/packages/codegen/proto/cosmos/gov/v1beta1/query.proto b/packages/codegen/proto/cosmos/gov/v1beta1/query.proto deleted file mode 100644 index e8837fd2..00000000 --- a/packages/codegen/proto/cosmos/gov/v1beta1/query.proto +++ /dev/null @@ -1,191 +0,0 @@ -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"; - -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]; -} - -// 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 { - repeated Proposal proposals = 1 [(gogoproto.nullable) = false]; - - // 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 oter 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 defined the queried vote. - Vote vote = 1 [(gogoproto.nullable) = false]; -} - -// 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 defined the queried votes. - repeated Vote votes = 1 [(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 { - // 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]; - // deposit_params defines the parameters related to deposit. - DepositParams deposit_params = 2 [(gogoproto.nullable) = false]; - // tally_params defines the parameters related to tally. - TallyParams tally_params = 3 [(gogoproto.nullable) = false]; -} - -// 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]; -} - -// 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 { - repeated Deposit deposits = 1 [(gogoproto.nullable) = false]; - - // 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]; -} diff --git a/packages/codegen/proto/cosmos/gov/v1beta1/tx.proto b/packages/codegen/proto/cosmos/gov/v1beta1/tx.proto deleted file mode 100644 index 6b2f1689..00000000 --- a/packages/codegen/proto/cosmos/gov/v1beta1/tx.proto +++ /dev/null @@ -1,106 +0,0 @@ -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"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"; - -// Msg defines the bank Msg service. -service Msg { - // 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 (gogoproto.equal) = false; - option (gogoproto.goproto_stringer) = false; - option (gogoproto.stringer) = false; - option (gogoproto.goproto_getters) = false; - - google.protobuf.Any content = 1 [(cosmos_proto.accepts_interface) = "cosmos.gov.v1beta1.Content"]; - repeated cosmos.base.v1beta1.Coin initial_deposit = 2 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; - string proposer = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; -} - -// MsgSubmitProposalResponse defines the Msg/SubmitProposal response type. -message MsgSubmitProposalResponse { - uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id"]; -} - -// MsgVote defines a message to cast a vote. -message MsgVote { - option (cosmos.msg.v1.signer) = "voter"; - - option (gogoproto.equal) = false; - option (gogoproto.goproto_stringer) = false; - option (gogoproto.stringer) = false; - option (gogoproto.goproto_getters) = false; - - uint64 proposal_id = 1; - string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - 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 (gogoproto.equal) = false; - option (gogoproto.goproto_stringer) = false; - option (gogoproto.stringer) = false; - option (gogoproto.goproto_getters) = false; - - uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id"]; - string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - repeated WeightedVoteOption options = 3 [(gogoproto.nullable) = false]; -} - -// 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 (gogoproto.equal) = false; - option (gogoproto.goproto_stringer) = false; - option (gogoproto.stringer) = false; - option (gogoproto.goproto_getters) = false; - - uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id"]; - string depositor = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - repeated cosmos.base.v1beta1.Coin amount = 3 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; -} - -// MsgDepositResponse defines the Msg/Deposit response type. -message MsgDepositResponse {} diff --git a/packages/codegen/proto/cosmos/group/v1/events.proto b/packages/codegen/proto/cosmos/group/v1/events.proto deleted file mode 100644 index e8907243..00000000 --- a/packages/codegen/proto/cosmos/group/v1/events.proto +++ /dev/null @@ -1,77 +0,0 @@ -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; -} - -// 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/packages/codegen/proto/cosmos/group/v1/genesis.proto b/packages/codegen/proto/cosmos/group/v1/genesis.proto deleted file mode 100644 index 49655ad2..00000000 --- a/packages/codegen/proto/cosmos/group/v1/genesis.proto +++ /dev/null @@ -1,38 +0,0 @@ -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/packages/codegen/proto/cosmos/group/v1/query.proto b/packages/codegen/proto/cosmos/group/v1/query.proto deleted file mode 100644 index 1690d5b7..00000000 --- a/packages/codegen/proto/cosmos/group/v1/query.proto +++ /dev/null @@ -1,308 +0,0 @@ -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"; - -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 - 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}"; - }; - - // GroupsByAdmin 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. - 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 queries the tally of a proposal votes. - rpc TallyResult(QueryTallyResultRequest) returns (QueryTallyResultResponse) { - option (google.api.http).get = "/cosmos/group/v1/proposals/{proposal_id}/tally"; - }; -} - -// 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 for 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 for 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]; -} diff --git a/packages/codegen/proto/cosmos/group/v1/tx.proto b/packages/codegen/proto/cosmos/group/v1/tx.proto deleted file mode 100644 index 9fb0caa1..00000000 --- a/packages/codegen/proto/cosmos/group/v1/tx.proto +++ /dev/null @@ -1,364 +0,0 @@ -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"; - -// Msg is the cosmos.group.v1 Msg service. -service Msg { - - // 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 aborts 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"; - // admin is the account address of the group admin. - string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - - // members defines the group members. - repeated Member members = 2 [(gogoproto.nullable) = false]; - - // 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"; - - // 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 Member member_updates = 3 [(gogoproto.nullable) = false]; -} - -// MsgUpdateGroupMembersResponse is the Msg/UpdateGroupMembers response type. -message MsgUpdateGroupMembersResponse {} - -// MsgUpdateGroupAdmin is the Msg/UpdateGroupAdmin request type. -message MsgUpdateGroupAdmin { - option (cosmos.msg.v1.signer) = "admin"; - - // 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"; - - // 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 (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.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"; - - // admin is the account address of the group admin. - string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - - // address is the account address of the group policy. - string address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - - // new_admin is the new group policy admin. - string new_admin = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; -} - -// MsgCreateGroupWithPolicy is the Msg/CreateGroupWithPolicy request type. -message 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 Member members = 2 [(gogoproto.nullable) = false]; - - // 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.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"]; -} - -// MsgUpdateGroupPolicyAdminResponse is the Msg/UpdateGroupPolicyAdmin response type. -message MsgUpdateGroupPolicyAdminResponse {} - -// MsgUpdateGroupPolicyDecisionPolicy is the Msg/UpdateGroupPolicyDecisionPolicy request type. -message MsgUpdateGroupPolicyDecisionPolicy { - option (cosmos.msg.v1.signer) = "admin"; - - option (gogoproto.goproto_getters) = false; - - // admin is the account address of the group admin. - string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - - // address is the account address of group policy. - string 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.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"; - - // admin is the account address of the group admin. - string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - - // address is the account address of group policy. - string address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - - // metadata is the updated group policy metadata. - 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 (gogoproto.goproto_getters) = false; - - // address is the account address of group policy. - string 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 to 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; -} - -// 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 { - // 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"; - - // 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 to 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) = "signer"; - - // proposal is the unique ID of the proposal. - uint64 proposal_id = 1; - - // signer is the account address used to execute the proposal. - string signer = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; -} - -// MsgExecResponse is the Msg/Exec request type. -message MsgExecResponse {} - -// MsgLeaveGroup is the Msg/LeaveGroup request type. -message MsgLeaveGroup { - option (cosmos.msg.v1.signer) = "address"; - - // 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/packages/codegen/proto/cosmos/group/v1/types.proto b/packages/codegen/proto/cosmos/group/v1/types.proto deleted file mode 100644 index 604fe0ae..00000000 --- a/packages/codegen/proto/cosmos/group/v1/types.proto +++ /dev/null @@ -1,308 +0,0 @@ -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"; - -// Member represents a group member with an account address, -// non-zero weight and metadata. -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 to 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, (gogoproto.stdtime) = true]; -} - -// Members defines a repeated slice of Member objects. -message Members { - - // members is the list of members. - repeated Member members = 1 [(gogoproto.nullable) = false]; -} - -// ThresholdDecisionPolicy implements the DecisionPolicy interface -message ThresholdDecisionPolicy { - option (cosmos_proto.implements_interface) = "cosmos.group.DecisionPolicy"; - - // 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 implements the DecisionPolicy interface -message PercentageDecisionPolicy { - option (cosmos_proto.implements_interface) = "cosmos.group.DecisionPolicy"; - - // percentage is the minimum percentage 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]; - - // 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]; -} - -// VoteOption enumerates the valid vote options for a given proposal. -enum VoteOption { - option (gogoproto.goproto_enum_prefix) = false; - - // 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; -} - -// -// 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. - 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, (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 to attached to the group policy. - 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.DecisionPolicy"]; - - // created_at is a timestamp specifying when a group policy was created. - google.protobuf.Timestamp created_at = 7 [(gogoproto.nullable) = false, (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; - - // address is the account address of group policy. - string address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - - // metadata is any arbitrary metadata to attached to the proposal. - 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, (gogoproto.stdtime) = true]; - - // group_version tracks the version of the group that this proposal corresponds to. - // When group membership is changed, existing proposals from previous group versions will become invalid. - uint64 group_version = 6; - - // group_policy_version tracks the version of the group policy that this proposal corresponds to. - // When a decision policy is changed, existing proposals from previous policy versions will become invalid. - 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; - - // result is the final result based on the votes and election rule. Initial value is unfinalized. - // The result is persisted so that clients can always rely on this state and not have to replicate the logic. - ProposalResult result = 9; - - // final_tally_result contains the sums of all weighted votes for this - // proposal for each vote option, after tallying. When querying a proposal - // via gRPC, this field is not populated until the proposal's voting period - // has ended. - TallyResult final_tally_result = 10 [(gogoproto.nullable) = false]; - - // voting_period_end is the timestamp before which voting must be done. - // Unless a successfull 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`, as well - // as `status` and `result` fields will be accordingly updated. - google.protobuf.Timestamp voting_period_end = 11 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; - - // executor_result is the final result based on the votes and election rule. Initial value is NotRun. - ProposalExecutorResult executor_result = 12; - - // messages is a list of Msgs that will be executed if the proposal passes. - repeated google.protobuf.Any messages = 13; -} - -// 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 persisted. - PROPOSAL_STATUS_SUBMITTED = 1; - - // Final status of a proposal when the final tally was executed. - PROPOSAL_STATUS_CLOSED = 2; - - // Final status of a proposal when the group was modified before the final tally. - PROPOSAL_STATUS_ABORTED = 3; - - // A proposal can be deleted before the voting start time by the owner. When this happens the final status - // is Withdrawn. - PROPOSAL_STATUS_WITHDRAWN = 4; -} - -// ProposalResult defines types of proposal results. -enum ProposalResult { - option (gogoproto.goproto_enum_prefix) = false; - - // An empty value is invalid and not allowed - PROPOSAL_RESULT_UNSPECIFIED = 0; - - // Until a final tally has happened the status is unfinalized - PROPOSAL_RESULT_UNFINALIZED = 1; - - // Final result of the tally - PROPOSAL_RESULT_ACCEPTED = 2; - - // Final result of the tally - PROPOSAL_RESULT_REJECTED = 3; -} - -// 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 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. -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 to attached to the vote. - string metadata = 4; - - // submit_time is the timestamp when the vote was submitted. - google.protobuf.Timestamp submit_time = 5 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; -} diff --git a/packages/codegen/proto/cosmos/mint/v1beta1/genesis.proto b/packages/codegen/proto/cosmos/mint/v1beta1/genesis.proto deleted file mode 100644 index 4e783fb5..00000000 --- a/packages/codegen/proto/cosmos/mint/v1beta1/genesis.proto +++ /dev/null @@ -1,16 +0,0 @@ -syntax = "proto3"; -package cosmos.mint.v1beta1; - -import "gogoproto/gogo.proto"; -import "cosmos/mint/v1beta1/mint.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]; - - // params defines all the paramaters of the module. - Params params = 2 [(gogoproto.nullable) = false]; -} diff --git a/packages/codegen/proto/cosmos/mint/v1beta1/mint.proto b/packages/codegen/proto/cosmos/mint/v1beta1/mint.proto deleted file mode 100644 index 9cfe2b76..00000000 --- a/packages/codegen/proto/cosmos/mint/v1beta1/mint.proto +++ /dev/null @@ -1,57 +0,0 @@ -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"; - -// 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 holds parameters for the mint module. -message Params { - option (gogoproto.goproto_stringer) = false; - - // 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 - ]; - // maximum inflation rate - string inflation_max = 3 [ - (cosmos_proto.scalar) = "cosmos.Dec", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false - ]; - // minimum inflation rate - string inflation_min = 4 [ - (cosmos_proto.scalar) = "cosmos.Dec", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false - ]; - // 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 - ]; - // expected blocks per year - uint64 blocks_per_year = 6; -} diff --git a/packages/codegen/proto/cosmos/mint/v1beta1/query.proto b/packages/codegen/proto/cosmos/mint/v1beta1/query.proto deleted file mode 100644 index acd341d7..00000000 --- a/packages/codegen/proto/cosmos/mint/v1beta1/query.proto +++ /dev/null @@ -1,57 +0,0 @@ -syntax = "proto3"; -package cosmos.mint.v1beta1; - -import "gogoproto/gogo.proto"; -import "google/api/annotations.proto"; -import "cosmos/mint/v1beta1/mint.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]; -} - -// 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]; -} - -// 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]; -} diff --git a/packages/codegen/proto/cosmos/msg/v1/msg.proto b/packages/codegen/proto/cosmos/msg/v1/msg.proto deleted file mode 100644 index 89bdf312..00000000 --- a/packages/codegen/proto/cosmos/msg/v1/msg.proto +++ /dev/null @@ -1,22 +0,0 @@ -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.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; -} \ No newline at end of file diff --git a/packages/codegen/proto/cosmos/nft/v1beta1/event.proto b/packages/codegen/proto/cosmos/nft/v1beta1/event.proto deleted file mode 100644 index 96964f08..00000000 --- a/packages/codegen/proto/cosmos/nft/v1beta1/event.proto +++ /dev/null @@ -1,26 +0,0 @@ -syntax = "proto3"; -package cosmos.nft.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/x/nft"; - -// EventSend is emitted on Msg/Send -message EventSend { - string class_id = 1; - string id = 2; - string sender = 3; - string receiver = 4; -} - -// EventMint is emitted on Mint -message EventMint { - string class_id = 1; - string id = 2; - string owner = 3; -} - -// EventBurn is emitted on Burn -message EventBurn { - string class_id = 1; - string id = 2; - string owner = 3; -} diff --git a/packages/codegen/proto/cosmos/nft/v1beta1/genesis.proto b/packages/codegen/proto/cosmos/nft/v1beta1/genesis.proto deleted file mode 100644 index 6f36ed34..00000000 --- a/packages/codegen/proto/cosmos/nft/v1beta1/genesis.proto +++ /dev/null @@ -1,22 +0,0 @@ -syntax = "proto3"; -package cosmos.nft.v1beta1; - -import "cosmos/nft/v1beta1/nft.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/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; - 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/packages/codegen/proto/cosmos/nft/v1beta1/nft.proto b/packages/codegen/proto/cosmos/nft/v1beta1/nft.proto deleted file mode 100644 index b1241260..00000000 --- a/packages/codegen/proto/cosmos/nft/v1beta1/nft.proto +++ /dev/null @@ -1,48 +0,0 @@ -syntax = "proto3"; -package cosmos.nft.v1beta1; - -import "google/protobuf/any.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/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/packages/codegen/proto/cosmos/nft/v1beta1/query.proto b/packages/codegen/proto/cosmos/nft/v1beta1/query.proto deleted file mode 100644 index c1d8070f..00000000 --- a/packages/codegen/proto/cosmos/nft/v1beta1/query.proto +++ /dev/null @@ -1,125 +0,0 @@ -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 = "github.com/cosmos/cosmos-sdk/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 { - string class_id = 1; - string owner = 2; -} - -// QueryBalanceResponse is the response type for the Query/Balance RPC method -message QueryBalanceResponse { - uint64 amount = 1; -} - -// QueryOwnerRequest is the request type for the Query/Owner RPC method -message QueryOwnerRequest { - string class_id = 1; - string id = 2; -} - -// QueryOwnerResponse is the response type for the Query/Owner RPC method -message QueryOwnerResponse { - string owner = 1; -} - -// QuerySupplyRequest is the request type for the Query/Supply RPC method -message QuerySupplyRequest { - string class_id = 1; -} - -// QuerySupplyResponse is the response type for the Query/Supply RPC method -message QuerySupplyResponse { - uint64 amount = 1; -} - -// QueryNFTstRequest is the request type for the Query/NFTs RPC method -message QueryNFTsRequest { - string class_id = 1; - string owner = 2; - cosmos.base.query.v1beta1.PageRequest pagination = 3; -} - -// QueryNFTsResponse is the response type for the Query/NFTs RPC methods -message QueryNFTsResponse { - repeated cosmos.nft.v1beta1.NFT nfts = 1; - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// QueryNFTRequest is the request type for the Query/NFT RPC method -message QueryNFTRequest { - string class_id = 1; - string id = 2; -} - -// QueryNFTResponse is the response type for the Query/NFT RPC method -message QueryNFTResponse { - cosmos.nft.v1beta1.NFT nft = 1; -} - -// QueryClassRequest is the request type for the Query/Class RPC method -message QueryClassRequest { - string class_id = 1; -} - -// QueryClassResponse is the response type for the Query/Class RPC method -message QueryClassResponse { - 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 { - repeated cosmos.nft.v1beta1.Class classes = 1; - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} diff --git a/packages/codegen/proto/cosmos/nft/v1beta1/tx.proto b/packages/codegen/proto/cosmos/nft/v1beta1/tx.proto deleted file mode 100644 index 95b402ce..00000000 --- a/packages/codegen/proto/cosmos/nft/v1beta1/tx.proto +++ /dev/null @@ -1,30 +0,0 @@ -syntax = "proto3"; -package cosmos.nft.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/x/nft"; - -import "cosmos/msg/v1/msg.proto"; - -// Msg defines the nft Msg service. -service Msg { - // 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; - - // receiver is the receiver address of nft - string receiver = 4; -} -// MsgSendResponse defines the Msg/Send response type. -message MsgSendResponse {} \ No newline at end of file diff --git a/packages/codegen/proto/cosmos/orm/v1/orm.proto b/packages/codegen/proto/cosmos/orm/v1/orm.proto deleted file mode 100644 index abfbbd4f..00000000 --- a/packages/codegen/proto/cosmos/orm/v1/orm.proto +++ /dev/null @@ -1,104 +0,0 @@ -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 and google.protobuf.Duration are 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 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/packages/codegen/proto/cosmos/orm/v1alpha1/schema.proto b/packages/codegen/proto/cosmos/orm/v1alpha1/schema.proto deleted file mode 100644 index ab713340..00000000 --- a/packages/codegen/proto/cosmos/orm/v1alpha1/schema.proto +++ /dev/null @@ -1,76 +0,0 @@ -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 - // KV-storage where primary key entries are stored in merkle-tree - // backed commitment storage and indexes and seqs are stored in - // fast index storage. Note that the Cosmos SDK before store/v2alpha1 - // does not support this. - 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; - - // STORAGE_TYPE_INDEX indicates persistent storage which is not backed - // by a merkle-tree and won't affect the app hash. Note that the Cosmos SDK - // before store/v2alpha1 does not support this. - STORAGE_TYPE_INDEX = 3; - - // STORAGE_TYPE_INDEX indicates persistent storage which is backed by - // a merkle-tree. With this type of storage, both primary and index keys - // will affect the app hash and this is generally less efficient - // than using STORAGE_TYPE_DEFAULT_UNSPECIFIED which separates index - // keys into index storage. Note that modules built with the - // Cosmos SDK before store/v2alpha1 must specify STORAGE_TYPE_COMMITMENT - // instead of STORAGE_TYPE_DEFAULT_UNSPECIFIED or STORAGE_TYPE_INDEX - // because this is the only type of persistent storage available. - STORAGE_TYPE_COMMITMENT = 4; -} diff --git a/packages/codegen/proto/cosmos/params/v1beta1/params.proto b/packages/codegen/proto/cosmos/params/v1beta1/params.proto deleted file mode 100644 index e5aabfec..00000000 --- a/packages/codegen/proto/cosmos/params/v1beta1/params.proto +++ /dev/null @@ -1,29 +0,0 @@ -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"; - -// ParameterChangeProposal defines a proposal to change one or more parameters. -message ParameterChangeProposal { - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = false; - option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; - - string title = 1; - string description = 2; - repeated ParamChange changes = 3 [(gogoproto.nullable) = false]; -} - -// ParamChange defines an individual parameter change, for use in -// ParameterChangeProposal. -message ParamChange { - option (gogoproto.goproto_stringer) = false; - - string subspace = 1; - string key = 2; - string value = 3; -} diff --git a/packages/codegen/proto/cosmos/params/v1beta1/query.proto b/packages/codegen/proto/cosmos/params/v1beta1/query.proto deleted file mode 100644 index 3b1c9a76..00000000 --- a/packages/codegen/proto/cosmos/params/v1beta1/query.proto +++ /dev/null @@ -1,54 +0,0 @@ -syntax = "proto3"; -package cosmos.params.v1beta1; - -import "gogoproto/gogo.proto"; -import "google/api/annotations.proto"; -import "cosmos/params/v1beta1/params.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. - 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]; -} - -// QuerySubspacesRequest defines a request type for querying for all registered -// subspaces and all keys for a subspace. -message QuerySubspacesRequest {} - -// QuerySubspacesResponse defines the response types for querying for all -// registered subspaces and all keys for a subspace. -message QuerySubspacesResponse { - repeated Subspace subspaces = 1; -} - -// Subspace defines a parameter subspace name and all the keys that exist for -// the subspace. -message Subspace { - string subspace = 1; - repeated string keys = 2; -} diff --git a/packages/codegen/proto/cosmos/slashing/v1beta1/genesis.proto b/packages/codegen/proto/cosmos/slashing/v1beta1/genesis.proto deleted file mode 100644 index 312d56aa..00000000 --- a/packages/codegen/proto/cosmos/slashing/v1beta1/genesis.proto +++ /dev/null @@ -1,47 +0,0 @@ -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"; - -// GenesisState defines the slashing module's genesis state. -message GenesisState { - // params defines all the paramaters of related to deposit. - Params params = 1 [(gogoproto.nullable) = false]; - - // signing_infos represents a map between validator addresses and their - // signing infos. - repeated SigningInfo signing_infos = 2 [(gogoproto.nullable) = false]; - - // missed_blocks represents a map between validator addresses and their - // missed blocks. - repeated ValidatorMissedBlocks missed_blocks = 3 [(gogoproto.nullable) = false]; -} - -// SigningInfo stores validator signing info of corresponding address. -message SigningInfo { - // address is the validator address. - string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - // validator_signing_info represents the signing info of this validator. - ValidatorSigningInfo validator_signing_info = 2 [(gogoproto.nullable) = false]; -} - -// ValidatorMissedBlocks contains array of missed blocks of corresponding -// address. -message ValidatorMissedBlocks { - // address is the validator address. - string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - // missed_blocks is an array of missed blocks by the validator. - repeated MissedBlock missed_blocks = 2 [(gogoproto.nullable) = false]; -} - -// 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/packages/codegen/proto/cosmos/slashing/v1beta1/query.proto b/packages/codegen/proto/cosmos/slashing/v1beta1/query.proto deleted file mode 100644 index f742c1f8..00000000 --- a/packages/codegen/proto/cosmos/slashing/v1beta1/query.proto +++ /dev/null @@ -1,64 +0,0 @@ -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"; - -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]; -} - -// 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]; -} - -// 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]; - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} diff --git a/packages/codegen/proto/cosmos/slashing/v1beta1/slashing.proto b/packages/codegen/proto/cosmos/slashing/v1beta1/slashing.proto deleted file mode 100644 index 0aa9f61f..00000000 --- a/packages/codegen/proto/cosmos/slashing/v1beta1/slashing.proto +++ /dev/null @@ -1,45 +0,0 @@ -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"; - -// ValidatorSigningInfo defines a validator's signing info for monitoring their -// liveness activity. -message ValidatorSigningInfo { - option (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = false; - - string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - // Height at which validator was first a candidate OR was unjailed - int64 start_height = 2; - // Index which is incremented each time the validator was a bonded - // in a block and may have signed a precommit or not. This in conjunction with the - // `SignedBlocksWindow` param determines the index in the `MissedBlocksBitArray`. - 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]; - // 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 misbehiavor. - bool tombstoned = 5; - // A counter kept to avoid unnecessary array reads. - // Note that `Sum(MissedBlocksBitArray)` always equals `MissedBlocksCounter`. - int64 missed_blocks_counter = 6; -} - -// Params represents the parameters used for by the slashing module. -message Params { - int64 signed_blocks_window = 1; - bytes min_signed_per_window = 2 - [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false]; - google.protobuf.Duration downtime_jail_duration = 3 [(gogoproto.nullable) = false, (gogoproto.stdduration) = true]; - bytes slash_fraction_double_sign = 4 - [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false]; - bytes slash_fraction_downtime = 5 - [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false]; -} diff --git a/packages/codegen/proto/cosmos/slashing/v1beta1/tx.proto b/packages/codegen/proto/cosmos/slashing/v1beta1/tx.proto deleted file mode 100644 index 7c90304b..00000000 --- a/packages/codegen/proto/cosmos/slashing/v1beta1/tx.proto +++ /dev/null @@ -1,30 +0,0 @@ -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_proto/cosmos.proto"; -import "cosmos/msg/v1/msg.proto"; - -// Msg defines the slashing Msg service. -service Msg { - // 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); -} - -// MsgUnjail defines the Msg/Unjail request type -message MsgUnjail { - option (cosmos.msg.v1.signer) = "validator_addr"; - - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = true; - - string validator_addr = 1 [(cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "address"]; -} - -// MsgUnjailResponse defines the Msg/Unjail response type -message MsgUnjailResponse {} diff --git a/packages/codegen/proto/cosmos/staking/v1beta1/authz.proto b/packages/codegen/proto/cosmos/staking/v1beta1/authz.proto deleted file mode 100644 index 981da1db..00000000 --- a/packages/codegen/proto/cosmos/staking/v1beta1/authz.proto +++ /dev/null @@ -1,47 +0,0 @@ -syntax = "proto3"; -package cosmos.staking.v1beta1; - -import "gogoproto/gogo.proto"; -import "cosmos_proto/cosmos.proto"; -import "cosmos/base/v1beta1/coin.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.Authorization"; - - // 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; - // deny_list specifies list of validator addresses to whom grantee can not delegate tokens. - Validators deny_list = 3; - } - // 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; -} diff --git a/packages/codegen/proto/cosmos/staking/v1beta1/genesis.proto b/packages/codegen/proto/cosmos/staking/v1beta1/genesis.proto deleted file mode 100644 index bf3c298e..00000000 --- a/packages/codegen/proto/cosmos/staking/v1beta1/genesis.proto +++ /dev/null @@ -1,49 +0,0 @@ -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"; - -// GenesisState defines the staking module's genesis state. -message GenesisState { - // params defines all the paramaters of related to deposit. - Params params = 1 [(gogoproto.nullable) = false]; - - // 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]; - - // 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]; - - // delegations defines the validator set at genesis. - repeated Validator validators = 4 [(gogoproto.nullable) = false]; - - // delegations defines the delegations active at genesis. - repeated Delegation delegations = 5 [(gogoproto.nullable) = false]; - - // unbonding_delegations defines the unbonding delegations active at genesis. - repeated UnbondingDelegation unbonding_delegations = 6 [(gogoproto.nullable) = false]; - - // redelegations defines the redelegations active at genesis. - repeated Redelegation redelegations = 7 [(gogoproto.nullable) = false]; - - 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/packages/codegen/proto/cosmos/staking/v1beta1/query.proto b/packages/codegen/proto/cosmos/staking/v1beta1/query.proto deleted file mode 100644 index 02469232..00000000 --- a/packages/codegen/proto/cosmos/staking/v1beta1/query.proto +++ /dev/null @@ -1,349 +0,0 @@ -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"; - -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. - rpc Validators(QueryValidatorsRequest) returns (QueryValidatorsResponse) { - option (google.api.http).get = "/cosmos/staking/v1beta1/validators"; - } - - // Validator queries validator info for given validator address. - rpc Validator(QueryValidatorRequest) returns (QueryValidatorResponse) { - option (google.api.http).get = "/cosmos/staking/v1beta1/validators/{validator_addr}"; - } - - // ValidatorDelegations queries delegate info for given validator. - rpc ValidatorDelegations(QueryValidatorDelegationsRequest) returns (QueryValidatorDelegationsResponse) { - option (google.api.http).get = "/cosmos/staking/v1beta1/validators/{validator_addr}/delegations"; - } - - // ValidatorUnbondingDelegations queries unbonding delegations of a validator. - rpc ValidatorUnbondingDelegations(QueryValidatorUnbondingDelegationsRequest) - returns (QueryValidatorUnbondingDelegationsResponse) { - 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 (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 (google.api.http).get = "/cosmos/staking/v1beta1/validators/{validator_addr}/delegations/" - "{delegator_addr}/unbonding_delegation"; - } - - // DelegatorDelegations queries all delegations of a given delegator address. - rpc DelegatorDelegations(QueryDelegatorDelegationsRequest) returns (QueryDelegatorDelegationsResponse) { - option (google.api.http).get = "/cosmos/staking/v1beta1/delegations/{delegator_addr}"; - } - - // DelegatorUnbondingDelegations queries all unbonding delegations of a given - // delegator address. - rpc DelegatorUnbondingDelegations(QueryDelegatorUnbondingDelegationsRequest) - returns (QueryDelegatorUnbondingDelegationsResponse) { - option (google.api.http).get = "/cosmos/staking/v1beta1/delegators/" - "{delegator_addr}/unbonding_delegations"; - } - - // Redelegations queries redelegations of given address. - rpc Redelegations(QueryRedelegationsRequest) returns (QueryRedelegationsResponse) { - option (google.api.http).get = "/cosmos/staking/v1beta1/delegators/{delegator_addr}/redelegations"; - } - - // DelegatorValidators queries all validators info for given delegator - // address. - rpc DelegatorValidators(QueryDelegatorValidatorsRequest) returns (QueryDelegatorValidatorsResponse) { - 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 (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 (google.api.http).get = "/cosmos/staking/v1beta1/historical_info/{height}"; - } - - // Pool queries the pool info. - rpc Pool(QueryPoolRequest) returns (QueryPoolResponse) { - option (google.api.http).get = "/cosmos/staking/v1beta1/pool"; - } - - // Parameters queries the staking parameters. - rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { - 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]; - - // 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 the validator info. - Validator validator = 1 [(gogoproto.nullable) = false]; -} - -// 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, (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]; - - // 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]; -} - -// 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]; - - // 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]; - - // 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]; - - // 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 the validators' info of a delegator. - repeated Validator validators = 1 [(gogoproto.nullable) = false]; - - // 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 the validator info. - Validator validator = 1 [(gogoproto.nullable) = false]; -} - -// 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]; -} - -// 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]; -} diff --git a/packages/codegen/proto/cosmos/staking/v1beta1/staking.proto b/packages/codegen/proto/cosmos/staking/v1beta1/staking.proto deleted file mode 100644 index dcf2645f..00000000 --- a/packages/codegen/proto/cosmos/staking/v1beta1/staking.proto +++ /dev/null @@ -1,358 +0,0 @@ -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 "tendermint/types/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]; - repeated Validator valset = 2 [(gogoproto.nullable) = false]; -} - -// CommissionRates defines the initial commission rates to be used for creating -// a validator. -message CommissionRates { - option (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = false; - - // 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 - ]; - // 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 - ]; - // 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 - ]; -} - -// Commission defines commission parameters for a given validator. -message Commission { - option (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = false; - - // commission_rates defines the initial commission rates to be used for creating a validator. - CommissionRates commission_rates = 1 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; - // update_time is the last time the commission rate was changed. - google.protobuf.Timestamp update_time = 2 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; -} - -// Description defines a validator description. -message Description { - option (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = false; - - // 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_stringer) = 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]; - // 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, (gogoproto.stdtime) = true]; - // commission defines the commission parameters. - Commission commission = 10 [(gogoproto.nullable) = false]; - // min_self_delegation is the validator's self declared minimum self delegation. - string min_self_delegation = 11 [ - (cosmos_proto.scalar) = "cosmos.Int", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.nullable) = false - ]; -} - -// 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 { - option (gogoproto.goproto_stringer) = false; - option (gogoproto.stringer) = true; - - 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; - option (gogoproto.goproto_stringer) = 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]; -} - -// 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; - option (gogoproto.goproto_stringer) = 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]; -} - -// 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; - option (gogoproto.goproto_stringer) = 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; - option (gogoproto.goproto_stringer) = 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]; // unbonding delegation entries -} - -// UnbondingDelegationEntry defines an unbonding object with relevant metadata. -message UnbondingDelegationEntry { - option (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = false; - - // 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, (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 - ]; -} - -// RedelegationEntry defines a redelegation object with relevant metadata. -message RedelegationEntry { - option (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = false; - - // 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, (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 - ]; -} - -// 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; - option (gogoproto.goproto_stringer) = 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]; // redelegation entries -} - -// Params defines the parameters for the staking module. -message Params { - option (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = false; - - // unbonding_time is the time duration of unbonding. - google.protobuf.Duration unbonding_time = 1 [(gogoproto.nullable) = false, (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 - ]; -} - -// 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; - option (gogoproto.goproto_stringer) = false; - - Delegation delegation = 1 [(gogoproto.nullable) = false]; - - cosmos.base.v1beta1.Coin balance = 2 [(gogoproto.nullable) = false]; -} - -// 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]; - 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]; - repeated RedelegationEntryResponse entries = 2 [(gogoproto.nullable) = false]; -} - -// 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" - ]; - 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" - ]; -} diff --git a/packages/codegen/proto/cosmos/staking/v1beta1/tx.proto b/packages/codegen/proto/cosmos/staking/v1beta1/tx.proto deleted file mode 100644 index 6c8d40a7..00000000 --- a/packages/codegen/proto/cosmos/staking/v1beta1/tx.proto +++ /dev/null @@ -1,138 +0,0 @@ -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"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/staking/types"; - -// Msg defines the staking Msg service. -service Msg { - // 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); -} - -// MsgCreateValidator defines a SDK message for creating a new validator. -message MsgCreateValidator { - // NOTE(fdymylja): this is a particular case in which - // if validator_address == delegator_address then only one - // is expected to sign, otherwise both are. - option (cosmos.msg.v1.signer) = "delegator_address"; - option (cosmos.msg.v1.signer) = "validator_address"; - - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - Description description = 1 [(gogoproto.nullable) = false]; - CommissionRates commission = 2 [(gogoproto.nullable) = false]; - string min_self_delegation = 3 [ - (cosmos_proto.scalar) = "cosmos.Int", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.nullable) = false - ]; - string delegator_address = 4 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - string validator_address = 5 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - google.protobuf.Any pubkey = 6 [(cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey"]; - cosmos.base.v1beta1.Coin value = 7 [(gogoproto.nullable) = false]; -} - -// 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 (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - Description description = 1 [(gogoproto.nullable) = false]; - string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - - // 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 (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"]; - cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false]; -} - -// 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 (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"]; - cosmos.base.v1beta1.Coin amount = 4 [(gogoproto.nullable) = false]; -} - -// MsgBeginRedelegateResponse defines the Msg/BeginRedelegate response type. -message MsgBeginRedelegateResponse { - google.protobuf.Timestamp completion_time = 1 [(gogoproto.nullable) = false, (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 (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"]; - cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false]; -} - -// MsgUndelegateResponse defines the Msg/Undelegate response type. -message MsgUndelegateResponse { - google.protobuf.Timestamp completion_time = 1 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; -} diff --git a/packages/codegen/proto/cosmos/tx/signing/v1beta1/signing.proto b/packages/codegen/proto/cosmos/tx/signing/v1beta1/signing.proto deleted file mode 100644 index 5a22616f..00000000 --- a/packages/codegen/proto/cosmos/tx/signing/v1beta1/signing.proto +++ /dev/null @@ -1,94 +0,0 @@ -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 not supported. - 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; -} - -// 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/packages/codegen/proto/cosmos/tx/v1beta1/service.proto b/packages/codegen/proto/cosmos/tx/v1beta1/service.proto deleted file mode 100644 index e7af1526..00000000 --- a/packages/codegen/proto/cosmos/tx/v1beta1/service.proto +++ /dev/null @@ -1,163 +0,0 @@ -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}"; - } -} - -// GetTxsEventRequest is the request type for the Service.TxsByEvents -// RPC method. -message GetTxsEventRequest { - // events is the list of transaction event type. - repeated string events = 1; - // pagination defines a pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 2; - OrderBy order_by = 3; -} - -// 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. - cosmos.base.query.v1beta1.PageResponse pagination = 3; -} - -// 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; - // BROADCAST_MODE_BLOCK defines a tx broadcasting mode where the client waits for - // the tx to be committed in a block. - BROADCAST_MODE_BLOCK = 1; - // 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; -} \ No newline at end of file diff --git a/packages/codegen/proto/cosmos/tx/v1beta1/tx.proto b/packages/codegen/proto/cosmos/tx/v1beta1/tx.proto deleted file mode 100644 index ac7b690f..00000000 --- a/packages/codegen/proto/cosmos/tx/v1beta1/tx.proto +++ /dev/null @@ -1,249 +0,0 @@ -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 meta-transactions. It should be left - // empty if the signer is not the tipper for this transaction. - 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 meta-transactions. - // - // 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_MOD_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/packages/codegen/proto/cosmos/upgrade/v1beta1/query.proto b/packages/codegen/proto/cosmos/upgrade/v1beta1/query.proto deleted file mode 100644 index e8c4baa0..00000000 --- a/packages/codegen/proto/cosmos/upgrade/v1beta1/query.proto +++ /dev/null @@ -1,120 +0,0 @@ -syntax = "proto3"; -package cosmos.upgrade.v1beta1; - -import "google/api/annotations.proto"; -import "cosmos/upgrade/v1beta1/upgrade.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/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 - 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/packages/codegen/proto/cosmos/upgrade/v1beta1/tx.proto b/packages/codegen/proto/cosmos/upgrade/v1beta1/tx.proto deleted file mode 100644 index 9b04bf44..00000000 --- a/packages/codegen/proto/cosmos/upgrade/v1beta1/tx.proto +++ /dev/null @@ -1,55 +0,0 @@ -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"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/upgrade/types"; - -// Msg defines the upgrade Msg service. -service Msg { - // 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 - // approvid 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"; - - // authority is the address of the governance account. - string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - - // plan is the upgrade plan. - Plan plan = 2 [(gogoproto.nullable) = false]; -} - -// 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"; - - // authority is the address of the governance account. - string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; -} - -// MsgCancelUpgradeResponse is the Msg/CancelUpgrade response type. -// -// Since: cosmos-sdk 0.46 -message MsgCancelUpgradeResponse {} \ No newline at end of file diff --git a/packages/codegen/proto/cosmos/upgrade/v1beta1/upgrade.proto b/packages/codegen/proto/cosmos/upgrade/v1beta1/upgrade.proto deleted file mode 100644 index dc15e27c..00000000 --- a/packages/codegen/proto/cosmos/upgrade/v1beta1/upgrade.proto +++ /dev/null @@ -1,86 +0,0 @@ -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"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/upgrade/types"; -option (gogoproto.goproto_getters_all) = false; - -// Plan specifies information about a planned upgrade and when it should occur. -message Plan { - option (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = false; - - // 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]; - - // The height at which the upgrade must be performed. - // Only used if Time is not set. - 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 (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = false; - option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; - - string title = 1; - string description = 2; - Plan plan = 3 [(gogoproto.nullable) = false]; -} - -// 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 (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = false; - option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; - - string title = 1; - string description = 2; -} - -// ModuleVersion specifies a module and its consensus version. -// -// Since: cosmos-sdk 0.43 -message ModuleVersion { - option (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = true; - - // name of the app module - string name = 1; - - // consensus version of the app module - uint64 version = 2; -} diff --git a/packages/codegen/proto/cosmos/vesting/v1beta1/tx.proto b/packages/codegen/proto/cosmos/vesting/v1beta1/tx.proto deleted file mode 100644 index 211bad09..00000000 --- a/packages/codegen/proto/cosmos/vesting/v1beta1/tx.proto +++ /dev/null @@ -1,74 +0,0 @@ -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"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/auth/vesting/types"; - -// Msg defines the bank Msg service. -service Msg { - // 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. - rpc CreatePermanentLockedAccount(MsgCreatePermanentLockedAccount) returns (MsgCreatePermanentLockedAccountResponse); - // CreatePeriodicVestingAccount defines a method that enables creating a - // periodic vesting account. - 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 (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, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; - - 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. -message MsgCreatePermanentLockedAccount { - 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, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; -} - -// MsgCreatePermanentLockedAccountResponse defines the Msg/CreatePermanentLockedAccount response type. -message MsgCreatePermanentLockedAccountResponse {} - -// MsgCreateVestingAccount defines a message that enables creating a vesting -// account. -message MsgCreatePeriodicVestingAccount { - option (cosmos.msg.v1.signer) = "from_address"; - - option (gogoproto.equal) = false; - - string from_address = 1; - string to_address = 2; - int64 start_time = 3; - repeated Period vesting_periods = 4 [(gogoproto.nullable) = false]; -} - -// MsgCreateVestingAccountResponse defines the Msg/CreatePeriodicVestingAccount -// response type. -message MsgCreatePeriodicVestingAccountResponse {} diff --git a/packages/codegen/proto/cosmos/vesting/v1beta1/vesting.proto b/packages/codegen/proto/cosmos/vesting/v1beta1/vesting.proto deleted file mode 100644 index 824cc30d..00000000 --- a/packages/codegen/proto/cosmos/vesting/v1beta1/vesting.proto +++ /dev/null @@ -1,76 +0,0 @@ -syntax = "proto3"; -package cosmos.vesting.v1beta1; - -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 (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = false; - - cosmos.auth.v1beta1.BaseAccount base_account = 1 [(gogoproto.embed) = true]; - repeated cosmos.base.v1beta1.Coin original_vesting = 2 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; - repeated cosmos.base.v1beta1.Coin delegated_free = 3 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; - repeated cosmos.base.v1beta1.Coin delegated_vesting = 4 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; - int64 end_time = 5; -} - -// ContinuousVestingAccount implements the VestingAccount interface. It -// continuously vests by unlocking coins linearly with respect to time. -message ContinuousVestingAccount { - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = false; - - BaseVestingAccount base_vesting_account = 1 [(gogoproto.embed) = true]; - 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 (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = false; - - BaseVestingAccount base_vesting_account = 1 [(gogoproto.embed) = true]; -} - -// Period defines a length of time and amount of coins that will vest. -message Period { - option (gogoproto.goproto_stringer) = false; - - int64 length = 1; - repeated cosmos.base.v1beta1.Coin amount = 2 - [(gogoproto.nullable) = false, (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 (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = false; - - BaseVestingAccount base_vesting_account = 1 [(gogoproto.embed) = true]; - int64 start_time = 2; - repeated Period vesting_periods = 3 [(gogoproto.nullable) = false]; -} - -// 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 (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = false; - - BaseVestingAccount base_vesting_account = 1 [(gogoproto.embed) = true]; -} diff --git a/packages/codegen/proto/cosmos_proto/LICENSE b/packages/codegen/proto/cosmos_proto/LICENSE deleted file mode 100644 index 6b3e3508..00000000 --- a/packages/codegen/proto/cosmos_proto/LICENSE +++ /dev/null @@ -1,204 +0,0 @@ -Pulsar -License: Apache2.0 - - 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 2021 Regen Network Development, Inc. & All in Bits, Inc. - - 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 newline at end of file diff --git a/packages/codegen/proto/cosmos_proto/README.md b/packages/codegen/proto/cosmos_proto/README.md deleted file mode 100644 index 9599cc65..00000000 --- a/packages/codegen/proto/cosmos_proto/README.md +++ /dev/null @@ -1 +0,0 @@ -# cosmos_proto \ No newline at end of file diff --git a/packages/codegen/proto/cosmos_proto/cosmos.proto b/packages/codegen/proto/cosmos_proto/cosmos.proto deleted file mode 100644 index 5c63b86f..00000000 --- a/packages/codegen/proto/cosmos_proto/cosmos.proto +++ /dev/null @@ -1,97 +0,0 @@ -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/packages/codegen/proto/cosmwasm/LICENSE b/packages/codegen/proto/cosmwasm/LICENSE deleted file mode 100644 index 5a23302b..00000000 --- a/packages/codegen/proto/cosmwasm/LICENSE +++ /dev/null @@ -1,204 +0,0 @@ -Cosmos-SDK -License: Apache2.0 - - 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 2016 All in Bits, Inc - - 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 newline at end of file diff --git a/packages/codegen/proto/cosmwasm/README.md b/packages/codegen/proto/cosmwasm/README.md deleted file mode 100644 index 63192e81..00000000 --- a/packages/codegen/proto/cosmwasm/README.md +++ /dev/null @@ -1 +0,0 @@ -# cosmwasm \ No newline at end of file diff --git a/packages/codegen/proto/cosmwasm/wasm/v1/authz.proto b/packages/codegen/proto/cosmwasm/wasm/v1/authz.proto deleted file mode 100644 index 6d6260c2..00000000 --- a/packages/codegen/proto/cosmwasm/wasm/v1/authz.proto +++ /dev/null @@ -1,109 +0,0 @@ -syntax = "proto3"; -package cosmwasm.wasm.v1; - -import "gogoproto/gogo.proto"; -import "cosmos_proto/cosmos.proto"; -import "cosmos/base/v1beta1/coin.proto"; -import "google/protobuf/any.proto"; - -option go_package = "github.com/CosmWasm/wasmd/x/wasm/types"; -option (gogoproto.goproto_getters_all) = false; - -// ContractExecutionAuthorization defines authorization for wasm execute. -// Since: wasmd 0.30 -message ContractExecutionAuthorization { - option (cosmos_proto.implements_interface) = "cosmos.authz.Authorization"; - - // Grants for contract executions - repeated ContractGrant grants = 1 [ (gogoproto.nullable) = false ]; -} - -// ContractMigrationAuthorization defines authorization for wasm contract -// migration. Since: wasmd 0.30 -message ContractMigrationAuthorization { - option (cosmos_proto.implements_interface) = "cosmos.authz.Authorization"; - - // Grants for contract migrations - repeated ContractGrant grants = 1 [ (gogoproto.nullable) = false ]; -} - -// ContractGrant a granted permission for a single contract -// Since: wasmd 0.30 -message ContractGrant { - // Contract is the bech32 address of the smart contract - string contract = 1; - - // Limit defines execution limits that are enforced and updated when the grant - // is applied. When the limit lapsed the grant is removed. - google.protobuf.Any limit = 2 - [ (cosmos_proto.accepts_interface) = "ContractAuthzLimitX" ]; - - // Filter define more fine-grained control on the message payload passed - // to the contract in the operation. When no filter applies on execution, the - // operation is prohibited. - google.protobuf.Any filter = 3 - [ (cosmos_proto.accepts_interface) = "ContractAuthzFilterX" ]; -} - -// MaxCallsLimit limited number of calls to the contract. No funds transferable. -// Since: wasmd 0.30 -message MaxCallsLimit { - option (cosmos_proto.implements_interface) = "ContractAuthzLimitX"; - - // Remaining number that is decremented on each execution - uint64 remaining = 1; -} - -// MaxFundsLimit defines the maximal amounts that can be sent to the contract. -// Since: wasmd 0.30 -message MaxFundsLimit { - option (cosmos_proto.implements_interface) = "ContractAuthzLimitX"; - - // Amounts is the maximal amount of tokens transferable to the contract. - repeated cosmos.base.v1beta1.Coin amounts = 1 [ - (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" - ]; -} - -// CombinedLimit defines the maximal amounts that can be sent to a contract and -// the maximal number of calls executable. Both need to remain >0 to be valid. -// Since: wasmd 0.30 -message CombinedLimit { - option (cosmos_proto.implements_interface) = "ContractAuthzLimitX"; - - // Remaining number that is decremented on each execution - uint64 calls_remaining = 1; - // Amounts is the maximal amount of tokens transferable to the contract. - repeated cosmos.base.v1beta1.Coin amounts = 2 [ - (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" - ]; -} - -// AllowAllMessagesFilter is a wildcard to allow any type of contract payload -// message. -// Since: wasmd 0.30 -message AllowAllMessagesFilter { - option (cosmos_proto.implements_interface) = "ContractAuthzFilterX"; -} - -// AcceptedMessageKeysFilter accept only the specific contract message keys in -// the json object to be executed. -// Since: wasmd 0.30 -message AcceptedMessageKeysFilter { - option (cosmos_proto.implements_interface) = "ContractAuthzFilterX"; - - // Messages is the list of unique keys - repeated string keys = 1; -} - -// AcceptedMessagesFilter accept only the specific raw contract messages to be -// executed. -// Since: wasmd 0.30 -message AcceptedMessagesFilter { - option (cosmos_proto.implements_interface) = "ContractAuthzFilterX"; - - // Messages is the list of raw contract messages - repeated bytes messages = 1 [ (gogoproto.casttype) = "RawContractMessage" ]; -} diff --git a/packages/codegen/proto/cosmwasm/wasm/v1/genesis.proto b/packages/codegen/proto/cosmwasm/wasm/v1/genesis.proto deleted file mode 100644 index 4e728ff4..00000000 --- a/packages/codegen/proto/cosmwasm/wasm/v1/genesis.proto +++ /dev/null @@ -1,46 +0,0 @@ -syntax = "proto3"; -package cosmwasm.wasm.v1; - -import "gogoproto/gogo.proto"; -import "cosmwasm/wasm/v1/types.proto"; - -option go_package = "github.com/CosmWasm/wasmd/x/wasm/types"; - -// GenesisState - genesis state of x/wasm -message GenesisState { - Params params = 1 [ (gogoproto.nullable) = false ]; - repeated Code codes = 2 - [ (gogoproto.nullable) = false, (gogoproto.jsontag) = "codes,omitempty" ]; - repeated Contract contracts = 3 [ - (gogoproto.nullable) = false, - (gogoproto.jsontag) = "contracts,omitempty" - ]; - repeated Sequence sequences = 4 [ - (gogoproto.nullable) = false, - (gogoproto.jsontag) = "sequences,omitempty" - ]; -} - -// Code struct encompasses CodeInfo and CodeBytes -message Code { - uint64 code_id = 1 [ (gogoproto.customname) = "CodeID" ]; - CodeInfo code_info = 2 [ (gogoproto.nullable) = false ]; - bytes code_bytes = 3; - // Pinned to wasmvm cache - bool pinned = 4; -} - -// Contract struct encompasses ContractAddress, ContractInfo, and ContractState -message Contract { - string contract_address = 1; - ContractInfo contract_info = 2 [ (gogoproto.nullable) = false ]; - repeated Model contract_state = 3 [ (gogoproto.nullable) = false ]; - repeated ContractCodeHistoryEntry contract_code_history = 4 - [ (gogoproto.nullable) = false ]; -} - -// Sequence key and value of an id generation counter -message Sequence { - bytes id_key = 1 [ (gogoproto.customname) = "IDKey" ]; - uint64 value = 2; -} \ No newline at end of file diff --git a/packages/codegen/proto/cosmwasm/wasm/v1/ibc.proto b/packages/codegen/proto/cosmwasm/wasm/v1/ibc.proto deleted file mode 100644 index d880a707..00000000 --- a/packages/codegen/proto/cosmwasm/wasm/v1/ibc.proto +++ /dev/null @@ -1,31 +0,0 @@ -syntax = "proto3"; -package cosmwasm.wasm.v1; - -import "gogoproto/gogo.proto"; - -option go_package = "github.com/CosmWasm/wasmd/x/wasm/types"; -option (gogoproto.goproto_getters_all) = false; - -// MsgIBCSend -message MsgIBCSend { - // the channel by which the packet will be sent - string channel = 2 [ (gogoproto.moretags) = "yaml:\"source_channel\"" ]; - - // Timeout height relative to the current block height. - // The timeout is disabled when set to 0. - uint64 timeout_height = 4 - [ (gogoproto.moretags) = "yaml:\"timeout_height\"" ]; - // Timeout timestamp (in nanoseconds) relative to the current block timestamp. - // The timeout is disabled when set to 0. - uint64 timeout_timestamp = 5 - [ (gogoproto.moretags) = "yaml:\"timeout_timestamp\"" ]; - - // Data is the payload to transfer. We must not make assumption what format or - // content is in here. - bytes data = 6; -} - -// MsgIBCCloseChannel port and channel need to be owned by the contract -message MsgIBCCloseChannel { - string channel = 2 [ (gogoproto.moretags) = "yaml:\"source_channel\"" ]; -} diff --git a/packages/codegen/proto/cosmwasm/wasm/v1/proposal.proto b/packages/codegen/proto/cosmwasm/wasm/v1/proposal.proto deleted file mode 100644 index 013b4daf..00000000 --- a/packages/codegen/proto/cosmwasm/wasm/v1/proposal.proto +++ /dev/null @@ -1,272 +0,0 @@ -syntax = "proto3"; -package cosmwasm.wasm.v1; - -import "gogoproto/gogo.proto"; -import "cosmos_proto/cosmos.proto"; -import "cosmos/base/v1beta1/coin.proto"; -import "cosmwasm/wasm/v1/types.proto"; - -option go_package = "github.com/CosmWasm/wasmd/x/wasm/types"; -option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.goproto_getters_all) = false; -option (gogoproto.equal_all) = true; - -// StoreCodeProposal gov proposal content type to submit WASM code to the system -message StoreCodeProposal { - option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; - - // Title is a short summary - string title = 1; - // Description is a human readable text - string description = 2; - // RunAs is the address that is passed to the contract's environment as sender - string run_as = 3; - // WASMByteCode can be raw or gzip compressed - bytes wasm_byte_code = 4 [ (gogoproto.customname) = "WASMByteCode" ]; - // Used in v1beta1 - reserved 5, 6; - // InstantiatePermission to apply on contract creation, optional - AccessConfig instantiate_permission = 7; - // UnpinCode code on upload, optional - bool unpin_code = 8; - // Source is the URL where the code is hosted - string source = 9; - // Builder is the docker image used to build the code deterministically, used - // for smart contract verification - string builder = 10; - // CodeHash is the SHA256 sum of the code outputted by builder, used for smart - // contract verification - bytes code_hash = 11; -} - -// InstantiateContractProposal gov proposal content type to instantiate a -// contract. -message InstantiateContractProposal { - option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; - - // Title is a short summary - string title = 1; - // Description is a human readable text - string description = 2; - // RunAs is the address that is passed to the contract's environment as sender - string run_as = 3; - // Admin is an optional address that can execute migrations - string admin = 4; - // CodeID is the reference to the stored WASM code - uint64 code_id = 5 [ (gogoproto.customname) = "CodeID" ]; - // Label is optional metadata to be stored with a constract instance. - string label = 6; - // Msg json encoded message to be passed to the contract on instantiation - bytes msg = 7 [ (gogoproto.casttype) = "RawContractMessage" ]; - // Funds coins that are transferred to the contract on instantiation - repeated cosmos.base.v1beta1.Coin funds = 8 [ - (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" - ]; -} - -// InstantiateContract2Proposal gov proposal content type to instantiate -// contract 2 -message InstantiateContract2Proposal { - option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; - - // Title is a short summary - string title = 1; - // Description is a human readable text - string description = 2; - // RunAs is the address that is passed to the contract's enviroment as sender - string run_as = 3; - // Admin is an optional address that can execute migrations - string admin = 4; - // CodeID is the reference to the stored WASM code - uint64 code_id = 5 [ (gogoproto.customname) = "CodeID" ]; - // Label is optional metadata to be stored with a constract instance. - string label = 6; - // Msg json encode message to be passed to the contract on instantiation - bytes msg = 7 [ (gogoproto.casttype) = "RawContractMessage" ]; - // Funds coins that are transferred to the contract on instantiation - repeated cosmos.base.v1beta1.Coin funds = 8 [ - (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" - ]; - // Salt is an arbitrary value provided by the sender. Size can be 1 to 64. - bytes salt = 9; - // FixMsg include the msg value into the hash for the predictable address. - // Default is false - bool fix_msg = 10; -} - -// MigrateContractProposal gov proposal content type to migrate a contract. -message MigrateContractProposal { - option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; - - // Title is a short summary - string title = 1; - // Description is a human readable text - string description = 2; - // Note: skipping 3 as this was previously used for unneeded run_as - - // Contract is the address of the smart contract - string contract = 4; - // CodeID references the new WASM code - uint64 code_id = 5 [ (gogoproto.customname) = "CodeID" ]; - // Msg json encoded message to be passed to the contract on migration - bytes msg = 6 [ (gogoproto.casttype) = "RawContractMessage" ]; -} - -// SudoContractProposal gov proposal content type to call sudo on a contract. -message SudoContractProposal { - option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; - - // Title is a short summary - string title = 1; - // Description is a human readable text - string description = 2; - // Contract is the address of the smart contract - string contract = 3; - // Msg json encoded message to be passed to the contract as sudo - bytes msg = 4 [ (gogoproto.casttype) = "RawContractMessage" ]; -} - -// ExecuteContractProposal gov proposal content type to call execute on a -// contract. -message ExecuteContractProposal { - option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; - - // Title is a short summary - string title = 1; - // Description is a human readable text - string description = 2; - // RunAs is the address that is passed to the contract's environment as sender - string run_as = 3; - // Contract is the address of the smart contract - string contract = 4; - // Msg json encoded message to be passed to the contract as execute - bytes msg = 5 [ (gogoproto.casttype) = "RawContractMessage" ]; - // Funds coins that are transferred to the contract on instantiation - repeated cosmos.base.v1beta1.Coin funds = 6 [ - (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" - ]; -} - -// UpdateAdminProposal gov proposal content type to set an admin for a contract. -message UpdateAdminProposal { - option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; - - // Title is a short summary - string title = 1; - // Description is a human readable text - string description = 2; - // NewAdmin address to be set - string new_admin = 3 [ (gogoproto.moretags) = "yaml:\"new_admin\"" ]; - // Contract is the address of the smart contract - string contract = 4; -} - -// ClearAdminProposal gov proposal content type to clear the admin of a -// contract. -message ClearAdminProposal { - option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; - - // Title is a short summary - string title = 1; - // Description is a human readable text - string description = 2; - // Contract is the address of the smart contract - string contract = 3; -} - -// PinCodesProposal gov proposal content type to pin a set of code ids in the -// wasmvm cache. -message PinCodesProposal { - option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; - - // Title is a short summary - string title = 1 [ (gogoproto.moretags) = "yaml:\"title\"" ]; - // Description is a human readable text - string description = 2 [ (gogoproto.moretags) = "yaml:\"description\"" ]; - // CodeIDs references the new WASM codes - repeated uint64 code_ids = 3 [ - (gogoproto.customname) = "CodeIDs", - (gogoproto.moretags) = "yaml:\"code_ids\"" - ]; -} - -// UnpinCodesProposal gov proposal content type to unpin a set of code ids in -// the wasmvm cache. -message UnpinCodesProposal { - option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; - - // Title is a short summary - string title = 1 [ (gogoproto.moretags) = "yaml:\"title\"" ]; - // Description is a human readable text - string description = 2 [ (gogoproto.moretags) = "yaml:\"description\"" ]; - // CodeIDs references the WASM codes - repeated uint64 code_ids = 3 [ - (gogoproto.customname) = "CodeIDs", - (gogoproto.moretags) = "yaml:\"code_ids\"" - ]; -} - -// AccessConfigUpdate contains the code id and the access config to be -// applied. -message AccessConfigUpdate { - // CodeID is the reference to the stored WASM code to be updated - uint64 code_id = 1 [ (gogoproto.customname) = "CodeID" ]; - // InstantiatePermission to apply to the set of code ids - AccessConfig instantiate_permission = 2 [ (gogoproto.nullable) = false ]; -} - -// UpdateInstantiateConfigProposal gov proposal content type to update -// instantiate config to a set of code ids. -message UpdateInstantiateConfigProposal { - option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; - - // Title is a short summary - string title = 1 [ (gogoproto.moretags) = "yaml:\"title\"" ]; - // Description is a human readable text - string description = 2 [ (gogoproto.moretags) = "yaml:\"description\"" ]; - // AccessConfigUpdate contains the list of code ids and the access config - // to be applied. - repeated AccessConfigUpdate access_config_updates = 3 - [ (gogoproto.nullable) = false ]; -} - -// StoreAndInstantiateContractProposal gov proposal content type to store -// and instantiate the contract. -message StoreAndInstantiateContractProposal { - option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; - - // Title is a short summary - string title = 1; - // Description is a human readable text - string description = 2; - // RunAs is the address that is passed to the contract's environment as sender - string run_as = 3; - // WASMByteCode can be raw or gzip compressed - bytes wasm_byte_code = 4 [ (gogoproto.customname) = "WASMByteCode" ]; - // InstantiatePermission to apply on contract creation, optional - AccessConfig instantiate_permission = 5; - // UnpinCode code on upload, optional - bool unpin_code = 6; - // Admin is an optional address that can execute migrations - string admin = 7; - // Label is optional metadata to be stored with a constract instance. - string label = 8; - // Msg json encoded message to be passed to the contract on instantiation - bytes msg = 9 [ (gogoproto.casttype) = "RawContractMessage" ]; - // Funds coins that are transferred to the contract on instantiation - repeated cosmos.base.v1beta1.Coin funds = 10 [ - (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" - ]; - // Source is the URL where the code is hosted - string source = 11; - // Builder is the docker image used to build the code deterministically, used - // for smart contract verification - string builder = 12; - // CodeHash is the SHA256 sum of the code outputted by builder, used for smart - // contract verification - bytes code_hash = 13; -} diff --git a/packages/codegen/proto/cosmwasm/wasm/v1/query.proto b/packages/codegen/proto/cosmwasm/wasm/v1/query.proto deleted file mode 100644 index ffe48d24..00000000 --- a/packages/codegen/proto/cosmwasm/wasm/v1/query.proto +++ /dev/null @@ -1,263 +0,0 @@ -syntax = "proto3"; -package cosmwasm.wasm.v1; - -import "gogoproto/gogo.proto"; -import "cosmwasm/wasm/v1/types.proto"; -import "google/api/annotations.proto"; -import "cosmos/base/query/v1beta1/pagination.proto"; - -option go_package = "github.com/CosmWasm/wasmd/x/wasm/types"; -option (gogoproto.goproto_getters_all) = false; -option (gogoproto.equal_all) = false; - -// Query provides defines the gRPC querier service -service Query { - // ContractInfo gets the contract meta data - rpc ContractInfo(QueryContractInfoRequest) - returns (QueryContractInfoResponse) { - option (google.api.http).get = "/cosmwasm/wasm/v1/contract/{address}"; - } - // ContractHistory gets the contract code history - rpc ContractHistory(QueryContractHistoryRequest) - returns (QueryContractHistoryResponse) { - option (google.api.http).get = - "/cosmwasm/wasm/v1/contract/{address}/history"; - } - // ContractsByCode lists all smart contracts for a code id - rpc ContractsByCode(QueryContractsByCodeRequest) - returns (QueryContractsByCodeResponse) { - option (google.api.http).get = "/cosmwasm/wasm/v1/code/{code_id}/contracts"; - } - // AllContractState gets all raw store data for a single contract - rpc AllContractState(QueryAllContractStateRequest) - returns (QueryAllContractStateResponse) { - option (google.api.http).get = "/cosmwasm/wasm/v1/contract/{address}/state"; - } - // RawContractState gets single key from the raw store data of a contract - rpc RawContractState(QueryRawContractStateRequest) - returns (QueryRawContractStateResponse) { - option (google.api.http).get = - "/cosmwasm/wasm/v1/contract/{address}/raw/{query_data}"; - } - // SmartContractState get smart query result from the contract - rpc SmartContractState(QuerySmartContractStateRequest) - returns (QuerySmartContractStateResponse) { - option (google.api.http).get = - "/cosmwasm/wasm/v1/contract/{address}/smart/{query_data}"; - } - // Code gets the binary code and metadata for a singe wasm code - rpc Code(QueryCodeRequest) returns (QueryCodeResponse) { - option (google.api.http).get = "/cosmwasm/wasm/v1/code/{code_id}"; - } - // Codes gets the metadata for all stored wasm codes - rpc Codes(QueryCodesRequest) returns (QueryCodesResponse) { - option (google.api.http).get = "/cosmwasm/wasm/v1/code"; - } - - // PinnedCodes gets the pinned code ids - rpc PinnedCodes(QueryPinnedCodesRequest) returns (QueryPinnedCodesResponse) { - option (google.api.http).get = "/cosmwasm/wasm/v1/codes/pinned"; - } - - // Params gets the module params - rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { - option (google.api.http).get = "/cosmwasm/wasm/v1/codes/params"; - } - - // ContractsByCreator gets the contracts by creator - rpc ContractsByCreator(QueryContractsByCreatorRequest) - returns (QueryContractsByCreatorResponse) { - option (google.api.http).get = - "/cosmwasm/wasm/v1/contracts/creator/{creator_address}"; - } -} - -// QueryContractInfoRequest is the request type for the Query/ContractInfo RPC -// method -message QueryContractInfoRequest { - // address is the address of the contract to query - string address = 1; -} -// QueryContractInfoResponse is the response type for the Query/ContractInfo RPC -// method -message QueryContractInfoResponse { - option (gogoproto.equal) = true; - - // address is the address of the contract - string address = 1; - ContractInfo contract_info = 2 [ - (gogoproto.embed) = true, - (gogoproto.nullable) = false, - (gogoproto.jsontag) = "" - ]; -} - -// QueryContractHistoryRequest is the request type for the Query/ContractHistory -// RPC method -message QueryContractHistoryRequest { - // address is the address of the contract to query - string address = 1; - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 2; -} - -// QueryContractHistoryResponse is the response type for the -// Query/ContractHistory RPC method -message QueryContractHistoryResponse { - repeated ContractCodeHistoryEntry entries = 1 - [ (gogoproto.nullable) = false ]; - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// QueryContractsByCodeRequest is the request type for the Query/ContractsByCode -// RPC method -message QueryContractsByCodeRequest { - uint64 code_id = 1; // grpc-gateway_out does not support Go style CodID - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 2; -} - -// QueryContractsByCodeResponse is the response type for the -// Query/ContractsByCode RPC method -message QueryContractsByCodeResponse { - // contracts are a set of contract addresses - repeated string contracts = 1; - - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// QueryAllContractStateRequest is the request type for the -// Query/AllContractState RPC method -message QueryAllContractStateRequest { - // address is the address of the contract - string address = 1; - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 2; -} - -// QueryAllContractStateResponse is the response type for the -// Query/AllContractState RPC method -message QueryAllContractStateResponse { - repeated Model models = 1 [ (gogoproto.nullable) = false ]; - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// QueryRawContractStateRequest is the request type for the -// Query/RawContractState RPC method -message QueryRawContractStateRequest { - // address is the address of the contract - string address = 1; - bytes query_data = 2; -} - -// QueryRawContractStateResponse is the response type for the -// Query/RawContractState RPC method -message QueryRawContractStateResponse { - // Data contains the raw store data - bytes data = 1; -} - -// QuerySmartContractStateRequest is the request type for the -// Query/SmartContractState RPC method -message QuerySmartContractStateRequest { - // address is the address of the contract - string address = 1; - // QueryData contains the query data passed to the contract - bytes query_data = 2 [ (gogoproto.casttype) = "RawContractMessage" ]; -} - -// QuerySmartContractStateResponse is the response type for the -// Query/SmartContractState RPC method -message QuerySmartContractStateResponse { - // Data contains the json data returned from the smart contract - bytes data = 1 [ (gogoproto.casttype) = "RawContractMessage" ]; -} - -// QueryCodeRequest is the request type for the Query/Code RPC method -message QueryCodeRequest { - uint64 code_id = 1; // grpc-gateway_out does not support Go style CodID -} - -// CodeInfoResponse contains code meta data from CodeInfo -message CodeInfoResponse { - option (gogoproto.equal) = true; - - uint64 code_id = 1 [ - (gogoproto.customname) = "CodeID", - (gogoproto.jsontag) = "id" - ]; // id for legacy support - string creator = 2; - bytes data_hash = 3 - [ (gogoproto.casttype) = - "github.com/tendermint/tendermint/libs/bytes.HexBytes" ]; - // Used in v1beta1 - reserved 4, 5; - AccessConfig instantiate_permission = 6 [ (gogoproto.nullable) = false ]; -} - -// QueryCodeResponse is the response type for the Query/Code RPC method -message QueryCodeResponse { - option (gogoproto.equal) = true; - CodeInfoResponse code_info = 1 - [ (gogoproto.embed) = true, (gogoproto.jsontag) = "" ]; - bytes data = 2 [ (gogoproto.jsontag) = "data" ]; -} - -// QueryCodesRequest is the request type for the Query/Codes RPC method -message QueryCodesRequest { - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 1; -} - -// QueryCodesResponse is the response type for the Query/Codes RPC method -message QueryCodesResponse { - repeated CodeInfoResponse code_infos = 1 [ (gogoproto.nullable) = false ]; - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// QueryPinnedCodesRequest is the request type for the Query/PinnedCodes -// RPC method -message QueryPinnedCodesRequest { - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 2; -} - -// QueryPinnedCodesResponse is the response type for the -// Query/PinnedCodes RPC method -message QueryPinnedCodesResponse { - repeated uint64 code_ids = 1 - [ (gogoproto.nullable) = false, (gogoproto.customname) = "CodeIDs" ]; - // 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 [ (gogoproto.nullable) = false ]; -} - -// QueryContractsByCreatorRequest is the request type for the -// Query/ContractsByCreator RPC method. -message QueryContractsByCreatorRequest { - // CreatorAddress is the address of contract creator - string creator_address = 1; - // Pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 2; -} - -// QueryContractsByCreatorResponse is the response type for the -// Query/ContractsByCreator RPC method. -message QueryContractsByCreatorResponse { - // ContractAddresses result set - repeated string contract_addresses = 1; - // Pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} \ No newline at end of file diff --git a/packages/codegen/proto/cosmwasm/wasm/v1/tx.proto b/packages/codegen/proto/cosmwasm/wasm/v1/tx.proto deleted file mode 100644 index 04acc8ef..00000000 --- a/packages/codegen/proto/cosmwasm/wasm/v1/tx.proto +++ /dev/null @@ -1,176 +0,0 @@ -syntax = "proto3"; -package cosmwasm.wasm.v1; - -import "cosmos/base/v1beta1/coin.proto"; -import "gogoproto/gogo.proto"; -import "cosmwasm/wasm/v1/types.proto"; - -option go_package = "github.com/CosmWasm/wasmd/x/wasm/types"; -option (gogoproto.goproto_getters_all) = false; - -// Msg defines the wasm Msg service. -service Msg { - // StoreCode to submit Wasm code to the system - rpc StoreCode(MsgStoreCode) returns (MsgStoreCodeResponse); - // InstantiateContract creates a new smart contract instance for the given - // code id. - rpc InstantiateContract(MsgInstantiateContract) - returns (MsgInstantiateContractResponse); - // InstantiateContract2 creates a new smart contract instance for the given - // code id with a predictable address - rpc InstantiateContract2(MsgInstantiateContract2) - returns (MsgInstantiateContract2Response); - // Execute submits the given message data to a smart contract - rpc ExecuteContract(MsgExecuteContract) returns (MsgExecuteContractResponse); - // Migrate runs a code upgrade/ downgrade for a smart contract - rpc MigrateContract(MsgMigrateContract) returns (MsgMigrateContractResponse); - // UpdateAdmin sets a new admin for a smart contract - rpc UpdateAdmin(MsgUpdateAdmin) returns (MsgUpdateAdminResponse); - // ClearAdmin removes any admin stored for a smart contract - rpc ClearAdmin(MsgClearAdmin) returns (MsgClearAdminResponse); -} - -// MsgStoreCode submit Wasm code to the system -message MsgStoreCode { - // Sender is the that actor that signed the messages - string sender = 1; - // WASMByteCode can be raw or gzip compressed - bytes wasm_byte_code = 2 [ (gogoproto.customname) = "WASMByteCode" ]; - // Used in v1beta1 - reserved 3, 4; - // InstantiatePermission access control to apply on contract creation, - // optional - AccessConfig instantiate_permission = 5; -} -// MsgStoreCodeResponse returns store result data. -message MsgStoreCodeResponse { - // CodeID is the reference to the stored WASM code - uint64 code_id = 1 [ (gogoproto.customname) = "CodeID" ]; - // Checksum is the sha256 hash of the stored code - bytes checksum = 2; -} - -// MsgInstantiateContract create a new smart contract instance for the given -// code id. -message MsgInstantiateContract { - // Sender is the that actor that signed the messages - string sender = 1; - // Admin is an optional address that can execute migrations - string admin = 2; - // CodeID is the reference to the stored WASM code - uint64 code_id = 3 [ (gogoproto.customname) = "CodeID" ]; - // Label is optional metadata to be stored with a contract instance. - string label = 4; - // Msg json encoded message to be passed to the contract on instantiation - bytes msg = 5 [ (gogoproto.casttype) = "RawContractMessage" ]; - // Funds coins that are transferred to the contract on instantiation - repeated cosmos.base.v1beta1.Coin funds = 6 [ - (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" - ]; -} - -// MsgInstantiateContract2 create a new smart contract instance for the given -// code id with a predicable address. -message MsgInstantiateContract2 { - // Sender is the that actor that signed the messages - string sender = 1; - // Admin is an optional address that can execute migrations - string admin = 2; - // CodeID is the reference to the stored WASM code - uint64 code_id = 3 [ (gogoproto.customname) = "CodeID" ]; - // Label is optional metadata to be stored with a contract instance. - string label = 4; - // Msg json encoded message to be passed to the contract on instantiation - bytes msg = 5 [ (gogoproto.casttype) = "RawContractMessage" ]; - // Funds coins that are transferred to the contract on instantiation - repeated cosmos.base.v1beta1.Coin funds = 6 [ - (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" - ]; - // Salt is an arbitrary value provided by the sender. Size can be 1 to 64. - bytes salt = 7; - // FixMsg include the msg value into the hash for the predictable address. - // Default is false - bool fix_msg = 8; -} - -// MsgInstantiateContractResponse return instantiation result data -message MsgInstantiateContractResponse { - // Address is the bech32 address of the new contract instance. - string address = 1; - // Data contains bytes to returned from the contract - bytes data = 2; -} - -// MsgInstantiateContract2Response return instantiation result data -message MsgInstantiateContract2Response { - // Address is the bech32 address of the new contract instance. - string address = 1; - // Data contains bytes to returned from the contract - bytes data = 2; -} - -// MsgExecuteContract submits the given message data to a smart contract -message MsgExecuteContract { - // Sender is the that actor that signed the messages - string sender = 1; - // Contract is the address of the smart contract - string contract = 2; - // Msg json encoded message to be passed to the contract - bytes msg = 3 [ (gogoproto.casttype) = "RawContractMessage" ]; - // Funds coins that are transferred to the contract on execution - repeated cosmos.base.v1beta1.Coin funds = 5 [ - (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" - ]; -} - -// MsgExecuteContractResponse returns execution result data. -message MsgExecuteContractResponse { - // Data contains bytes to returned from the contract - bytes data = 1; -} - -// MsgMigrateContract runs a code upgrade/ downgrade for a smart contract -message MsgMigrateContract { - // Sender is the that actor that signed the messages - string sender = 1; - // Contract is the address of the smart contract - string contract = 2; - // CodeID references the new WASM code - uint64 code_id = 3 [ (gogoproto.customname) = "CodeID" ]; - // Msg json encoded message to be passed to the contract on migration - bytes msg = 4 [ (gogoproto.casttype) = "RawContractMessage" ]; -} - -// MsgMigrateContractResponse returns contract migration result data. -message MsgMigrateContractResponse { - // Data contains same raw bytes returned as data from the wasm contract. - // (May be empty) - bytes data = 1; -} - -// MsgUpdateAdmin sets a new admin for a smart contract -message MsgUpdateAdmin { - // Sender is the that actor that signed the messages - string sender = 1; - // NewAdmin address to be set - string new_admin = 2; - // Contract is the address of the smart contract - string contract = 3; -} - -// MsgUpdateAdminResponse returns empty data -message MsgUpdateAdminResponse {} - -// MsgClearAdmin removes any admin stored for a smart contract -message MsgClearAdmin { - // Sender is the that actor that signed the messages - string sender = 1; - // Contract is the address of the smart contract - string contract = 3; -} - -// MsgClearAdminResponse returns empty data -message MsgClearAdminResponse {} diff --git a/packages/codegen/proto/cosmwasm/wasm/v1/types.proto b/packages/codegen/proto/cosmwasm/wasm/v1/types.proto deleted file mode 100644 index 216b24e3..00000000 --- a/packages/codegen/proto/cosmwasm/wasm/v1/types.proto +++ /dev/null @@ -1,144 +0,0 @@ -syntax = "proto3"; -package cosmwasm.wasm.v1; - -import "cosmos_proto/cosmos.proto"; -import "gogoproto/gogo.proto"; -import "google/protobuf/any.proto"; - -option go_package = "github.com/CosmWasm/wasmd/x/wasm/types"; -option (gogoproto.goproto_getters_all) = false; -option (gogoproto.equal_all) = true; - -// AccessType permission types -enum AccessType { - option (gogoproto.goproto_enum_prefix) = false; - option (gogoproto.goproto_enum_stringer) = false; - // AccessTypeUnspecified placeholder for empty value - ACCESS_TYPE_UNSPECIFIED = 0 - [ (gogoproto.enumvalue_customname) = "AccessTypeUnspecified" ]; - // AccessTypeNobody forbidden - ACCESS_TYPE_NOBODY = 1 - [ (gogoproto.enumvalue_customname) = "AccessTypeNobody" ]; - // AccessTypeOnlyAddress restricted to a single address - // Deprecated: use AccessTypeAnyOfAddresses instead - ACCESS_TYPE_ONLY_ADDRESS = 2 - [ (gogoproto.enumvalue_customname) = "AccessTypeOnlyAddress" ]; - // AccessTypeEverybody unrestricted - ACCESS_TYPE_EVERYBODY = 3 - [ (gogoproto.enumvalue_customname) = "AccessTypeEverybody" ]; - // AccessTypeAnyOfAddresses allow any of the addresses - ACCESS_TYPE_ANY_OF_ADDRESSES = 4 - [ (gogoproto.enumvalue_customname) = "AccessTypeAnyOfAddresses" ]; -} - -// AccessTypeParam -message AccessTypeParam { - option (gogoproto.goproto_stringer) = true; - AccessType value = 1 [ (gogoproto.moretags) = "yaml:\"value\"" ]; -} - -// AccessConfig access control type. -message AccessConfig { - option (gogoproto.goproto_stringer) = true; - AccessType permission = 1 [ (gogoproto.moretags) = "yaml:\"permission\"" ]; - - // Address - // Deprecated: replaced by addresses - string address = 2 [ (gogoproto.moretags) = "yaml:\"address\"" ]; - repeated string addresses = 3 [ (gogoproto.moretags) = "yaml:\"addresses\"" ]; -} - -// Params defines the set of wasm parameters. -message Params { - option (gogoproto.goproto_stringer) = false; - AccessConfig code_upload_access = 1 [ - (gogoproto.nullable) = false, - (gogoproto.moretags) = "yaml:\"code_upload_access\"" - ]; - AccessType instantiate_default_permission = 2 - [ (gogoproto.moretags) = "yaml:\"instantiate_default_permission\"" ]; -} - -// CodeInfo is data for the uploaded contract WASM code -message CodeInfo { - // CodeHash is the unique identifier created by wasmvm - bytes code_hash = 1; - // Creator address who initially stored the code - string creator = 2; - // Used in v1beta1 - reserved 3, 4; - // InstantiateConfig access control to apply on contract creation, optional - AccessConfig instantiate_config = 5 [ (gogoproto.nullable) = false ]; -} - -// ContractInfo stores a WASM contract instance -message ContractInfo { - option (gogoproto.equal) = true; - - // CodeID is the reference to the stored Wasm code - uint64 code_id = 1 [ (gogoproto.customname) = "CodeID" ]; - // Creator address who initially instantiated the contract - string creator = 2; - // Admin is an optional address that can execute migrations - string admin = 3; - // Label is optional metadata to be stored with a contract instance. - string label = 4; - // Created Tx position when the contract was instantiated. - AbsoluteTxPosition created = 5; - string ibc_port_id = 6 [ (gogoproto.customname) = "IBCPortID" ]; - - // Extension is an extension point to store custom metadata within the - // persistence model. - google.protobuf.Any extension = 7 - [ (cosmos_proto.accepts_interface) = "ContractInfoExtension" ]; -} - -// ContractCodeHistoryOperationType actions that caused a code change -enum ContractCodeHistoryOperationType { - option (gogoproto.goproto_enum_prefix) = false; - // ContractCodeHistoryOperationTypeUnspecified placeholder for empty value - CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED = 0 - [ (gogoproto.enumvalue_customname) = - "ContractCodeHistoryOperationTypeUnspecified" ]; - // ContractCodeHistoryOperationTypeInit on chain contract instantiation - CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT = 1 - [ (gogoproto.enumvalue_customname) = - "ContractCodeHistoryOperationTypeInit" ]; - // ContractCodeHistoryOperationTypeMigrate code migration - CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE = 2 - [ (gogoproto.enumvalue_customname) = - "ContractCodeHistoryOperationTypeMigrate" ]; - // ContractCodeHistoryOperationTypeGenesis based on genesis data - CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS = 3 - [ (gogoproto.enumvalue_customname) = - "ContractCodeHistoryOperationTypeGenesis" ]; -} - -// ContractCodeHistoryEntry metadata to a contract. -message ContractCodeHistoryEntry { - ContractCodeHistoryOperationType operation = 1; - // CodeID is the reference to the stored WASM code - uint64 code_id = 2 [ (gogoproto.customname) = "CodeID" ]; - // Updated Tx position when the operation was executed. - AbsoluteTxPosition updated = 3; - bytes msg = 4 [ (gogoproto.casttype) = "RawContractMessage" ]; -} - -// AbsoluteTxPosition is a unique transaction position that allows for global -// ordering of transactions. -message AbsoluteTxPosition { - // BlockHeight is the block the contract was created at - uint64 block_height = 1; - // TxIndex is a monotonic counter within the block (actual transaction index, - // or gas consumed) - uint64 tx_index = 2; -} - -// Model is a struct that holds a KV pair -message Model { - // hex-encode key to read it better (this is often ascii) - bytes key = 1 [ (gogoproto.casttype) = - "github.com/tendermint/tendermint/libs/bytes.HexBytes" ]; - // base64-encode raw value - bytes value = 2; -} diff --git a/packages/codegen/proto/gogoproto/LICENSE b/packages/codegen/proto/gogoproto/LICENSE deleted file mode 100644 index 992eb2bd..00000000 --- a/packages/codegen/proto/gogoproto/LICENSE +++ /dev/null @@ -1,34 +0,0 @@ -Copyright (c) 2013, The GoGo Authors. All rights reserved. - -Protocol Buffers for Go with Gadgets - -Go support for Protocol Buffers - Google's data interchange format - -Copyright 2010 The Go Authors. All rights reserved. -https://github.com/golang/protobuf - -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. diff --git a/packages/codegen/proto/gogoproto/README.md b/packages/codegen/proto/gogoproto/README.md deleted file mode 100644 index 4cfc4768..00000000 --- a/packages/codegen/proto/gogoproto/README.md +++ /dev/null @@ -1 +0,0 @@ -# gogoproto \ No newline at end of file diff --git a/packages/codegen/proto/gogoproto/gogo.proto b/packages/codegen/proto/gogoproto/gogo.proto deleted file mode 100644 index 49e78f99..00000000 --- a/packages/codegen/proto/gogoproto/gogo.proto +++ /dev/null @@ -1,145 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2013, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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/gogo/protobuf/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/packages/codegen/proto/google/LICENSE b/packages/codegen/proto/google/LICENSE deleted file mode 100644 index 261eeb9e..00000000 --- a/packages/codegen/proto/google/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - 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 [yyyy] [name of copyright owner] - - 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/packages/codegen/proto/google/README.md b/packages/codegen/proto/google/README.md deleted file mode 100644 index 3bdc1f83..00000000 --- a/packages/codegen/proto/google/README.md +++ /dev/null @@ -1 +0,0 @@ -# google \ No newline at end of file diff --git a/packages/codegen/proto/google/api/annotations.proto b/packages/codegen/proto/google/api/annotations.proto deleted file mode 100644 index efdab3db..00000000 --- a/packages/codegen/proto/google/api/annotations.proto +++ /dev/null @@ -1,31 +0,0 @@ -// 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/packages/codegen/proto/google/api/http.proto b/packages/codegen/proto/google/api/http.proto deleted file mode 100644 index 113fa936..00000000 --- a/packages/codegen/proto/google/api/http.proto +++ /dev/null @@ -1,375 +0,0 @@ -// 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/packages/codegen/proto/google/protobuf/any.proto b/packages/codegen/proto/google/protobuf/any.proto deleted file mode 100644 index 4cf3843b..00000000 --- a/packages/codegen/proto/google/protobuf/any.proto +++ /dev/null @@ -1,155 +0,0 @@ -// 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 csharp_namespace = "Google.Protobuf.WellKnownTypes"; -option go_package = "types"; -option java_package = "com.google.protobuf"; -option java_outer_classname = "AnyProto"; -option java_multiple_files = true; -option objc_class_prefix = "GPB"; - -// `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); -// } -// -// 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 := ptypes.MarshalAny(foo) -// ... -// foo := &pb.Foo{} -// if err := ptypes.UnmarshalAny(any, 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. - // - // 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; -} diff --git a/packages/codegen/proto/google/protobuf/descriptor.proto b/packages/codegen/proto/google/protobuf/descriptor.proto deleted file mode 100644 index 4a08905a..00000000 --- a/packages/codegen/proto/google/protobuf/descriptor.proto +++ /dev/null @@ -1,885 +0,0 @@ -// 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 = "descriptor"; -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; -} - -// 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" and "proto3". - optional string syntax = 12; -} - -// 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; - - // 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 in proto3. However, Proto3 - // implementations should still be able to parse the group wire format and - // treat group fields as unknown fields. - 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_REQUIRED = 2; - LABEL_REPEATED = 3; - } - - 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. - // TODO(kenton): Base-64 encode? - 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; -} - -// 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; - - - // If set, all the classes from the .proto file are wrapped in a single - // outer class with the given name. This applies to both Proto1 - // (equivalent to the old "--one_java_file" option) and Proto2 (where - // a .proto always translates to a single class, but you may want to - // explicitly choose the class name). - optional string java_outer_classname = 8; - - // If set true, 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 outer class - // named by java_outer_classname. However, the outer 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]; - - // If set true, then the Java2 code generator will generate code that - // throws an exception whenever an attempt is made to assign a non-UTF-8 - // byte sequence to a string field. - // Message reflection will do the same. - // However, an extension field still accepts non-UTF-8 byte sequences. - // This option has no effect on when used with the lite runtime. - 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]; - optional bool php_generic_services = 42 [default = false]; - - // 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 = false]; - - - // 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; - - - // 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]; - - // 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 - - - // 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 { - // 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 not yet implemented in the open source - // release -- sorry, we'll try to include it in a future version! - optional CType ctype = 1 [default = STRING]; - enum CType { - // Default mode. - STRING = 0; - - 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. - 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 implementations may choose not to check required fields within - // a lazy sub-message. That is, calling IsInitialized() on the outer message - // may return true even if the inner message has missing required fields. - // This is necessary because otherwise the inner message would have to be - // parsed in order to perform the check, defeating the purpose of lazy - // parsing. An implementation which chooses not to check required fields - // must be consistent about it. That is, for any particular sub-message, the - // implementation must either *always* check its required fields, or *never* - // check its required fields, regardless of whether or not the message has - // been parsed. - optional bool lazy = 5 [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]; - - - // 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 -} - -message OneofOptions { - // 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 - - // 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]; - - // 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 { - - // 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]; - - // 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], ["qux", false] } represents - // "foo.(bar.baz).qux". - 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; -} - -// =================================================================== -// 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. 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 qux. - // // - // // Another line attached to qux. - // optional double qux = 4; - // - // // Detached comment for corge. This is not leading or trailing comments - // // to qux 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 offset. The end offset should be one past - // the last relevant byte (so the length of the text = end - begin). - optional int32 end = 4; - } -} diff --git a/packages/codegen/proto/google/protobuf/duration.proto b/packages/codegen/proto/google/protobuf/duration.proto deleted file mode 100644 index b14bea5d..00000000 --- a/packages/codegen/proto/google/protobuf/duration.proto +++ /dev/null @@ -1,116 +0,0 @@ -// 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 csharp_namespace = "Google.Protobuf.WellKnownTypes"; -option cc_enable_arenas = true; -option go_package = "types"; -option java_package = "com.google.protobuf"; -option java_outer_classname = "DurationProto"; -option java_multiple_files = true; -option objc_class_prefix = "GPB"; - -// 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 (durations.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; -} diff --git a/packages/codegen/proto/google/protobuf/empty.proto b/packages/codegen/proto/google/protobuf/empty.proto deleted file mode 100644 index 6057c852..00000000 --- a/packages/codegen/proto/google/protobuf/empty.proto +++ /dev/null @@ -1,52 +0,0 @@ -// 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 csharp_namespace = "Google.Protobuf.WellKnownTypes"; -option go_package = "types"; -option java_package = "com.google.protobuf"; -option java_outer_classname = "EmptyProto"; -option java_multiple_files = true; -option objc_class_prefix = "GPB"; -option cc_enable_arenas = true; - -// A generic empty message that you can re-use to avoid defining duplicated -// empty messages in your APIs. A typical example is to use it as the request -// or the response type of an API method. For instance: -// -// service Foo { -// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); -// } -// -// The JSON representation for `Empty` is empty JSON object `{}`. -message Empty {} diff --git a/packages/codegen/proto/google/protobuf/timestamp.proto b/packages/codegen/proto/google/protobuf/timestamp.proto deleted file mode 100644 index 0ebe36ea..00000000 --- a/packages/codegen/proto/google/protobuf/timestamp.proto +++ /dev/null @@ -1,138 +0,0 @@ -// 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 csharp_namespace = "Google.Protobuf.WellKnownTypes"; -option cc_enable_arenas = true; -option go_package = "types"; -option java_package = "com.google.protobuf"; -option java_outer_classname = "TimestampProto"; -option java_multiple_files = true; -option objc_class_prefix = "GPB"; - -// 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 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://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D -// ) 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; -} diff --git a/packages/codegen/proto/ibc/LICENSE b/packages/codegen/proto/ibc/LICENSE deleted file mode 100644 index c04a16b3..00000000 --- a/packages/codegen/proto/ibc/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 COSMOS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/packages/codegen/proto/ibc/README.md b/packages/codegen/proto/ibc/README.md deleted file mode 100644 index e4ee70c7..00000000 --- a/packages/codegen/proto/ibc/README.md +++ /dev/null @@ -1 +0,0 @@ -# ibc \ No newline at end of file diff --git a/packages/codegen/proto/ibc/applications/transfer/v1/genesis.proto b/packages/codegen/proto/ibc/applications/transfer/v1/genesis.proto deleted file mode 100644 index 73d9fddd..00000000 --- a/packages/codegen/proto/ibc/applications/transfer/v1/genesis.proto +++ /dev/null @@ -1,19 +0,0 @@ -syntax = "proto3"; - -package ibc.applications.transfer.v1; - -option go_package = "github.com/cosmos/ibc-go/v2/modules/apps/transfer/types"; - -import "ibc/applications/transfer/v1/transfer.proto"; -import "gogoproto/gogo.proto"; - -// GenesisState defines the ibc-transfer genesis state -message GenesisState { - string port_id = 1 [(gogoproto.moretags) = "yaml:\"port_id\""]; - repeated DenomTrace denom_traces = 2 [ - (gogoproto.castrepeated) = "Traces", - (gogoproto.nullable) = false, - (gogoproto.moretags) = "yaml:\"denom_traces\"" - ]; - Params params = 3 [(gogoproto.nullable) = false]; -} diff --git a/packages/codegen/proto/ibc/applications/transfer/v1/query.proto b/packages/codegen/proto/ibc/applications/transfer/v1/query.proto deleted file mode 100644 index f2faa87b..00000000 --- a/packages/codegen/proto/ibc/applications/transfer/v1/query.proto +++ /dev/null @@ -1,67 +0,0 @@ -syntax = "proto3"; - -package ibc.applications.transfer.v1; - -import "gogoproto/gogo.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/v2/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"; - } -} - -// QueryDenomTraceRequest is the request type for the Query/DenomTrace RPC -// method -message QueryDenomTraceRequest { - // hash (in hex format) 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; -} diff --git a/packages/codegen/proto/ibc/applications/transfer/v1/transfer.proto b/packages/codegen/proto/ibc/applications/transfer/v1/transfer.proto deleted file mode 100644 index 10ce92f9..00000000 --- a/packages/codegen/proto/ibc/applications/transfer/v1/transfer.proto +++ /dev/null @@ -1,30 +0,0 @@ -syntax = "proto3"; - -package ibc.applications.transfer.v1; - -option go_package = "github.com/cosmos/ibc-go/v2/modules/apps/transfer/types"; - -import "gogoproto/gogo.proto"; - -// 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 [(gogoproto.moretags) = "yaml:\"send_enabled\""]; - // receive_enabled enables or disables all cross-chain token transfers to this - // chain. - bool receive_enabled = 2 [(gogoproto.moretags) = "yaml:\"receive_enabled\""]; -} diff --git a/packages/codegen/proto/ibc/applications/transfer/v1/tx.proto b/packages/codegen/proto/ibc/applications/transfer/v1/tx.proto deleted file mode 100644 index dfc480d0..00000000 --- a/packages/codegen/proto/ibc/applications/transfer/v1/tx.proto +++ /dev/null @@ -1,44 +0,0 @@ -syntax = "proto3"; - -package ibc.applications.transfer.v1; - -option go_package = "github.com/cosmos/ibc-go/v2/modules/apps/transfer/types"; - -import "gogoproto/gogo.proto"; -import "cosmos/base/v1beta1/coin.proto"; -import "ibc/core/client/v1/client.proto"; - -// Msg defines the ibc/transfer Msg service. -service Msg { - // Transfer defines a rpc handler method for MsgTransfer. - rpc Transfer(MsgTransfer) returns (MsgTransferResponse); -} - -// 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 (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // the port on which the packet will be sent - string source_port = 1 [(gogoproto.moretags) = "yaml:\"source_port\""]; - // the channel by which the packet will be sent - string source_channel = 2 [(gogoproto.moretags) = "yaml:\"source_channel\""]; - // the tokens to be transferred - cosmos.base.v1beta1.Coin token = 3 [(gogoproto.nullable) = false]; - // 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.moretags) = "yaml:\"timeout_height\"", (gogoproto.nullable) = false]; - // Timeout timestamp (in nanoseconds) relative to the current block timestamp. - // The timeout is disabled when set to 0. - uint64 timeout_timestamp = 7 [(gogoproto.moretags) = "yaml:\"timeout_timestamp\""]; -} - -// MsgTransferResponse defines the Msg/Transfer response type. -message MsgTransferResponse {} diff --git a/packages/codegen/proto/ibc/applications/transfer/v2/packet.proto b/packages/codegen/proto/ibc/applications/transfer/v2/packet.proto deleted file mode 100644 index 593392a9..00000000 --- a/packages/codegen/proto/ibc/applications/transfer/v2/packet.proto +++ /dev/null @@ -1,19 +0,0 @@ -syntax = "proto3"; - -package ibc.applications.transfer.v2; - -option go_package = "github.com/cosmos/ibc-go/v2/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; -} diff --git a/packages/codegen/proto/ibc/core/channel/v1/channel.proto b/packages/codegen/proto/ibc/core/channel/v1/channel.proto deleted file mode 100644 index c7f42dbf..00000000 --- a/packages/codegen/proto/ibc/core/channel/v1/channel.proto +++ /dev/null @@ -1,148 +0,0 @@ -syntax = "proto3"; - -package ibc.core.channel.v1; - -option go_package = "github.com/cosmos/ibc-go/v2/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 [(gogoproto.moretags) = "yaml:\"connection_hops\""]; - // 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 [(gogoproto.moretags) = "yaml:\"connection_hops\""]; - // 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 [(gogoproto.moretags) = "yaml:\"port_id\""]; - // channel end on the counterparty chain - string channel_id = 2 [(gogoproto.moretags) = "yaml:\"channel_id\""]; -} - -// 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 [(gogoproto.moretags) = "yaml:\"source_port\""]; - // identifies the channel end on the sending chain. - string source_channel = 3 [(gogoproto.moretags) = "yaml:\"source_channel\""]; - // identifies the port on the receiving chain. - string destination_port = 4 [(gogoproto.moretags) = "yaml:\"destination_port\""]; - // identifies the channel end on the receiving chain. - string destination_channel = 5 [(gogoproto.moretags) = "yaml:\"destination_channel\""]; - // 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.moretags) = "yaml:\"timeout_height\"", (gogoproto.nullable) = false]; - // block timestamp (in nanoseconds) after which the packet times out - uint64 timeout_timestamp = 8 [(gogoproto.moretags) = "yaml:\"timeout_timestamp\""]; -} - -// 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 [(gogoproto.moretags) = "yaml:\"port_id\""]; - // channel unique identifier. - string channel_id = 2 [(gogoproto.moretags) = "yaml:\"channel_id\""]; - // packet sequence. - uint64 sequence = 3; - // embedded data that represents packet state. - bytes data = 4; -} - -// 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; - } -} diff --git a/packages/codegen/proto/ibc/core/channel/v1/genesis.proto b/packages/codegen/proto/ibc/core/channel/v1/genesis.proto deleted file mode 100644 index 38b57ed6..00000000 --- a/packages/codegen/proto/ibc/core/channel/v1/genesis.proto +++ /dev/null @@ -1,32 +0,0 @@ -syntax = "proto3"; - -package ibc.core.channel.v1; - -option go_package = "github.com/cosmos/ibc-go/v2/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, (gogoproto.moretags) = "yaml:\"send_sequences\""]; - repeated PacketSequence recv_sequences = 6 - [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"recv_sequences\""]; - repeated PacketSequence ack_sequences = 7 - [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"ack_sequences\""]; - // the sequence for the next generated channel identifier - uint64 next_channel_sequence = 8 [(gogoproto.moretags) = "yaml:\"next_channel_sequence\""]; -} - -// PacketSequence defines the genesis type necessary to retrieve and store -// next send and receive sequences. -message PacketSequence { - string port_id = 1 [(gogoproto.moretags) = "yaml:\"port_id\""]; - string channel_id = 2 [(gogoproto.moretags) = "yaml:\"channel_id\""]; - uint64 sequence = 3; -} diff --git a/packages/codegen/proto/ibc/core/channel/v1/query.proto b/packages/codegen/proto/ibc/core/channel/v1/query.proto deleted file mode 100644 index 212cb645..00000000 --- a/packages/codegen/proto/ibc/core/channel/v1/query.proto +++ /dev/null @@ -1,376 +0,0 @@ -syntax = "proto3"; - -package ibc.core.channel.v1; - -option go_package = "github.com/cosmos/ibc-go/v2/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"; - } -} - -// 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]; -} diff --git a/packages/codegen/proto/ibc/core/channel/v1/tx.proto b/packages/codegen/proto/ibc/core/channel/v1/tx.proto deleted file mode 100644 index dab45080..00000000 --- a/packages/codegen/proto/ibc/core/channel/v1/tx.proto +++ /dev/null @@ -1,211 +0,0 @@ -syntax = "proto3"; - -package ibc.core.channel.v1; - -option go_package = "github.com/cosmos/ibc-go/v2/modules/core/04-channel/types"; - -import "gogoproto/gogo.proto"; -import "ibc/core/client/v1/client.proto"; -import "ibc/core/channel/v1/channel.proto"; - -// Msg defines the ibc/channel Msg service. -service Msg { - // 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); -} - -// MsgChannelOpenInit defines an sdk.Msg to initialize a channel handshake. It -// is called by a relayer on Chain A. -message MsgChannelOpenInit { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - string port_id = 1 [(gogoproto.moretags) = "yaml:\"port_id\""]; - Channel channel = 2 [(gogoproto.nullable) = false]; - string signer = 3; -} - -// MsgChannelOpenInitResponse defines the Msg/ChannelOpenInit response type. -message MsgChannelOpenInitResponse {} - -// MsgChannelOpenInit defines a msg sent by a Relayer to try to open a channel -// on Chain B. -message MsgChannelOpenTry { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - string port_id = 1 [(gogoproto.moretags) = "yaml:\"port_id\""]; - // in the case of crossing hello's, when both chains call OpenInit, we need - // the channel identifier of the previous channel in state INIT - string previous_channel_id = 2 [(gogoproto.moretags) = "yaml:\"previous_channel_id\""]; - Channel channel = 3 [(gogoproto.nullable) = false]; - string counterparty_version = 4 [(gogoproto.moretags) = "yaml:\"counterparty_version\""]; - bytes proof_init = 5 [(gogoproto.moretags) = "yaml:\"proof_init\""]; - ibc.core.client.v1.Height proof_height = 6 - [(gogoproto.moretags) = "yaml:\"proof_height\"", (gogoproto.nullable) = false]; - string signer = 7; -} - -// MsgChannelOpenTryResponse defines the Msg/ChannelOpenTry response type. -message MsgChannelOpenTryResponse {} - -// 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 (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - string port_id = 1 [(gogoproto.moretags) = "yaml:\"port_id\""]; - string channel_id = 2 [(gogoproto.moretags) = "yaml:\"channel_id\""]; - string counterparty_channel_id = 3 [(gogoproto.moretags) = "yaml:\"counterparty_channel_id\""]; - string counterparty_version = 4 [(gogoproto.moretags) = "yaml:\"counterparty_version\""]; - bytes proof_try = 5 [(gogoproto.moretags) = "yaml:\"proof_try\""]; - ibc.core.client.v1.Height proof_height = 6 - [(gogoproto.moretags) = "yaml:\"proof_height\"", (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 (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - string port_id = 1 [(gogoproto.moretags) = "yaml:\"port_id\""]; - string channel_id = 2 [(gogoproto.moretags) = "yaml:\"channel_id\""]; - bytes proof_ack = 3 [(gogoproto.moretags) = "yaml:\"proof_ack\""]; - ibc.core.client.v1.Height proof_height = 4 - [(gogoproto.moretags) = "yaml:\"proof_height\"", (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 (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - string port_id = 1 [(gogoproto.moretags) = "yaml:\"port_id\""]; - string channel_id = 2 [(gogoproto.moretags) = "yaml:\"channel_id\""]; - 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 (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - string port_id = 1 [(gogoproto.moretags) = "yaml:\"port_id\""]; - string channel_id = 2 [(gogoproto.moretags) = "yaml:\"channel_id\""]; - bytes proof_init = 3 [(gogoproto.moretags) = "yaml:\"proof_init\""]; - ibc.core.client.v1.Height proof_height = 4 - [(gogoproto.moretags) = "yaml:\"proof_height\"", (gogoproto.nullable) = false]; - string signer = 5; -} - -// MsgChannelCloseConfirmResponse defines the Msg/ChannelCloseConfirm response -// type. -message MsgChannelCloseConfirmResponse {} - -// MsgRecvPacket receives incoming IBC packet -message MsgRecvPacket { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - Packet packet = 1 [(gogoproto.nullable) = false]; - bytes proof_commitment = 2 [(gogoproto.moretags) = "yaml:\"proof_commitment\""]; - ibc.core.client.v1.Height proof_height = 3 - [(gogoproto.moretags) = "yaml:\"proof_height\"", (gogoproto.nullable) = false]; - string signer = 4; -} - -// MsgRecvPacketResponse defines the Msg/RecvPacket response type. -message MsgRecvPacketResponse {} - -// MsgTimeout receives timed-out packet -message MsgTimeout { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - Packet packet = 1 [(gogoproto.nullable) = false]; - bytes proof_unreceived = 2 [(gogoproto.moretags) = "yaml:\"proof_unreceived\""]; - ibc.core.client.v1.Height proof_height = 3 - [(gogoproto.moretags) = "yaml:\"proof_height\"", (gogoproto.nullable) = false]; - uint64 next_sequence_recv = 4 [(gogoproto.moretags) = "yaml:\"next_sequence_recv\""]; - string signer = 5; -} - -// MsgTimeoutResponse defines the Msg/Timeout response type. -message MsgTimeoutResponse {} - -// MsgTimeoutOnClose timed-out packet upon counterparty channel closure. -message MsgTimeoutOnClose { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - Packet packet = 1 [(gogoproto.nullable) = false]; - bytes proof_unreceived = 2 [(gogoproto.moretags) = "yaml:\"proof_unreceived\""]; - bytes proof_close = 3 [(gogoproto.moretags) = "yaml:\"proof_close\""]; - ibc.core.client.v1.Height proof_height = 4 - [(gogoproto.moretags) = "yaml:\"proof_height\"", (gogoproto.nullable) = false]; - uint64 next_sequence_recv = 5 [(gogoproto.moretags) = "yaml:\"next_sequence_recv\""]; - string signer = 6; -} - -// MsgTimeoutOnCloseResponse defines the Msg/TimeoutOnClose response type. -message MsgTimeoutOnCloseResponse {} - -// MsgAcknowledgement receives incoming IBC acknowledgement -message MsgAcknowledgement { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - Packet packet = 1 [(gogoproto.nullable) = false]; - bytes acknowledgement = 2; - bytes proof_acked = 3 [(gogoproto.moretags) = "yaml:\"proof_acked\""]; - ibc.core.client.v1.Height proof_height = 4 - [(gogoproto.moretags) = "yaml:\"proof_height\"", (gogoproto.nullable) = false]; - string signer = 5; -} - -// MsgAcknowledgementResponse defines the Msg/Acknowledgement response type. -message MsgAcknowledgementResponse {} diff --git a/packages/codegen/proto/ibc/core/client/v1/client.proto b/packages/codegen/proto/ibc/core/client/v1/client.proto deleted file mode 100644 index f0a1538e..00000000 --- a/packages/codegen/proto/ibc/core/client/v1/client.proto +++ /dev/null @@ -1,104 +0,0 @@ -syntax = "proto3"; - -package ibc.core.client.v1; - -option go_package = "github.com/cosmos/ibc-go/v2/modules/core/02-client/types"; - -import "gogoproto/gogo.proto"; -import "google/protobuf/any.proto"; -import "cosmos/upgrade/v1beta1/upgrade.proto"; -import "cosmos_proto/cosmos.proto"; - -// IdentifiedClientState defines a client state with an additional client -// identifier field. -message IdentifiedClientState { - // client identifier - string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""]; - // client state - google.protobuf.Any client_state = 2 [(gogoproto.moretags) = "yaml:\"client_state\""]; -} - -// 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 [(gogoproto.moretags) = "yaml\"consensus_state\""]; -} - -// ClientConsensusStates defines all the stored consensus states for a given -// client. -message ClientConsensusStates { - // client identifier - string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""]; - // consensus states and their heights associated with the client - repeated ConsensusStateWithHeight consensus_states = 2 - [(gogoproto.moretags) = "yaml:\"consensus_states\"", (gogoproto.nullable) = false]; -} - -// ClientUpdateProposal is a governance proposal. If it passes, the substitute -// client's latest consensus state is copied over to the subject client. The proposal -// handler may fail if the subject and the substitute do not match in client and -// chain parameters (with exception to latest height, frozen height, and chain-id). -message ClientUpdateProposal { - option (gogoproto.goproto_getters) = false; - option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; - - // the title of the update proposal - string title = 1; - // the description of the proposal - string description = 2; - // the client identifier for the client to be updated if the proposal passes - string subject_client_id = 3 [(gogoproto.moretags) = "yaml:\"subject_client_id\""]; - // the substitute client identifier for the client standing in for the subject - // client - string substitute_client_id = 4 [(gogoproto.moretags) = "yaml:\"substitute_client_id\""]; -} - -// UpgradeProposal is a gov Content type for initiating an IBC breaking -// upgrade. -message UpgradeProposal { - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = false; - option (gogoproto.equal) = true; - option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; - - string title = 1; - string description = 2; - cosmos.upgrade.v1beta1.Plan plan = 3 [(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 - google.protobuf.Any upgraded_client_state = 4 [(gogoproto.moretags) = "yaml:\"upgraded_client_state\""]; -} - -// 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 [(gogoproto.moretags) = "yaml:\"revision_number\""]; - // the height within the given revision - uint64 revision_height = 2 [(gogoproto.moretags) = "yaml:\"revision_height\""]; -} - -// Params defines the set of IBC light client parameters. -message Params { - // allowed_clients defines the list of allowed client state types. - repeated string allowed_clients = 1 [(gogoproto.moretags) = "yaml:\"allowed_clients\""]; -} diff --git a/packages/codegen/proto/ibc/core/client/v1/genesis.proto b/packages/codegen/proto/ibc/core/client/v1/genesis.proto deleted file mode 100644 index 6668f2ca..00000000 --- a/packages/codegen/proto/ibc/core/client/v1/genesis.proto +++ /dev/null @@ -1,48 +0,0 @@ -syntax = "proto3"; - -package ibc.core.client.v1; - -option go_package = "github.com/cosmos/ibc-go/v2/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", - (gogoproto.moretags) = "yaml:\"clients_consensus\"" - ]; - // metadata from each client - repeated IdentifiedGenesisMetadata clients_metadata = 3 - [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"clients_metadata\""]; - Params params = 4 [(gogoproto.nullable) = false]; - // create localhost on initialization - bool create_localhost = 5 [(gogoproto.moretags) = "yaml:\"create_localhost\""]; - // the sequence for the next generated client identifier - uint64 next_client_sequence = 6 [(gogoproto.moretags) = "yaml:\"next_client_sequence\""]; -} - -// 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 [(gogoproto.moretags) = "yaml:\"client_id\""]; - repeated GenesisMetadata client_metadata = 2 - [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"client_metadata\""]; -} diff --git a/packages/codegen/proto/ibc/core/client/v1/query.proto b/packages/codegen/proto/ibc/core/client/v1/query.proto deleted file mode 100644 index b6f8eb47..00000000 --- a/packages/codegen/proto/ibc/core/client/v1/query.proto +++ /dev/null @@ -1,184 +0,0 @@ -syntax = "proto3"; - -package ibc.core.client.v1; - -option go_package = "github.com/cosmos/ibc-go/v2/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}"; - } - - // 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. - rpc ClientParams(QueryClientParamsRequest) returns (QueryClientParamsResponse) { - option (google.api.http).get = "/ibc/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; -} - -// 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/packages/codegen/proto/ibc/core/client/v1/tx.proto b/packages/codegen/proto/ibc/core/client/v1/tx.proto deleted file mode 100644 index 82df96de..00000000 --- a/packages/codegen/proto/ibc/core/client/v1/tx.proto +++ /dev/null @@ -1,99 +0,0 @@ -syntax = "proto3"; - -package ibc.core.client.v1; - -option go_package = "github.com/cosmos/ibc-go/v2/modules/core/02-client/types"; - -import "gogoproto/gogo.proto"; -import "google/protobuf/any.proto"; - -// Msg defines the ibc/client Msg service. -service Msg { - // 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); -} - -// MsgCreateClient defines a message to create an IBC client -message MsgCreateClient { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // light client state - google.protobuf.Any client_state = 1 [(gogoproto.moretags) = "yaml:\"client_state\""]; - // consensus state associated with the client that corresponds to a given - // height. - google.protobuf.Any consensus_state = 2 [(gogoproto.moretags) = "yaml:\"consensus_state\""]; - // 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 header. -message MsgUpdateClient { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // client unique identifier - string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""]; - // header to update the light client - google.protobuf.Any header = 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 (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // client unique identifier - string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""]; - // upgraded client state - google.protobuf.Any client_state = 2 [(gogoproto.moretags) = "yaml:\"client_state\""]; - // upgraded consensus state, only contains enough information to serve as a - // basis of trust in update logic - google.protobuf.Any consensus_state = 3 [(gogoproto.moretags) = "yaml:\"consensus_state\""]; - // proof that old chain committed to new client - bytes proof_upgrade_client = 4 [(gogoproto.moretags) = "yaml:\"proof_upgrade_client\""]; - // proof that old chain committed to new consensus state - bytes proof_upgrade_consensus_state = 5 [(gogoproto.moretags) = "yaml:\"proof_upgrade_consensus_state\""]; - // 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. -message MsgSubmitMisbehaviour { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // client unique identifier - string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""]; - // 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 {} diff --git a/packages/codegen/proto/ibc/core/commitment/v1/commitment.proto b/packages/codegen/proto/ibc/core/commitment/v1/commitment.proto deleted file mode 100644 index b460b9a1..00000000 --- a/packages/codegen/proto/ibc/core/commitment/v1/commitment.proto +++ /dev/null @@ -1,41 +0,0 @@ -syntax = "proto3"; - -package ibc.core.commitment.v1; - -option go_package = "github.com/cosmos/ibc-go/v2/modules/core/23-commitment/types"; - -import "gogoproto/gogo.proto"; -import "confio/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 [(gogoproto.moretags) = "yaml:\"key_prefix\""]; -} - -// 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 [(gogoproto.moretags) = "yaml:\"key_path\""]; -} - -// 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 ics23.CommitmentProof proofs = 1; -} diff --git a/packages/codegen/proto/ibc/core/connection/v1/connection.proto b/packages/codegen/proto/ibc/core/connection/v1/connection.proto deleted file mode 100644 index 74c39e26..00000000 --- a/packages/codegen/proto/ibc/core/connection/v1/connection.proto +++ /dev/null @@ -1,114 +0,0 @@ -syntax = "proto3"; - -package ibc.core.connection.v1; - -option go_package = "github.com/cosmos/ibc-go/v2/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 [(gogoproto.moretags) = "yaml:\"client_id\""]; - // 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 [(gogoproto.moretags) = "yaml:\"delay_period\""]; -} - -// IdentifiedConnection defines a connection with additional connection -// identifier field. -message IdentifiedConnection { - option (gogoproto.goproto_getters) = false; - // connection identifier. - string id = 1 [(gogoproto.moretags) = "yaml:\"id\""]; - // client associated with this connection. - string client_id = 2 [(gogoproto.moretags) = "yaml:\"client_id\""]; - // 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 [(gogoproto.moretags) = "yaml:\"delay_period\""]; -} - -// 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 [(gogoproto.moretags) = "yaml:\"client_id\""]; - // identifies the connection end on the counterparty chain associated with a - // given connection. - string connection_id = 2 [(gogoproto.moretags) = "yaml:\"connection_id\""]; - // 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 [(gogoproto.moretags) = "yaml:\"client_id\""]; - // 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 [(gogoproto.moretags) = "yaml:\"max_expected_time_per_block\""]; -} diff --git a/packages/codegen/proto/ibc/core/connection/v1/genesis.proto b/packages/codegen/proto/ibc/core/connection/v1/genesis.proto deleted file mode 100644 index ec5be642..00000000 --- a/packages/codegen/proto/ibc/core/connection/v1/genesis.proto +++ /dev/null @@ -1,18 +0,0 @@ -syntax = "proto3"; - -package ibc.core.connection.v1; - -option go_package = "github.com/cosmos/ibc-go/v2/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, (gogoproto.moretags) = "yaml:\"client_connection_paths\""]; - // the sequence for the next generated connection identifier - uint64 next_connection_sequence = 3 [(gogoproto.moretags) = "yaml:\"next_connection_sequence\""]; - Params params = 4 [(gogoproto.nullable) = false]; -} diff --git a/packages/codegen/proto/ibc/core/connection/v1/query.proto b/packages/codegen/proto/ibc/core/connection/v1/query.proto deleted file mode 100644 index d668c3d2..00000000 --- a/packages/codegen/proto/ibc/core/connection/v1/query.proto +++ /dev/null @@ -1,138 +0,0 @@ -syntax = "proto3"; - -package ibc.core.connection.v1; - -option go_package = "github.com/cosmos/ibc-go/v2/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}"; - } -} - -// 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 [(gogoproto.moretags) = "yaml:\"connection_id\""]; -} - -// 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 [(gogoproto.moretags) = "yaml:\"connection_id\""]; - 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]; -} diff --git a/packages/codegen/proto/ibc/core/connection/v1/tx.proto b/packages/codegen/proto/ibc/core/connection/v1/tx.proto deleted file mode 100644 index 9d4e577e..00000000 --- a/packages/codegen/proto/ibc/core/connection/v1/tx.proto +++ /dev/null @@ -1,119 +0,0 @@ -syntax = "proto3"; - -package ibc.core.connection.v1; - -option go_package = "github.com/cosmos/ibc-go/v2/modules/core/03-connection/types"; - -import "gogoproto/gogo.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 { - // 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); -} - -// MsgConnectionOpenInit defines the msg sent by an account on Chain A to -// initialize a connection with Chain B. -message MsgConnectionOpenInit { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""]; - Counterparty counterparty = 2 [(gogoproto.nullable) = false]; - Version version = 3; - uint64 delay_period = 4 [(gogoproto.moretags) = "yaml:\"delay_period\""]; - 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 (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""]; - // in the case of crossing hello's, when both chains call OpenInit, we need - // the connection identifier of the previous connection in state INIT - string previous_connection_id = 2 [(gogoproto.moretags) = "yaml:\"previous_connection_id\""]; - google.protobuf.Any client_state = 3 [(gogoproto.moretags) = "yaml:\"client_state\""]; - Counterparty counterparty = 4 [(gogoproto.nullable) = false]; - uint64 delay_period = 5 [(gogoproto.moretags) = "yaml:\"delay_period\""]; - repeated Version counterparty_versions = 6 [(gogoproto.moretags) = "yaml:\"counterparty_versions\""]; - ibc.core.client.v1.Height proof_height = 7 - [(gogoproto.moretags) = "yaml:\"proof_height\"", (gogoproto.nullable) = false]; - // proof of the initialization the connection on Chain A: `UNITIALIZED -> - // INIT` - bytes proof_init = 8 [(gogoproto.moretags) = "yaml:\"proof_init\""]; - // proof of client state included in message - bytes proof_client = 9 [(gogoproto.moretags) = "yaml:\"proof_client\""]; - // proof of client consensus state - bytes proof_consensus = 10 [(gogoproto.moretags) = "yaml:\"proof_consensus\""]; - ibc.core.client.v1.Height consensus_height = 11 - [(gogoproto.moretags) = "yaml:\"consensus_height\"", (gogoproto.nullable) = false]; - string signer = 12; -} - -// 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 (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - string connection_id = 1 [(gogoproto.moretags) = "yaml:\"connection_id\""]; - string counterparty_connection_id = 2 [(gogoproto.moretags) = "yaml:\"counterparty_connection_id\""]; - Version version = 3; - google.protobuf.Any client_state = 4 [(gogoproto.moretags) = "yaml:\"client_state\""]; - ibc.core.client.v1.Height proof_height = 5 - [(gogoproto.moretags) = "yaml:\"proof_height\"", (gogoproto.nullable) = false]; - // proof of the initialization the connection on Chain B: `UNITIALIZED -> - // TRYOPEN` - bytes proof_try = 6 [(gogoproto.moretags) = "yaml:\"proof_try\""]; - // proof of client state included in message - bytes proof_client = 7 [(gogoproto.moretags) = "yaml:\"proof_client\""]; - // proof of client consensus state - bytes proof_consensus = 8 [(gogoproto.moretags) = "yaml:\"proof_consensus\""]; - ibc.core.client.v1.Height consensus_height = 9 - [(gogoproto.moretags) = "yaml:\"consensus_height\"", (gogoproto.nullable) = false]; - string signer = 10; -} - -// 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 (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - string connection_id = 1 [(gogoproto.moretags) = "yaml:\"connection_id\""]; - // proof for the change of the connection state on Chain A: `INIT -> OPEN` - bytes proof_ack = 2 [(gogoproto.moretags) = "yaml:\"proof_ack\""]; - ibc.core.client.v1.Height proof_height = 3 - [(gogoproto.moretags) = "yaml:\"proof_height\"", (gogoproto.nullable) = false]; - string signer = 4; -} - -// MsgConnectionOpenConfirmResponse defines the Msg/ConnectionOpenConfirm -// response type. -message MsgConnectionOpenConfirmResponse {} diff --git a/packages/codegen/proto/ibc/core/port/v1/query.proto b/packages/codegen/proto/ibc/core/port/v1/query.proto deleted file mode 100644 index 3c7fb7cb..00000000 --- a/packages/codegen/proto/ibc/core/port/v1/query.proto +++ /dev/null @@ -1,35 +0,0 @@ -syntax = "proto3"; - -package ibc.core.port.v1; - -option go_package = "github.com/cosmos/ibc-go/v2/modules/core/05-port/types"; - -import "ibc/core/channel/v1/channel.proto"; - -// Query defines the gRPC querier service -service Query { - // AppVersion queries an IBC Port and determines the appropriate application version to be used - rpc AppVersion(QueryAppVersionRequest) returns (QueryAppVersionResponse) {} -} - -// QueryAppVersionRequest is the request type for the Query/AppVersion RPC method -message QueryAppVersionRequest { - // port unique identifier - string port_id = 1; - // connection unique identifier - string connection_id = 2; - // whether the channel is ordered or unordered - ibc.core.channel.v1.Order ordering = 3; - // counterparty channel end - ibc.core.channel.v1.Counterparty counterparty = 4; - // proposed version - string proposed_version = 5; -} - -// QueryAppVersionResponse is the response type for the Query/AppVersion RPC method. -message QueryAppVersionResponse { - // port id associated with the request identifiers - string port_id = 1; - // supported app version - string version = 2; -} diff --git a/packages/codegen/proto/ibc/core/types/v1/genesis.proto b/packages/codegen/proto/ibc/core/types/v1/genesis.proto deleted file mode 100644 index e39f6cdb..00000000 --- a/packages/codegen/proto/ibc/core/types/v1/genesis.proto +++ /dev/null @@ -1,23 +0,0 @@ -syntax = "proto3"; - -package ibc.core.types.v1; - -option go_package = "github.com/cosmos/ibc-go/v2/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, (gogoproto.moretags) = "yaml:\"client_genesis\""]; - // ICS003 - Connections genesis state - ibc.core.connection.v1.GenesisState connection_genesis = 2 - [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"connection_genesis\""]; - // ICS004 - Channel genesis state - ibc.core.channel.v1.GenesisState channel_genesis = 3 - [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"channel_genesis\""]; -} diff --git a/packages/codegen/proto/ibc/lightclients/localhost/v1/localhost.proto b/packages/codegen/proto/ibc/lightclients/localhost/v1/localhost.proto deleted file mode 100644 index 4fe05b78..00000000 --- a/packages/codegen/proto/ibc/lightclients/localhost/v1/localhost.proto +++ /dev/null @@ -1,18 +0,0 @@ -syntax = "proto3"; - -package ibc.lightclients.localhost.v1; - -option go_package = "github.com/cosmos/ibc-go/v2/modules/light-clients/09-localhost/types"; - -import "gogoproto/gogo.proto"; -import "ibc/core/client/v1/client.proto"; - -// ClientState defines a loopback (localhost) client. It requires (read-only) -// access to keys outside the client prefix. -message ClientState { - option (gogoproto.goproto_getters) = false; - // self chain ID - string chain_id = 1 [(gogoproto.moretags) = "yaml:\"chain_id\""]; - // self latest block height - ibc.core.client.v1.Height height = 2 [(gogoproto.nullable) = false]; -} diff --git a/packages/codegen/proto/ibc/lightclients/solomachine/v1/solomachine.proto b/packages/codegen/proto/ibc/lightclients/solomachine/v1/solomachine.proto deleted file mode 100644 index b9b8a3a2..00000000 --- a/packages/codegen/proto/ibc/lightclients/solomachine/v1/solomachine.proto +++ /dev/null @@ -1,189 +0,0 @@ -syntax = "proto3"; - -package ibc.lightclients.solomachine.v1; - -option go_package = "github.com/cosmos/ibc-go/v2/modules/core/02-client/legacy/v100"; - -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 - uint64 frozen_sequence = 2 [(gogoproto.moretags) = "yaml:\"frozen_sequence\""]; - ConsensusState consensus_state = 3 [(gogoproto.moretags) = "yaml:\"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 = 4 [(gogoproto.moretags) = "yaml:\"allow_update_after_proposal\""]; -} - -// 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 [(gogoproto.moretags) = "yaml:\"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. - 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 [(gogoproto.moretags) = "yaml:\"new_public_key\""]; - string new_diversifier = 5 [(gogoproto.moretags) = "yaml:\"new_diversifier\""]; -} - -// 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 [(gogoproto.moretags) = "yaml:\"client_id\""]; - uint64 sequence = 2; - SignatureAndData signature_one = 3 [(gogoproto.moretags) = "yaml:\"signature_one\""]; - SignatureAndData signature_two = 4 [(gogoproto.moretags) = "yaml:\"signature_two\""]; -} - -// 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 [(gogoproto.moretags) = "yaml:\"data_type\""]; - 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 [(gogoproto.moretags) = "yaml:\"signature_data\""]; - 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 [(gogoproto.moretags) = "yaml:\"data_type\""]; - // 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 [(gogoproto.moretags) = "yaml:\"new_pub_key\""]; - // header diversifier - string new_diversifier = 2 [(gogoproto.moretags) = "yaml:\"new_diversifier\""]; -} - -// 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 [(gogoproto.moretags) = "yaml:\"client_state\""]; -} - -// 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 [(gogoproto.moretags) = "yaml:\"consensus_state\""]; -} - -// 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 [(gogoproto.moretags) = "yaml:\"next_seq_recv\""]; -} diff --git a/packages/codegen/proto/ibc/lightclients/solomachine/v2/solomachine.proto b/packages/codegen/proto/ibc/lightclients/solomachine/v2/solomachine.proto deleted file mode 100644 index 0c8c638c..00000000 --- a/packages/codegen/proto/ibc/lightclients/solomachine/v2/solomachine.proto +++ /dev/null @@ -1,189 +0,0 @@ -syntax = "proto3"; - -package ibc.lightclients.solomachine.v2; - -option go_package = "github.com/cosmos/ibc-go/v2/modules/light-clients/06-solomachine/types"; - -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 [(gogoproto.moretags) = "yaml:\"is_frozen\""]; - ConsensusState consensus_state = 3 [(gogoproto.moretags) = "yaml:\"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 = 4 [(gogoproto.moretags) = "yaml:\"allow_update_after_proposal\""]; -} - -// 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 [(gogoproto.moretags) = "yaml:\"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. - 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 [(gogoproto.moretags) = "yaml:\"new_public_key\""]; - string new_diversifier = 5 [(gogoproto.moretags) = "yaml:\"new_diversifier\""]; -} - -// 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 [(gogoproto.moretags) = "yaml:\"client_id\""]; - uint64 sequence = 2; - SignatureAndData signature_one = 3 [(gogoproto.moretags) = "yaml:\"signature_one\""]; - SignatureAndData signature_two = 4 [(gogoproto.moretags) = "yaml:\"signature_two\""]; -} - -// 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 [(gogoproto.moretags) = "yaml:\"data_type\""]; - 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 [(gogoproto.moretags) = "yaml:\"signature_data\""]; - 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 [(gogoproto.moretags) = "yaml:\"data_type\""]; - // 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 [(gogoproto.moretags) = "yaml:\"new_pub_key\""]; - // header diversifier - string new_diversifier = 2 [(gogoproto.moretags) = "yaml:\"new_diversifier\""]; -} - -// 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 [(gogoproto.moretags) = "yaml:\"client_state\""]; -} - -// 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 [(gogoproto.moretags) = "yaml:\"consensus_state\""]; -} - -// 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 [(gogoproto.moretags) = "yaml:\"next_seq_recv\""]; -} diff --git a/packages/codegen/proto/ibc/lightclients/tendermint/v1/tendermint.proto b/packages/codegen/proto/ibc/lightclients/tendermint/v1/tendermint.proto deleted file mode 100644 index 54e229b2..00000000 --- a/packages/codegen/proto/ibc/lightclients/tendermint/v1/tendermint.proto +++ /dev/null @@ -1,115 +0,0 @@ -syntax = "proto3"; - -package ibc.lightclients.tendermint.v1; - -option go_package = "github.com/cosmos/ibc-go/v2/modules/light-clients/07-tendermint/types"; - -import "tendermint/types/validator.proto"; -import "tendermint/types/types.proto"; -import "confio/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, (gogoproto.moretags) = "yaml:\"trust_level\""]; - // 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, (gogoproto.moretags) = "yaml:\"trusting_period\""]; - // duration of the staking unbonding period - google.protobuf.Duration unbonding_period = 4 [ - (gogoproto.nullable) = false, - (gogoproto.stdduration) = true, - (gogoproto.moretags) = "yaml:\"unbonding_period\"" - ]; - // 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, (gogoproto.moretags) = "yaml:\"max_clock_drift\""]; - // Block height when the client was frozen due to a misbehaviour - ibc.core.client.v1.Height frozen_height = 6 - [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"frozen_height\""]; - // Latest height the client was updated to - ibc.core.client.v1.Height latest_height = 7 - [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"latest_height\""]; - - // Proof specifications used in verifying counterparty state - repeated ics23.ProofSpec proof_specs = 8 [(gogoproto.moretags) = "yaml:\"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"}` - repeated string upgrade_path = 9 [(gogoproto.moretags) = "yaml:\"upgrade_path\""]; - - // This flag, when set to true, will allow governance to recover a client - // which has expired - bool allow_update_after_expiry = 10 [(gogoproto.moretags) = "yaml:\"allow_update_after_expiry\""]; - // This flag, when set to true, will allow governance to unfreeze a client - // whose chain has experienced a misbehaviour event - bool allow_update_after_misbehaviour = 11 [(gogoproto.moretags) = "yaml:\"allow_update_after_misbehaviour\""]; -} - -// 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/tendermint/tendermint/libs/bytes.HexBytes", - (gogoproto.moretags) = "yaml:\"next_validators_hash\"" - ]; -} - -// Misbehaviour is a wrapper over two conflicting Headers -// that implements Misbehaviour interface expected by ICS-02 -message Misbehaviour { - option (gogoproto.goproto_getters) = false; - - string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""]; - Header header_1 = 2 [(gogoproto.customname) = "Header1", (gogoproto.moretags) = "yaml:\"header_1\""]; - Header header_2 = 3 [(gogoproto.customname) = "Header2", (gogoproto.moretags) = "yaml:\"header_2\""]; -} - -// 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, (gogoproto.moretags) = "yaml:\"signed_header\""]; - - .tendermint.types.ValidatorSet validator_set = 2 [(gogoproto.moretags) = "yaml:\"validator_set\""]; - ibc.core.client.v1.Height trusted_height = 3 - [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"trusted_height\""]; - .tendermint.types.ValidatorSet trusted_validators = 4 [(gogoproto.moretags) = "yaml:\"trusted_validators\""]; -} - -// 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/packages/codegen/proto/tendermint/LICENSE b/packages/codegen/proto/tendermint/LICENSE deleted file mode 100644 index eaf92fbf..00000000 --- a/packages/codegen/proto/tendermint/LICENSE +++ /dev/null @@ -1,204 +0,0 @@ -Tendermint Core -License: Apache2.0 - - 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 2016 All in Bits, Inc - - 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 newline at end of file diff --git a/packages/codegen/proto/tendermint/README.md b/packages/codegen/proto/tendermint/README.md deleted file mode 100644 index 74fcf8b8..00000000 --- a/packages/codegen/proto/tendermint/README.md +++ /dev/null @@ -1 +0,0 @@ -# tendermint \ No newline at end of file diff --git a/packages/codegen/proto/tendermint/abci/types.proto b/packages/codegen/proto/tendermint/abci/types.proto deleted file mode 100644 index d41a5226..00000000 --- a/packages/codegen/proto/tendermint/abci/types.proto +++ /dev/null @@ -1,394 +0,0 @@ -syntax = "proto3"; -package tendermint.abci; - -option go_package = "github.com/tendermint/tendermint/abci/types"; - -// For more information on gogo.proto, see: -// https://github.com/gogo/protobuf/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/gogo/protobuf/blob/master/custom_types.md#warnings-and-issues - -//---------------------------------------- -// Request types - -message Request { - oneof value { - RequestEcho echo = 1; - RequestFlush flush = 2; - RequestInfo info = 3; - RequestSetOption set_option = 4; - 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; - } -} - -message RequestEcho { - string message = 1; -} - -message RequestFlush {} - -message RequestInfo { - string version = 1; - uint64 block_version = 2; - uint64 p2p_version = 3; -} - -// nondeterministic -message RequestSetOption { - string key = 1; - string value = 2; -} - -message RequestInitChain { - google.protobuf.Timestamp time = 1 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; - string chain_id = 2; - 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]; - LastCommitInfo last_commit_info = 3 [(gogoproto.nullable) = false]; - repeated Evidence 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; -} - -//---------------------------------------- -// Response types - -message Response { - oneof value { - ResponseException exception = 1; - ResponseEcho echo = 2; - ResponseFlush flush = 3; - ResponseInfo info = 4; - ResponseSetOption set_option = 5; - 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; - } -} - -// 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; -} - -// nondeterministic -message ResponseSetOption { - uint32 code = 1; - // bytes data = 2; - string log = 3; - string info = 4; -} - -message ResponseInitChain { - 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; -} - -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"]; - string codespace = 8; -} - -message ResponseEndBlock { - repeated ValidatorUpdate validator_updates = 1 [(gogoproto.nullable) = false]; - 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 - } -} - -//---------------------------------------- -// Misc. - -// ConsensusParams contains all consensus-relevant parameters -// that can be adjusted by the abci app -message ConsensusParams { - BlockParams block = 1; - tendermint.types.EvidenceParams evidence = 2; - tendermint.types.ValidatorParams validator = 3; - tendermint.types.VersionParams version = 4; -} - -// BlockParams contains limits on the block size. -message BlockParams { - // Note: must be greater than 0 - int64 max_bytes = 1; - // Note: must be greater or equal to -1 - int64 max_gas = 2; -} - -message LastCommitInfo { - int32 round = 1; - repeated VoteInfo 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 { - bytes key = 1; - bytes 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; -} - -enum EvidenceType { - UNKNOWN = 0; - DUPLICATE_VOTE = 1; - LIGHT_CLIENT_ATTACK = 2; -} - -message Evidence { - EvidenceType 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 SetOption(RequestSetOption) returns (ResponseSetOption); - 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); -} diff --git a/packages/codegen/proto/tendermint/crypto/keys.proto b/packages/codegen/proto/tendermint/crypto/keys.proto deleted file mode 100644 index 16fd7adf..00000000 --- a/packages/codegen/proto/tendermint/crypto/keys.proto +++ /dev/null @@ -1,17 +0,0 @@ -syntax = "proto3"; -package tendermint.crypto; - -option go_package = "github.com/tendermint/tendermint/proto/tendermint/crypto"; - -import "gogoproto/gogo.proto"; - -// PublicKey defines the keys available for use with Tendermint Validators -message PublicKey { - option (gogoproto.compare) = true; - option (gogoproto.equal) = true; - - oneof sum { - bytes ed25519 = 1; - bytes secp256k1 = 2; - } -} diff --git a/packages/codegen/proto/tendermint/crypto/proof.proto b/packages/codegen/proto/tendermint/crypto/proof.proto deleted file mode 100644 index 975df768..00000000 --- a/packages/codegen/proto/tendermint/crypto/proof.proto +++ /dev/null @@ -1,41 +0,0 @@ -syntax = "proto3"; -package tendermint.crypto; - -option go_package = "github.com/tendermint/tendermint/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/packages/codegen/proto/tendermint/libs/bits/types.proto b/packages/codegen/proto/tendermint/libs/bits/types.proto deleted file mode 100644 index 3111d113..00000000 --- a/packages/codegen/proto/tendermint/libs/bits/types.proto +++ /dev/null @@ -1,9 +0,0 @@ -syntax = "proto3"; -package tendermint.libs.bits; - -option go_package = "github.com/tendermint/tendermint/proto/tendermint/libs/bits"; - -message BitArray { - int64 bits = 1; - repeated uint64 elems = 2; -} diff --git a/packages/codegen/proto/tendermint/p2p/types.proto b/packages/codegen/proto/tendermint/p2p/types.proto deleted file mode 100644 index 216a6d8d..00000000 --- a/packages/codegen/proto/tendermint/p2p/types.proto +++ /dev/null @@ -1,42 +0,0 @@ -syntax = "proto3"; -package tendermint.p2p; - -option go_package = "github.com/tendermint/tendermint/proto/tendermint/p2p"; - -import "gogoproto/gogo.proto"; -import "google/protobuf/timestamp.proto"; - -message ProtocolVersion { - uint64 p2p = 1 [(gogoproto.customname) = "P2P"]; - uint64 block = 2; - uint64 app = 3; -} - -message NodeInfo { - ProtocolVersion protocol_version = 1 [(gogoproto.nullable) = false]; - string node_id = 2 [(gogoproto.customname) = "NodeID"]; - string listen_addr = 3; - string network = 4; - string version = 5; - bytes channels = 6; - string moniker = 7; - NodeInfoOther other = 8 [(gogoproto.nullable) = false]; -} - -message NodeInfoOther { - string tx_index = 1; - string rpc_address = 2 [(gogoproto.customname) = "RPCAddress"]; -} - -message PeerInfo { - string id = 1 [(gogoproto.customname) = "ID"]; - repeated PeerAddressInfo address_info = 2; - google.protobuf.Timestamp last_connected = 3 [(gogoproto.stdtime) = true]; -} - -message PeerAddressInfo { - string address = 1; - google.protobuf.Timestamp last_dial_success = 2 [(gogoproto.stdtime) = true]; - google.protobuf.Timestamp last_dial_failure = 3 [(gogoproto.stdtime) = true]; - uint32 dial_failures = 4; -} diff --git a/packages/codegen/proto/tendermint/types/block.proto b/packages/codegen/proto/tendermint/types/block.proto deleted file mode 100644 index 84e9bb15..00000000 --- a/packages/codegen/proto/tendermint/types/block.proto +++ /dev/null @@ -1,15 +0,0 @@ -syntax = "proto3"; -package tendermint.types; - -option go_package = "github.com/tendermint/tendermint/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/packages/codegen/proto/tendermint/types/evidence.proto b/packages/codegen/proto/tendermint/types/evidence.proto deleted file mode 100644 index d9548a43..00000000 --- a/packages/codegen/proto/tendermint/types/evidence.proto +++ /dev/null @@ -1,38 +0,0 @@ -syntax = "proto3"; -package tendermint.types; - -option go_package = "github.com/tendermint/tendermint/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/packages/codegen/proto/tendermint/types/params.proto b/packages/codegen/proto/tendermint/types/params.proto deleted file mode 100644 index 70789222..00000000 --- a/packages/codegen/proto/tendermint/types/params.proto +++ /dev/null @@ -1,79 +0,0 @@ -syntax = "proto3"; -package tendermint.types; - -option go_package = "github.com/tendermint/tendermint/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 [(gogoproto.nullable) = false]; - EvidenceParams evidence = 2 [(gogoproto.nullable) = false]; - ValidatorParams validator = 3 [(gogoproto.nullable) = false]; - VersionParams version = 4 [(gogoproto.nullable) = false]; -} - -// 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; - // Minimum time increment between consecutive blocks (in milliseconds) If the - // block header timestamp is ahead of the system clock, decrease this value. - // - // Not exposed to the application. - int64 time_iota_ms = 3; -} - -// 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_version = 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/packages/codegen/proto/tendermint/types/types.proto b/packages/codegen/proto/tendermint/types/types.proto deleted file mode 100644 index 57efc33c..00000000 --- a/packages/codegen/proto/tendermint/types/types.proto +++ /dev/null @@ -1,153 +0,0 @@ -syntax = "proto3"; -package tendermint.types; - -option go_package = "github.com/tendermint/tendermint/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 Tendermint 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/packages/codegen/proto/tendermint/types/validator.proto b/packages/codegen/proto/tendermint/types/validator.proto deleted file mode 100644 index 49860b96..00000000 --- a/packages/codegen/proto/tendermint/types/validator.proto +++ /dev/null @@ -1,25 +0,0 @@ -syntax = "proto3"; -package tendermint.types; - -option go_package = "github.com/tendermint/tendermint/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/packages/codegen/proto/tendermint/version/types.proto b/packages/codegen/proto/tendermint/version/types.proto deleted file mode 100644 index 6061868b..00000000 --- a/packages/codegen/proto/tendermint/version/types.proto +++ /dev/null @@ -1,24 +0,0 @@ -syntax = "proto3"; -package tendermint.version; - -option go_package = "github.com/tendermint/tendermint/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/packages/codegen/src/amino/amino.ts b/packages/codegen/src/amino/amino.ts deleted file mode 100644 index 693da49f..00000000 --- a/packages/codegen/src/amino/amino.ts +++ /dev/null @@ -1 +0,0 @@ -export {} \ No newline at end of file diff --git a/packages/codegen/src/amino/bundle.ts b/packages/codegen/src/amino/bundle.ts deleted file mode 100644 index 8ddc5409..00000000 --- a/packages/codegen/src/amino/bundle.ts +++ /dev/null @@ -1,3 +0,0 @@ -import * as _0 from "./amino"; -export const amino = { ..._0 -}; \ No newline at end of file diff --git a/packages/codegen/src/confio/proofs.ts b/packages/codegen/src/confio/proofs.ts deleted file mode 100644 index 76045f81..00000000 --- a/packages/codegen/src/confio/proofs.ts +++ /dev/null @@ -1,1451 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../helpers"; -export enum HashOp { - /** NO_HASH - 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 - ripemd160(sha256(x)) */ - BITCOIN = 5, - UNRECOGNIZED = -1, -} -export const HashOpSDKType = HashOp; -export function hashOpFromJSON(object: any): HashOp { - switch (object) { - case 0: - case "NO_HASH": - return HashOp.NO_HASH; - - case 1: - case "SHA256": - return HashOp.SHA256; - - case 2: - case "SHA512": - return HashOp.SHA512; - - case 3: - case "KECCAK": - return HashOp.KECCAK; - - case 4: - case "RIPEMD160": - return HashOp.RIPEMD160; - - case 5: - case "BITCOIN": - return HashOp.BITCOIN; - - case -1: - case "UNRECOGNIZED": - default: - return HashOp.UNRECOGNIZED; - } -} -export function hashOpToJSON(object: HashOp): string { - switch (object) { - case HashOp.NO_HASH: - return "NO_HASH"; - - case HashOp.SHA256: - return "SHA256"; - - case HashOp.SHA512: - return "SHA512"; - - case HashOp.KECCAK: - return "KECCAK"; - - case HashOp.RIPEMD160: - return "RIPEMD160"; - - case HashOp.BITCOIN: - return "BITCOIN"; - - case HashOp.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** - * 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) - */ - -export enum LengthOp { - /** NO_PREFIX - NO_PREFIX don't include any length info */ - NO_PREFIX = 0, - - /** VAR_PROTO - VAR_PROTO uses protobuf (and go-amino) varint encoding of the length */ - VAR_PROTO = 1, - - /** VAR_RLP - VAR_RLP uses rlp int encoding of the length */ - VAR_RLP = 2, - - /** FIXED32_BIG - FIXED32_BIG uses big-endian encoding of the length as a 32 bit integer */ - FIXED32_BIG = 3, - - /** FIXED32_LITTLE - FIXED32_LITTLE uses little-endian encoding of the length as a 32 bit integer */ - FIXED32_LITTLE = 4, - - /** FIXED64_BIG - FIXED64_BIG uses big-endian encoding of the length as a 64 bit integer */ - FIXED64_BIG = 5, - - /** FIXED64_LITTLE - FIXED64_LITTLE uses little-endian encoding of the length as a 64 bit integer */ - FIXED64_LITTLE = 6, - - /** REQUIRE_32_BYTES - 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 - REQUIRE_64_BYTES is like NONE, but will fail if the input is not exactly 64 bytes (sha512 output) */ - REQUIRE_64_BYTES = 8, - UNRECOGNIZED = -1, -} -export const LengthOpSDKType = LengthOp; -export function lengthOpFromJSON(object: any): LengthOp { - switch (object) { - case 0: - case "NO_PREFIX": - return LengthOp.NO_PREFIX; - - case 1: - case "VAR_PROTO": - return LengthOp.VAR_PROTO; - - case 2: - case "VAR_RLP": - return LengthOp.VAR_RLP; - - case 3: - case "FIXED32_BIG": - return LengthOp.FIXED32_BIG; - - case 4: - case "FIXED32_LITTLE": - return LengthOp.FIXED32_LITTLE; - - case 5: - case "FIXED64_BIG": - return LengthOp.FIXED64_BIG; - - case 6: - case "FIXED64_LITTLE": - return LengthOp.FIXED64_LITTLE; - - case 7: - case "REQUIRE_32_BYTES": - return LengthOp.REQUIRE_32_BYTES; - - case 8: - case "REQUIRE_64_BYTES": - return LengthOp.REQUIRE_64_BYTES; - - case -1: - case "UNRECOGNIZED": - default: - return LengthOp.UNRECOGNIZED; - } -} -export function lengthOpToJSON(object: LengthOp): string { - switch (object) { - case LengthOp.NO_PREFIX: - return "NO_PREFIX"; - - case LengthOp.VAR_PROTO: - return "VAR_PROTO"; - - case LengthOp.VAR_RLP: - return "VAR_RLP"; - - case LengthOp.FIXED32_BIG: - return "FIXED32_BIG"; - - case LengthOp.FIXED32_LITTLE: - return "FIXED32_LITTLE"; - - case LengthOp.FIXED64_BIG: - return "FIXED64_BIG"; - - case LengthOp.FIXED64_LITTLE: - return "FIXED64_LITTLE"; - - case LengthOp.REQUIRE_32_BYTES: - return "REQUIRE_32_BYTES"; - - case LengthOp.REQUIRE_64_BYTES: - return "REQUIRE_64_BYTES"; - - case LengthOp.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** - * 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. - */ - -export interface ExistenceProof { - key: Uint8Array; - value: Uint8Array; - leaf?: LeafOp; - path: InnerOp[]; -} -/** - * 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. - */ - -export interface ExistenceProofSDKType { - key: Uint8Array; - value: Uint8Array; - leaf?: LeafOpSDKType; - path: InnerOpSDKType[]; -} -/** - * 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. - */ - -export interface NonExistenceProof { - /** TODO: remove this as unnecessary??? we prove a range */ - key: Uint8Array; - left?: ExistenceProof; - right?: 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. - */ - -export interface NonExistenceProofSDKType { - key: Uint8Array; - left?: ExistenceProofSDKType; - right?: ExistenceProofSDKType; -} -/** CommitmentProof is either an ExistenceProof or a NonExistenceProof, or a Batch of such messages */ - -export interface CommitmentProof { - exist?: ExistenceProof; - nonexist?: NonExistenceProof; - batch?: BatchProof; - compressed?: CompressedBatchProof; -} -/** CommitmentProof is either an ExistenceProof or a NonExistenceProof, or a Batch of such messages */ - -export interface CommitmentProofSDKType { - exist?: ExistenceProofSDKType; - nonexist?: NonExistenceProofSDKType; - batch?: BatchProofSDKType; - compressed?: CompressedBatchProofSDKType; -} -/** - * 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) - */ - -export interface LeafOp { - hash: HashOp; - prehashKey: HashOp; - prehashValue: HashOp; - length: LengthOp; - /** - * prefix is a fixed bytes that may optionally be included at the beginning to differentiate - * a leaf node from an inner node. - */ - - prefix: Uint8Array; -} -/** - * 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) - */ - -export interface LeafOpSDKType { - hash: HashOp; - prehash_key: HashOp; - prehash_value: HashOp; - length: LengthOp; - prefix: Uint8Array; -} -/** - * 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 - */ - -export interface InnerOp { - hash: HashOp; - prefix: Uint8Array; - suffix: Uint8Array; -} -/** - * 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 - */ - -export interface InnerOpSDKType { - hash: HashOp; - prefix: Uint8Array; - suffix: Uint8Array; -} -/** - * 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. - */ - -export interface 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) - */ - leafSpec?: LeafOp; - innerSpec?: InnerSpec; - /** max_depth (if > 0) is the maximum number of InnerOps allowed (mainly for fixed-depth tries) */ - - maxDepth: number; - /** min_depth (if > 0) is the minimum number of InnerOps allowed (mainly for fixed-depth tries) */ - - minDepth: number; -} -/** - * 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. - */ - -export interface ProofSpecSDKType { - leaf_spec?: LeafOpSDKType; - inner_spec?: InnerSpecSDKType; - max_depth: number; - min_depth: number; -} -/** - * 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) - */ - -export interface 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) - */ - childOrder: number[]; - childSize: number; - minPrefixLength: number; - maxPrefixLength: number; - /** empty child is the prehash image that is used when one child is nil (eg. 20 bytes of 0) */ - - emptyChild: Uint8Array; - /** hash is the algorithm that must be used for each InnerOp */ - - hash: HashOp; -} -/** - * 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) - */ - -export interface InnerSpecSDKType { - child_order: number[]; - child_size: number; - min_prefix_length: number; - max_prefix_length: number; - empty_child: Uint8Array; - hash: HashOp; -} -/** BatchProof is a group of multiple proof types than can be compressed */ - -export interface BatchProof { - entries: BatchEntry[]; -} -/** BatchProof is a group of multiple proof types than can be compressed */ - -export interface BatchProofSDKType { - entries: BatchEntrySDKType[]; -} -/** Use BatchEntry not CommitmentProof, to avoid recursion */ - -export interface BatchEntry { - exist?: ExistenceProof; - nonexist?: NonExistenceProof; -} -/** Use BatchEntry not CommitmentProof, to avoid recursion */ - -export interface BatchEntrySDKType { - exist?: ExistenceProofSDKType; - nonexist?: NonExistenceProofSDKType; -} -export interface CompressedBatchProof { - entries: CompressedBatchEntry[]; - lookupInners: InnerOp[]; -} -export interface CompressedBatchProofSDKType { - entries: CompressedBatchEntrySDKType[]; - lookup_inners: InnerOpSDKType[]; -} -/** Use BatchEntry not CommitmentProof, to avoid recursion */ - -export interface CompressedBatchEntry { - exist?: CompressedExistenceProof; - nonexist?: CompressedNonExistenceProof; -} -/** Use BatchEntry not CommitmentProof, to avoid recursion */ - -export interface CompressedBatchEntrySDKType { - exist?: CompressedExistenceProofSDKType; - nonexist?: CompressedNonExistenceProofSDKType; -} -export interface CompressedExistenceProof { - key: Uint8Array; - value: Uint8Array; - leaf?: LeafOp; - /** these are indexes into the lookup_inners table in CompressedBatchProof */ - - path: number[]; -} -export interface CompressedExistenceProofSDKType { - key: Uint8Array; - value: Uint8Array; - leaf?: LeafOpSDKType; - path: number[]; -} -export interface CompressedNonExistenceProof { - /** TODO: remove this as unnecessary??? we prove a range */ - key: Uint8Array; - left?: CompressedExistenceProof; - right?: CompressedExistenceProof; -} -export interface CompressedNonExistenceProofSDKType { - key: Uint8Array; - left?: CompressedExistenceProofSDKType; - right?: CompressedExistenceProofSDKType; -} - -function createBaseExistenceProof(): ExistenceProof { - return { - key: new Uint8Array(), - value: new Uint8Array(), - leaf: undefined, - path: [] - }; -} - -export const ExistenceProof = { - encode(message: ExistenceProof, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); - } - - if (message.value.length !== 0) { - writer.uint32(18).bytes(message.value); - } - - if (message.leaf !== undefined) { - LeafOp.encode(message.leaf, writer.uint32(26).fork()).ldelim(); - } - - for (const v of message.path) { - InnerOp.encode(v!, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ExistenceProof { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseExistenceProof(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.key = reader.bytes(); - break; - - case 2: - message.value = reader.bytes(); - break; - - case 3: - message.leaf = LeafOp.decode(reader, reader.uint32()); - break; - - case 4: - message.path.push(InnerOp.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ExistenceProof { - const message = createBaseExistenceProof(); - message.key = object.key ?? new Uint8Array(); - message.value = object.value ?? new Uint8Array(); - message.leaf = object.leaf !== undefined && object.leaf !== null ? LeafOp.fromPartial(object.leaf) : undefined; - message.path = object.path?.map(e => InnerOp.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseNonExistenceProof(): NonExistenceProof { - return { - key: new Uint8Array(), - left: undefined, - right: undefined - }; -} - -export const NonExistenceProof = { - encode(message: NonExistenceProof, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); - } - - if (message.left !== undefined) { - ExistenceProof.encode(message.left, writer.uint32(18).fork()).ldelim(); - } - - if (message.right !== undefined) { - ExistenceProof.encode(message.right, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): NonExistenceProof { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseNonExistenceProof(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.key = reader.bytes(); - break; - - case 2: - message.left = ExistenceProof.decode(reader, reader.uint32()); - break; - - case 3: - message.right = ExistenceProof.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): NonExistenceProof { - const message = createBaseNonExistenceProof(); - message.key = object.key ?? new Uint8Array(); - message.left = object.left !== undefined && object.left !== null ? ExistenceProof.fromPartial(object.left) : undefined; - message.right = object.right !== undefined && object.right !== null ? ExistenceProof.fromPartial(object.right) : undefined; - return message; - } - -}; - -function createBaseCommitmentProof(): CommitmentProof { - return { - exist: undefined, - nonexist: undefined, - batch: undefined, - compressed: undefined - }; -} - -export const CommitmentProof = { - encode(message: CommitmentProof, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.exist !== undefined) { - ExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim(); - } - - if (message.nonexist !== undefined) { - NonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim(); - } - - if (message.batch !== undefined) { - BatchProof.encode(message.batch, writer.uint32(26).fork()).ldelim(); - } - - if (message.compressed !== undefined) { - CompressedBatchProof.encode(message.compressed, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): CommitmentProof { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCommitmentProof(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.exist = ExistenceProof.decode(reader, reader.uint32()); - break; - - case 2: - message.nonexist = NonExistenceProof.decode(reader, reader.uint32()); - break; - - case 3: - message.batch = BatchProof.decode(reader, reader.uint32()); - break; - - case 4: - message.compressed = CompressedBatchProof.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): CommitmentProof { - const message = createBaseCommitmentProof(); - message.exist = object.exist !== undefined && object.exist !== null ? ExistenceProof.fromPartial(object.exist) : undefined; - message.nonexist = object.nonexist !== undefined && object.nonexist !== null ? NonExistenceProof.fromPartial(object.nonexist) : undefined; - message.batch = object.batch !== undefined && object.batch !== null ? BatchProof.fromPartial(object.batch) : undefined; - message.compressed = object.compressed !== undefined && object.compressed !== null ? CompressedBatchProof.fromPartial(object.compressed) : undefined; - return message; - } - -}; - -function createBaseLeafOp(): LeafOp { - return { - hash: 0, - prehashKey: 0, - prehashValue: 0, - length: 0, - prefix: new Uint8Array() - }; -} - -export const LeafOp = { - encode(message: LeafOp, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.hash !== 0) { - writer.uint32(8).int32(message.hash); - } - - if (message.prehashKey !== 0) { - writer.uint32(16).int32(message.prehashKey); - } - - if (message.prehashValue !== 0) { - writer.uint32(24).int32(message.prehashValue); - } - - if (message.length !== 0) { - writer.uint32(32).int32(message.length); - } - - if (message.prefix.length !== 0) { - writer.uint32(42).bytes(message.prefix); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): LeafOp { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseLeafOp(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.hash = (reader.int32() as any); - break; - - case 2: - message.prehashKey = (reader.int32() as any); - break; - - case 3: - message.prehashValue = (reader.int32() as any); - break; - - case 4: - message.length = (reader.int32() as any); - break; - - case 5: - message.prefix = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): LeafOp { - const message = createBaseLeafOp(); - message.hash = object.hash ?? 0; - message.prehashKey = object.prehashKey ?? 0; - message.prehashValue = object.prehashValue ?? 0; - message.length = object.length ?? 0; - message.prefix = object.prefix ?? new Uint8Array(); - return message; - } - -}; - -function createBaseInnerOp(): InnerOp { - return { - hash: 0, - prefix: new Uint8Array(), - suffix: new Uint8Array() - }; -} - -export const InnerOp = { - encode(message: InnerOp, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.hash !== 0) { - writer.uint32(8).int32(message.hash); - } - - if (message.prefix.length !== 0) { - writer.uint32(18).bytes(message.prefix); - } - - if (message.suffix.length !== 0) { - writer.uint32(26).bytes(message.suffix); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): InnerOp { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseInnerOp(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.hash = (reader.int32() as any); - break; - - case 2: - message.prefix = reader.bytes(); - break; - - case 3: - message.suffix = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): InnerOp { - const message = createBaseInnerOp(); - message.hash = object.hash ?? 0; - message.prefix = object.prefix ?? new Uint8Array(); - message.suffix = object.suffix ?? new Uint8Array(); - return message; - } - -}; - -function createBaseProofSpec(): ProofSpec { - return { - leafSpec: undefined, - innerSpec: undefined, - maxDepth: 0, - minDepth: 0 - }; -} - -export const ProofSpec = { - encode(message: ProofSpec, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.leafSpec !== undefined) { - LeafOp.encode(message.leafSpec, writer.uint32(10).fork()).ldelim(); - } - - if (message.innerSpec !== undefined) { - InnerSpec.encode(message.innerSpec, writer.uint32(18).fork()).ldelim(); - } - - if (message.maxDepth !== 0) { - writer.uint32(24).int32(message.maxDepth); - } - - if (message.minDepth !== 0) { - writer.uint32(32).int32(message.minDepth); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ProofSpec { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseProofSpec(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.leafSpec = LeafOp.decode(reader, reader.uint32()); - break; - - case 2: - message.innerSpec = InnerSpec.decode(reader, reader.uint32()); - break; - - case 3: - message.maxDepth = reader.int32(); - break; - - case 4: - message.minDepth = reader.int32(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ProofSpec { - const message = createBaseProofSpec(); - message.leafSpec = object.leafSpec !== undefined && object.leafSpec !== null ? LeafOp.fromPartial(object.leafSpec) : undefined; - message.innerSpec = object.innerSpec !== undefined && object.innerSpec !== null ? InnerSpec.fromPartial(object.innerSpec) : undefined; - message.maxDepth = object.maxDepth ?? 0; - message.minDepth = object.minDepth ?? 0; - return message; - } - -}; - -function createBaseInnerSpec(): InnerSpec { - return { - childOrder: [], - childSize: 0, - minPrefixLength: 0, - maxPrefixLength: 0, - emptyChild: new Uint8Array(), - hash: 0 - }; -} - -export const InnerSpec = { - encode(message: InnerSpec, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - writer.uint32(10).fork(); - - for (const v of message.childOrder) { - writer.int32(v); - } - - writer.ldelim(); - - if (message.childSize !== 0) { - writer.uint32(16).int32(message.childSize); - } - - if (message.minPrefixLength !== 0) { - writer.uint32(24).int32(message.minPrefixLength); - } - - if (message.maxPrefixLength !== 0) { - writer.uint32(32).int32(message.maxPrefixLength); - } - - if (message.emptyChild.length !== 0) { - writer.uint32(42).bytes(message.emptyChild); - } - - if (message.hash !== 0) { - writer.uint32(48).int32(message.hash); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): InnerSpec { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseInnerSpec(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - if ((tag & 7) === 2) { - const end2 = reader.uint32() + reader.pos; - - while (reader.pos < end2) { - message.childOrder.push(reader.int32()); - } - } else { - message.childOrder.push(reader.int32()); - } - - break; - - case 2: - message.childSize = reader.int32(); - break; - - case 3: - message.minPrefixLength = reader.int32(); - break; - - case 4: - message.maxPrefixLength = reader.int32(); - break; - - case 5: - message.emptyChild = reader.bytes(); - break; - - case 6: - message.hash = (reader.int32() as any); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): InnerSpec { - const message = createBaseInnerSpec(); - message.childOrder = object.childOrder?.map(e => e) || []; - message.childSize = object.childSize ?? 0; - message.minPrefixLength = object.minPrefixLength ?? 0; - message.maxPrefixLength = object.maxPrefixLength ?? 0; - message.emptyChild = object.emptyChild ?? new Uint8Array(); - message.hash = object.hash ?? 0; - return message; - } - -}; - -function createBaseBatchProof(): BatchProof { - return { - entries: [] - }; -} - -export const BatchProof = { - encode(message: BatchProof, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.entries) { - BatchEntry.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): BatchProof { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBatchProof(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.entries.push(BatchEntry.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): BatchProof { - const message = createBaseBatchProof(); - message.entries = object.entries?.map(e => BatchEntry.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseBatchEntry(): BatchEntry { - return { - exist: undefined, - nonexist: undefined - }; -} - -export const BatchEntry = { - encode(message: BatchEntry, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.exist !== undefined) { - ExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim(); - } - - if (message.nonexist !== undefined) { - NonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): BatchEntry { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBatchEntry(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.exist = ExistenceProof.decode(reader, reader.uint32()); - break; - - case 2: - message.nonexist = NonExistenceProof.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): BatchEntry { - const message = createBaseBatchEntry(); - message.exist = object.exist !== undefined && object.exist !== null ? ExistenceProof.fromPartial(object.exist) : undefined; - message.nonexist = object.nonexist !== undefined && object.nonexist !== null ? NonExistenceProof.fromPartial(object.nonexist) : undefined; - return message; - } - -}; - -function createBaseCompressedBatchProof(): CompressedBatchProof { - return { - entries: [], - lookupInners: [] - }; -} - -export const CompressedBatchProof = { - encode(message: CompressedBatchProof, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.entries) { - CompressedBatchEntry.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - for (const v of message.lookupInners) { - InnerOp.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): CompressedBatchProof { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCompressedBatchProof(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.entries.push(CompressedBatchEntry.decode(reader, reader.uint32())); - break; - - case 2: - message.lookupInners.push(InnerOp.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): CompressedBatchProof { - const message = createBaseCompressedBatchProof(); - message.entries = object.entries?.map(e => CompressedBatchEntry.fromPartial(e)) || []; - message.lookupInners = object.lookupInners?.map(e => InnerOp.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseCompressedBatchEntry(): CompressedBatchEntry { - return { - exist: undefined, - nonexist: undefined - }; -} - -export const CompressedBatchEntry = { - encode(message: CompressedBatchEntry, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.exist !== undefined) { - CompressedExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim(); - } - - if (message.nonexist !== undefined) { - CompressedNonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): CompressedBatchEntry { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCompressedBatchEntry(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.exist = CompressedExistenceProof.decode(reader, reader.uint32()); - break; - - case 2: - message.nonexist = CompressedNonExistenceProof.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): CompressedBatchEntry { - const message = createBaseCompressedBatchEntry(); - message.exist = object.exist !== undefined && object.exist !== null ? CompressedExistenceProof.fromPartial(object.exist) : undefined; - message.nonexist = object.nonexist !== undefined && object.nonexist !== null ? CompressedNonExistenceProof.fromPartial(object.nonexist) : undefined; - return message; - } - -}; - -function createBaseCompressedExistenceProof(): CompressedExistenceProof { - return { - key: new Uint8Array(), - value: new Uint8Array(), - leaf: undefined, - path: [] - }; -} - -export const CompressedExistenceProof = { - encode(message: CompressedExistenceProof, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); - } - - if (message.value.length !== 0) { - writer.uint32(18).bytes(message.value); - } - - if (message.leaf !== undefined) { - LeafOp.encode(message.leaf, writer.uint32(26).fork()).ldelim(); - } - - writer.uint32(34).fork(); - - for (const v of message.path) { - writer.int32(v); - } - - writer.ldelim(); - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): CompressedExistenceProof { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCompressedExistenceProof(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.key = reader.bytes(); - break; - - case 2: - message.value = reader.bytes(); - break; - - case 3: - message.leaf = LeafOp.decode(reader, reader.uint32()); - break; - - case 4: - if ((tag & 7) === 2) { - const end2 = reader.uint32() + reader.pos; - - while (reader.pos < end2) { - message.path.push(reader.int32()); - } - } else { - message.path.push(reader.int32()); - } - - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): CompressedExistenceProof { - const message = createBaseCompressedExistenceProof(); - message.key = object.key ?? new Uint8Array(); - message.value = object.value ?? new Uint8Array(); - message.leaf = object.leaf !== undefined && object.leaf !== null ? LeafOp.fromPartial(object.leaf) : undefined; - message.path = object.path?.map(e => e) || []; - return message; - } - -}; - -function createBaseCompressedNonExistenceProof(): CompressedNonExistenceProof { - return { - key: new Uint8Array(), - left: undefined, - right: undefined - }; -} - -export const CompressedNonExistenceProof = { - encode(message: CompressedNonExistenceProof, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); - } - - if (message.left !== undefined) { - CompressedExistenceProof.encode(message.left, writer.uint32(18).fork()).ldelim(); - } - - if (message.right !== undefined) { - CompressedExistenceProof.encode(message.right, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): CompressedNonExistenceProof { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCompressedNonExistenceProof(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.key = reader.bytes(); - break; - - case 2: - message.left = CompressedExistenceProof.decode(reader, reader.uint32()); - break; - - case 3: - message.right = CompressedExistenceProof.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): CompressedNonExistenceProof { - const message = createBaseCompressedNonExistenceProof(); - message.key = object.key ?? new Uint8Array(); - message.left = object.left !== undefined && object.left !== null ? CompressedExistenceProof.fromPartial(object.left) : undefined; - message.right = object.right !== undefined && object.right !== null ? CompressedExistenceProof.fromPartial(object.right) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/app/v1alpha1/config.ts b/packages/codegen/src/cosmos/app/v1alpha1/config.ts deleted file mode 100644 index 90c25282..00000000 --- a/packages/codegen/src/cosmos/app/v1alpha1/config.ts +++ /dev/null @@ -1,159 +0,0 @@ -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * 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. - */ - -export interface Config { - /** modules are the module configurations for the app. */ - modules: ModuleConfig[]; -} -/** - * 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. - */ - -export interface ConfigSDKType { - modules: ModuleConfigSDKType[]; -} -/** ModuleConfig is a module configuration for an app. */ - -export interface 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. - */ - name: string; - /** - * config is the config object for the module. Module config messages should - * define a ModuleDescriptor using the cosmos.app.v1alpha1.is_module extension. - */ - - config?: Any; -} -/** ModuleConfig is a module configuration for an app. */ - -export interface ModuleConfigSDKType { - name: string; - config?: AnySDKType; -} - -function createBaseConfig(): Config { - return { - modules: [] - }; -} - -export const Config = { - encode(message: Config, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.modules) { - ModuleConfig.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Config { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseConfig(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.modules.push(ModuleConfig.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Config { - const message = createBaseConfig(); - message.modules = object.modules?.map(e => ModuleConfig.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseModuleConfig(): ModuleConfig { - return { - name: "", - config: undefined - }; -} - -export const ModuleConfig = { - encode(message: ModuleConfig, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.name !== "") { - writer.uint32(10).string(message.name); - } - - if (message.config !== undefined) { - Any.encode(message.config, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ModuleConfig { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseModuleConfig(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - - case 2: - message.config = Any.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ModuleConfig { - const message = createBaseModuleConfig(); - message.name = object.name ?? ""; - message.config = object.config !== undefined && object.config !== null ? Any.fromPartial(object.config) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/app/v1alpha1/module.ts b/packages/codegen/src/cosmos/app/v1alpha1/module.ts deleted file mode 100644 index 524b35f0..00000000 --- a/packages/codegen/src/cosmos/app/v1alpha1/module.ts +++ /dev/null @@ -1,276 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** ModuleDescriptor describes an app module. */ - -export interface ModuleDescriptor { - /** - * go_import names the package that should be imported by an app to load the - * module in the runtime module registry. Either go_import must be defined here - * or the go_package option must be defined at the file level to indicate - * to users where to location the module implementation. go_import takes - * precedence over go_package when both are defined. - */ - goImport: string; - /** - * 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. - */ - - usePackage: PackageReference[]; - /** - * 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. - */ - - canMigrateFrom: MigrateFromInfo[]; -} -/** ModuleDescriptor describes an app module. */ - -export interface ModuleDescriptorSDKType { - go_import: string; - use_package: PackageReferenceSDKType[]; - can_migrate_from: MigrateFromInfoSDKType[]; -} -/** PackageReference is a reference to a protobuf package used by a module. */ - -export interface PackageReference { - /** name is the fully-qualified name of the package. */ - name: string; - /** - * 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 fields containing the - * test "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 - */ - - revision: number; -} -/** PackageReference is a reference to a protobuf package used by a module. */ - -export interface PackageReferenceSDKType { - name: string; - revision: number; -} -/** - * MigrateFromInfo is information on a module version that a newer module - * can migrate from. - */ - -export interface MigrateFromInfo { - /** - * module is the fully-qualified protobuf name of the module config object - * for the previous module version, ex: "cosmos.group.module.v1.Module". - */ - module: string; -} -/** - * MigrateFromInfo is information on a module version that a newer module - * can migrate from. - */ - -export interface MigrateFromInfoSDKType { - module: string; -} - -function createBaseModuleDescriptor(): ModuleDescriptor { - return { - goImport: "", - usePackage: [], - canMigrateFrom: [] - }; -} - -export const ModuleDescriptor = { - encode(message: ModuleDescriptor, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.goImport !== "") { - writer.uint32(10).string(message.goImport); - } - - for (const v of message.usePackage) { - PackageReference.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - for (const v of message.canMigrateFrom) { - MigrateFromInfo.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ModuleDescriptor { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseModuleDescriptor(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.goImport = reader.string(); - break; - - case 2: - message.usePackage.push(PackageReference.decode(reader, reader.uint32())); - break; - - case 3: - message.canMigrateFrom.push(MigrateFromInfo.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ModuleDescriptor { - const message = createBaseModuleDescriptor(); - message.goImport = object.goImport ?? ""; - message.usePackage = object.usePackage?.map(e => PackageReference.fromPartial(e)) || []; - message.canMigrateFrom = object.canMigrateFrom?.map(e => MigrateFromInfo.fromPartial(e)) || []; - return message; - } - -}; - -function createBasePackageReference(): PackageReference { - return { - name: "", - revision: 0 - }; -} - -export const PackageReference = { - encode(message: PackageReference, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.name !== "") { - writer.uint32(10).string(message.name); - } - - if (message.revision !== 0) { - writer.uint32(16).uint32(message.revision); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PackageReference { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePackageReference(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - - case 2: - message.revision = reader.uint32(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PackageReference { - const message = createBasePackageReference(); - message.name = object.name ?? ""; - message.revision = object.revision ?? 0; - return message; - } - -}; - -function createBaseMigrateFromInfo(): MigrateFromInfo { - return { - module: "" - }; -} - -export const MigrateFromInfo = { - encode(message: MigrateFromInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.module !== "") { - writer.uint32(10).string(message.module); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MigrateFromInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMigrateFromInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.module = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MigrateFromInfo { - const message = createBaseMigrateFromInfo(); - message.module = object.module ?? ""; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/app/v1alpha1/query.rpc.Query.ts b/packages/codegen/src/cosmos/app/v1alpha1/query.rpc.Query.ts deleted file mode 100644 index 9ae7ca7f..00000000 --- a/packages/codegen/src/cosmos/app/v1alpha1/query.rpc.Query.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { QueryConfigRequest, QueryConfigResponse } from "./query"; -/** Query is the app module query service. */ - -export interface Query { - /** Config returns the current app config. */ - config(request?: QueryConfigRequest): Promise; -} -export class QueryClientImpl implements Query { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.config = this.config.bind(this); - } - - config(request: QueryConfigRequest = {}): Promise { - const data = QueryConfigRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.app.v1alpha1.Query", "Config", data); - return promise.then(data => QueryConfigResponse.decode(new _m0.Reader(data))); - } - -} -export const createRpcQueryExtension = (base: QueryClient) => { - const rpc = createProtobufRpcClient(base); - const queryService = new QueryClientImpl(rpc); - return { - config(request?: QueryConfigRequest): Promise { - return queryService.config(request); - } - - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/app/v1alpha1/query.ts b/packages/codegen/src/cosmos/app/v1alpha1/query.ts deleted file mode 100644 index f6f7509a..00000000 --- a/packages/codegen/src/cosmos/app/v1alpha1/query.ts +++ /dev/null @@ -1,99 +0,0 @@ -import { Config, ConfigSDKType } from "./config"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** QueryConfigRequest is the Query/Config request type. */ - -export interface QueryConfigRequest {} -/** QueryConfigRequest is the Query/Config request type. */ - -export interface QueryConfigRequestSDKType {} -/** QueryConfigRequest is the Query/Config response type. */ - -export interface QueryConfigResponse { - /** config is the current app config. */ - config?: Config; -} -/** QueryConfigRequest is the Query/Config response type. */ - -export interface QueryConfigResponseSDKType { - config?: ConfigSDKType; -} - -function createBaseQueryConfigRequest(): QueryConfigRequest { - return {}; -} - -export const QueryConfigRequest = { - encode(_: QueryConfigRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConfigRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryConfigRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): QueryConfigRequest { - const message = createBaseQueryConfigRequest(); - return message; - } - -}; - -function createBaseQueryConfigResponse(): QueryConfigResponse { - return { - config: undefined - }; -} - -export const QueryConfigResponse = { - encode(message: QueryConfigResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.config !== undefined) { - Config.encode(message.config, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConfigResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryConfigResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.config = Config.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryConfigResponse { - const message = createBaseQueryConfigResponse(); - message.config = object.config !== undefined && object.config !== null ? Config.fromPartial(object.config) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/auth/v1beta1/auth.ts b/packages/codegen/src/cosmos/auth/v1beta1/auth.ts deleted file mode 100644 index 2342a965..00000000 --- a/packages/codegen/src/cosmos/auth/v1beta1/auth.ts +++ /dev/null @@ -1,284 +0,0 @@ -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * 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). - */ - -export interface BaseAccount { - address: string; - pubKey?: Any; - accountNumber: Long; - sequence: Long; -} -/** - * 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). - */ - -export interface BaseAccountSDKType { - address: string; - pub_key?: AnySDKType; - account_number: Long; - sequence: Long; -} -/** ModuleAccount defines an account for modules that holds coins on a pool. */ - -export interface ModuleAccount { - baseAccount?: BaseAccount; - name: string; - permissions: string[]; -} -/** ModuleAccount defines an account for modules that holds coins on a pool. */ - -export interface ModuleAccountSDKType { - base_account?: BaseAccountSDKType; - name: string; - permissions: string[]; -} -/** Params defines the parameters for the auth module. */ - -export interface Params { - maxMemoCharacters: Long; - txSigLimit: Long; - txSizeCostPerByte: Long; - sigVerifyCostEd25519: Long; - sigVerifyCostSecp256k1: Long; -} -/** Params defines the parameters for the auth module. */ - -export interface ParamsSDKType { - max_memo_characters: Long; - tx_sig_limit: Long; - tx_size_cost_per_byte: Long; - sig_verify_cost_ed25519: Long; - sig_verify_cost_secp256k1: Long; -} - -function createBaseBaseAccount(): BaseAccount { - return { - address: "", - pubKey: undefined, - accountNumber: Long.UZERO, - sequence: Long.UZERO - }; -} - -export const BaseAccount = { - encode(message: BaseAccount, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - if (message.pubKey !== undefined) { - Any.encode(message.pubKey, writer.uint32(18).fork()).ldelim(); - } - - if (!message.accountNumber.isZero()) { - writer.uint32(24).uint64(message.accountNumber); - } - - if (!message.sequence.isZero()) { - writer.uint32(32).uint64(message.sequence); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): BaseAccount { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBaseAccount(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.pubKey = Any.decode(reader, reader.uint32()); - break; - - case 3: - message.accountNumber = (reader.uint64() as Long); - break; - - case 4: - message.sequence = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): BaseAccount { - const message = createBaseBaseAccount(); - message.address = object.address ?? ""; - message.pubKey = object.pubKey !== undefined && object.pubKey !== null ? Any.fromPartial(object.pubKey) : undefined; - message.accountNumber = object.accountNumber !== undefined && object.accountNumber !== null ? Long.fromValue(object.accountNumber) : Long.UZERO; - message.sequence = object.sequence !== undefined && object.sequence !== null ? Long.fromValue(object.sequence) : Long.UZERO; - return message; - } - -}; - -function createBaseModuleAccount(): ModuleAccount { - return { - baseAccount: undefined, - name: "", - permissions: [] - }; -} - -export const ModuleAccount = { - encode(message: ModuleAccount, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.baseAccount !== undefined) { - BaseAccount.encode(message.baseAccount, writer.uint32(10).fork()).ldelim(); - } - - if (message.name !== "") { - writer.uint32(18).string(message.name); - } - - for (const v of message.permissions) { - writer.uint32(26).string(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ModuleAccount { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseModuleAccount(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.baseAccount = BaseAccount.decode(reader, reader.uint32()); - break; - - case 2: - message.name = reader.string(); - break; - - case 3: - message.permissions.push(reader.string()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ModuleAccount { - const message = createBaseModuleAccount(); - message.baseAccount = object.baseAccount !== undefined && object.baseAccount !== null ? BaseAccount.fromPartial(object.baseAccount) : undefined; - message.name = object.name ?? ""; - message.permissions = object.permissions?.map(e => e) || []; - return message; - } - -}; - -function createBaseParams(): Params { - return { - maxMemoCharacters: Long.UZERO, - txSigLimit: Long.UZERO, - txSizeCostPerByte: Long.UZERO, - sigVerifyCostEd25519: Long.UZERO, - sigVerifyCostSecp256k1: Long.UZERO - }; -} - -export const Params = { - encode(message: Params, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.maxMemoCharacters.isZero()) { - writer.uint32(8).uint64(message.maxMemoCharacters); - } - - if (!message.txSigLimit.isZero()) { - writer.uint32(16).uint64(message.txSigLimit); - } - - if (!message.txSizeCostPerByte.isZero()) { - writer.uint32(24).uint64(message.txSizeCostPerByte); - } - - if (!message.sigVerifyCostEd25519.isZero()) { - writer.uint32(32).uint64(message.sigVerifyCostEd25519); - } - - if (!message.sigVerifyCostSecp256k1.isZero()) { - writer.uint32(40).uint64(message.sigVerifyCostSecp256k1); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Params { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseParams(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.maxMemoCharacters = (reader.uint64() as Long); - break; - - case 2: - message.txSigLimit = (reader.uint64() as Long); - break; - - case 3: - message.txSizeCostPerByte = (reader.uint64() as Long); - break; - - case 4: - message.sigVerifyCostEd25519 = (reader.uint64() as Long); - break; - - case 5: - message.sigVerifyCostSecp256k1 = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Params { - const message = createBaseParams(); - message.maxMemoCharacters = object.maxMemoCharacters !== undefined && object.maxMemoCharacters !== null ? Long.fromValue(object.maxMemoCharacters) : Long.UZERO; - message.txSigLimit = object.txSigLimit !== undefined && object.txSigLimit !== null ? Long.fromValue(object.txSigLimit) : Long.UZERO; - message.txSizeCostPerByte = object.txSizeCostPerByte !== undefined && object.txSizeCostPerByte !== null ? Long.fromValue(object.txSizeCostPerByte) : Long.UZERO; - message.sigVerifyCostEd25519 = object.sigVerifyCostEd25519 !== undefined && object.sigVerifyCostEd25519 !== null ? Long.fromValue(object.sigVerifyCostEd25519) : Long.UZERO; - message.sigVerifyCostSecp256k1 = object.sigVerifyCostSecp256k1 !== undefined && object.sigVerifyCostSecp256k1 !== null ? Long.fromValue(object.sigVerifyCostSecp256k1) : Long.UZERO; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/auth/v1beta1/genesis.ts b/packages/codegen/src/cosmos/auth/v1beta1/genesis.ts deleted file mode 100644 index ac545792..00000000 --- a/packages/codegen/src/cosmos/auth/v1beta1/genesis.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { Params, ParamsSDKType } from "./auth"; -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** GenesisState defines the auth module's genesis state. */ - -export interface GenesisState { - /** params defines all the paramaters of the module. */ - params?: Params; - /** accounts are the accounts present at genesis. */ - - accounts: Any[]; -} -/** GenesisState defines the auth module's genesis state. */ - -export interface GenesisStateSDKType { - params?: ParamsSDKType; - accounts: AnySDKType[]; -} - -function createBaseGenesisState(): GenesisState { - return { - params: undefined, - accounts: [] - }; -} - -export const GenesisState = { - encode(message: GenesisState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.params !== undefined) { - Params.encode(message.params, writer.uint32(10).fork()).ldelim(); - } - - for (const v of message.accounts) { - Any.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.params = Params.decode(reader, reader.uint32()); - break; - - case 2: - message.accounts.push(Any.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenesisState { - const message = createBaseGenesisState(); - message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined; - message.accounts = object.accounts?.map(e => Any.fromPartial(e)) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/auth/v1beta1/query.lcd.ts b/packages/codegen/src/cosmos/auth/v1beta1/query.lcd.ts deleted file mode 100644 index 83fdf31f..00000000 --- a/packages/codegen/src/cosmos/auth/v1beta1/query.lcd.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { setPaginationParams } from "../../../helpers"; -import { LCDClient } from "@osmonauts/lcd"; -import { QueryAccountsRequest, QueryAccountsResponseSDKType, QueryAccountRequest, QueryAccountResponseSDKType, QueryParamsRequest, QueryParamsResponseSDKType, QueryModuleAccountsRequest, QueryModuleAccountsResponseSDKType, Bech32PrefixRequest, Bech32PrefixResponseSDKType, AddressBytesToStringRequest, AddressBytesToStringResponseSDKType, AddressStringToBytesRequest, AddressStringToBytesResponseSDKType } from "./query"; -export class LCDQueryClient { - req: LCDClient; - - constructor({ - requestClient - }: { - requestClient: LCDClient; - }) { - this.req = requestClient; - this.accounts = this.accounts.bind(this); - this.account = this.account.bind(this); - this.params = this.params.bind(this); - this.moduleAccounts = this.moduleAccounts.bind(this); - this.bech32Prefix = this.bech32Prefix.bind(this); - this.addressBytesToString = this.addressBytesToString.bind(this); - this.addressStringToBytes = this.addressStringToBytes.bind(this); - } - /* Accounts returns all the existing accounts - - Since: cosmos-sdk 0.43 */ - - - async accounts(params: QueryAccountsRequest = { - pagination: undefined - }): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/auth/v1beta1/accounts`; - return await this.req.get(endpoint, options); - } - /* Account returns account details based on address. */ - - - async account(params: QueryAccountRequest): Promise { - const endpoint = `cosmos/auth/v1beta1/accounts/${params.address}`; - return await this.req.get(endpoint); - } - /* Params queries all parameters. */ - - - async params(_params: QueryParamsRequest = {}): Promise { - const endpoint = `cosmos/auth/v1beta1/params`; - return await this.req.get(endpoint); - } - /* ModuleAccounts returns all the existing module accounts. */ - - - async moduleAccounts(_params: QueryModuleAccountsRequest = {}): Promise { - const endpoint = `cosmos/auth/v1beta1/module_accounts`; - return await this.req.get(endpoint); - } - /* Bech32 queries bech32Prefix */ - - - async bech32Prefix(_params: Bech32PrefixRequest = {}): Promise { - const endpoint = `cosmos/auth/v1beta1/bech32`; - return await this.req.get(endpoint); - } - /* AddressBytesToString converts Account Address bytes to string */ - - - async addressBytesToString(params: AddressBytesToStringRequest): Promise { - const endpoint = `cosmos/auth/v1beta1/bech32/${params.addressBytes}`; - return await this.req.get(endpoint); - } - /* AddressStringToBytes converts Address string to bytes */ - - - async addressStringToBytes(params: AddressStringToBytesRequest): Promise { - const endpoint = `cosmos/auth/v1beta1/bech32/${params.addressString}`; - return await this.req.get(endpoint); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/auth/v1beta1/query.rpc.Query.ts b/packages/codegen/src/cosmos/auth/v1beta1/query.rpc.Query.ts deleted file mode 100644 index bd0c78f3..00000000 --- a/packages/codegen/src/cosmos/auth/v1beta1/query.rpc.Query.ts +++ /dev/null @@ -1,125 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { QueryAccountsRequest, QueryAccountsResponse, QueryAccountRequest, QueryAccountResponse, QueryParamsRequest, QueryParamsResponse, QueryModuleAccountsRequest, QueryModuleAccountsResponse, Bech32PrefixRequest, Bech32PrefixResponse, AddressBytesToStringRequest, AddressBytesToStringResponse, AddressStringToBytesRequest, AddressStringToBytesResponse } from "./query"; -/** Query defines the gRPC querier service. */ - -export interface Query { - /** - * Accounts returns all the existing accounts - * - * Since: cosmos-sdk 0.43 - */ - accounts(request?: QueryAccountsRequest): Promise; - /** Account returns account details based on address. */ - - account(request: QueryAccountRequest): Promise; - /** Params queries all parameters. */ - - params(request?: QueryParamsRequest): Promise; - /** ModuleAccounts returns all the existing module accounts. */ - - moduleAccounts(request?: QueryModuleAccountsRequest): Promise; - /** Bech32 queries bech32Prefix */ - - bech32Prefix(request?: Bech32PrefixRequest): Promise; - /** AddressBytesToString converts Account Address bytes to string */ - - addressBytesToString(request: AddressBytesToStringRequest): Promise; - /** AddressStringToBytes converts Address string to bytes */ - - addressStringToBytes(request: AddressStringToBytesRequest): Promise; -} -export class QueryClientImpl implements Query { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.accounts = this.accounts.bind(this); - this.account = this.account.bind(this); - this.params = this.params.bind(this); - this.moduleAccounts = this.moduleAccounts.bind(this); - this.bech32Prefix = this.bech32Prefix.bind(this); - this.addressBytesToString = this.addressBytesToString.bind(this); - this.addressStringToBytes = this.addressStringToBytes.bind(this); - } - - accounts(request: QueryAccountsRequest = { - pagination: undefined - }): Promise { - const data = QueryAccountsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "Accounts", data); - return promise.then(data => QueryAccountsResponse.decode(new _m0.Reader(data))); - } - - account(request: QueryAccountRequest): Promise { - const data = QueryAccountRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "Account", data); - return promise.then(data => QueryAccountResponse.decode(new _m0.Reader(data))); - } - - params(request: QueryParamsRequest = {}): Promise { - const data = QueryParamsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "Params", data); - return promise.then(data => QueryParamsResponse.decode(new _m0.Reader(data))); - } - - moduleAccounts(request: QueryModuleAccountsRequest = {}): Promise { - const data = QueryModuleAccountsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "ModuleAccounts", data); - return promise.then(data => QueryModuleAccountsResponse.decode(new _m0.Reader(data))); - } - - bech32Prefix(request: Bech32PrefixRequest = {}): Promise { - const data = Bech32PrefixRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "Bech32Prefix", data); - return promise.then(data => Bech32PrefixResponse.decode(new _m0.Reader(data))); - } - - addressBytesToString(request: AddressBytesToStringRequest): Promise { - const data = AddressBytesToStringRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "AddressBytesToString", data); - return promise.then(data => AddressBytesToStringResponse.decode(new _m0.Reader(data))); - } - - addressStringToBytes(request: AddressStringToBytesRequest): Promise { - const data = AddressStringToBytesRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "AddressStringToBytes", data); - return promise.then(data => AddressStringToBytesResponse.decode(new _m0.Reader(data))); - } - -} -export const createRpcQueryExtension = (base: QueryClient) => { - const rpc = createProtobufRpcClient(base); - const queryService = new QueryClientImpl(rpc); - return { - accounts(request?: QueryAccountsRequest): Promise { - return queryService.accounts(request); - }, - - account(request: QueryAccountRequest): Promise { - return queryService.account(request); - }, - - params(request?: QueryParamsRequest): Promise { - return queryService.params(request); - }, - - moduleAccounts(request?: QueryModuleAccountsRequest): Promise { - return queryService.moduleAccounts(request); - }, - - bech32Prefix(request?: Bech32PrefixRequest): Promise { - return queryService.bech32Prefix(request); - }, - - addressBytesToString(request: AddressBytesToStringRequest): Promise { - return queryService.addressBytesToString(request); - }, - - addressStringToBytes(request: AddressStringToBytesRequest): Promise { - return queryService.addressStringToBytes(request); - } - - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/auth/v1beta1/query.ts b/packages/codegen/src/cosmos/auth/v1beta1/query.ts deleted file mode 100644 index d9f110dc..00000000 --- a/packages/codegen/src/cosmos/auth/v1beta1/query.ts +++ /dev/null @@ -1,765 +0,0 @@ -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import { Params, ParamsSDKType } from "./auth"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * QueryAccountsRequest is the request type for the Query/Accounts RPC method. - * - * Since: cosmos-sdk 0.43 - */ - -export interface QueryAccountsRequest { - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** - * QueryAccountsRequest is the request type for the Query/Accounts RPC method. - * - * Since: cosmos-sdk 0.43 - */ - -export interface QueryAccountsRequestSDKType { - pagination?: PageRequestSDKType; -} -/** - * QueryAccountsResponse is the response type for the Query/Accounts RPC method. - * - * Since: cosmos-sdk 0.43 - */ - -export interface QueryAccountsResponse { - /** accounts are the existing accounts */ - accounts: Any[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** - * QueryAccountsResponse is the response type for the Query/Accounts RPC method. - * - * Since: cosmos-sdk 0.43 - */ - -export interface QueryAccountsResponseSDKType { - accounts: AnySDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryAccountRequest is the request type for the Query/Account RPC method. */ - -export interface QueryAccountRequest { - /** address defines the address to query for. */ - address: string; -} -/** QueryAccountRequest is the request type for the Query/Account RPC method. */ - -export interface QueryAccountRequestSDKType { - address: string; -} -/** QueryModuleAccountsRequest is the request type for the Query/ModuleAccounts RPC method. */ - -export interface QueryModuleAccountsRequest {} -/** QueryModuleAccountsRequest is the request type for the Query/ModuleAccounts RPC method. */ - -export interface QueryModuleAccountsRequestSDKType {} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ - -export interface QueryParamsResponse { - /** params defines the parameters of the module. */ - params?: Params; -} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ - -export interface QueryParamsResponseSDKType { - params?: ParamsSDKType; -} -/** QueryAccountResponse is the response type for the Query/Account RPC method. */ - -export interface QueryAccountResponse { - /** account defines the account of the corresponding address. */ - account?: Any; -} -/** QueryAccountResponse is the response type for the Query/Account RPC method. */ - -export interface QueryAccountResponseSDKType { - account?: AnySDKType; -} -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ - -export interface QueryParamsRequest {} -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ - -export interface QueryParamsRequestSDKType {} -/** QueryModuleAccountsResponse is the response type for the Query/ModuleAccounts RPC method. */ - -export interface QueryModuleAccountsResponse { - accounts: Any[]; -} -/** QueryModuleAccountsResponse is the response type for the Query/ModuleAccounts RPC method. */ - -export interface QueryModuleAccountsResponseSDKType { - accounts: AnySDKType[]; -} -/** Bech32PrefixRequest is the request type for Bech32Prefix rpc method */ - -export interface Bech32PrefixRequest {} -/** Bech32PrefixRequest is the request type for Bech32Prefix rpc method */ - -export interface Bech32PrefixRequestSDKType {} -/** Bech32PrefixResponse is the response type for Bech32Prefix rpc method */ - -export interface Bech32PrefixResponse { - bech32Prefix: string; -} -/** Bech32PrefixResponse is the response type for Bech32Prefix rpc method */ - -export interface Bech32PrefixResponseSDKType { - bech32_prefix: string; -} -/** AddressBytesToStringRequest is the request type for AddressString rpc method */ - -export interface AddressBytesToStringRequest { - addressBytes: Uint8Array; -} -/** AddressBytesToStringRequest is the request type for AddressString rpc method */ - -export interface AddressBytesToStringRequestSDKType { - address_bytes: Uint8Array; -} -/** AddressBytesToStringResponse is the response type for AddressString rpc method */ - -export interface AddressBytesToStringResponse { - addressString: string; -} -/** AddressBytesToStringResponse is the response type for AddressString rpc method */ - -export interface AddressBytesToStringResponseSDKType { - address_string: string; -} -/** AddressStringToBytesRequest is the request type for AccountBytes rpc method */ - -export interface AddressStringToBytesRequest { - addressString: string; -} -/** AddressStringToBytesRequest is the request type for AccountBytes rpc method */ - -export interface AddressStringToBytesRequestSDKType { - address_string: string; -} -/** AddressStringToBytesResponse is the response type for AddressBytes rpc method */ - -export interface AddressStringToBytesResponse { - addressBytes: Uint8Array; -} -/** AddressStringToBytesResponse is the response type for AddressBytes rpc method */ - -export interface AddressStringToBytesResponseSDKType { - address_bytes: Uint8Array; -} - -function createBaseQueryAccountsRequest(): QueryAccountsRequest { - return { - pagination: undefined - }; -} - -export const QueryAccountsRequest = { - encode(message: QueryAccountsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAccountsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAccountsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryAccountsRequest { - const message = createBaseQueryAccountsRequest(); - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryAccountsResponse(): QueryAccountsResponse { - return { - accounts: [], - pagination: undefined - }; -} - -export const QueryAccountsResponse = { - encode(message: QueryAccountsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.accounts) { - Any.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAccountsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAccountsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.accounts.push(Any.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryAccountsResponse { - const message = createBaseQueryAccountsResponse(); - message.accounts = object.accounts?.map(e => Any.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryAccountRequest(): QueryAccountRequest { - return { - address: "" - }; -} - -export const QueryAccountRequest = { - encode(message: QueryAccountRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAccountRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAccountRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryAccountRequest { - const message = createBaseQueryAccountRequest(); - message.address = object.address ?? ""; - return message; - } - -}; - -function createBaseQueryModuleAccountsRequest(): QueryModuleAccountsRequest { - return {}; -} - -export const QueryModuleAccountsRequest = { - encode(_: QueryModuleAccountsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryModuleAccountsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryModuleAccountsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): QueryModuleAccountsRequest { - const message = createBaseQueryModuleAccountsRequest(); - return message; - } - -}; - -function createBaseQueryParamsResponse(): QueryParamsResponse { - return { - params: undefined - }; -} - -export const QueryParamsResponse = { - encode(message: QueryParamsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.params !== undefined) { - Params.encode(message.params, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.params = Params.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryParamsResponse { - const message = createBaseQueryParamsResponse(); - message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined; - return message; - } - -}; - -function createBaseQueryAccountResponse(): QueryAccountResponse { - return { - account: undefined - }; -} - -export const QueryAccountResponse = { - encode(message: QueryAccountResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.account !== undefined) { - Any.encode(message.account, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAccountResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAccountResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.account = Any.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryAccountResponse { - const message = createBaseQueryAccountResponse(); - message.account = object.account !== undefined && object.account !== null ? Any.fromPartial(object.account) : undefined; - return message; - } - -}; - -function createBaseQueryParamsRequest(): QueryParamsRequest { - return {}; -} - -export const QueryParamsRequest = { - encode(_: QueryParamsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): QueryParamsRequest { - const message = createBaseQueryParamsRequest(); - return message; - } - -}; - -function createBaseQueryModuleAccountsResponse(): QueryModuleAccountsResponse { - return { - accounts: [] - }; -} - -export const QueryModuleAccountsResponse = { - encode(message: QueryModuleAccountsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.accounts) { - Any.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryModuleAccountsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryModuleAccountsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.accounts.push(Any.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryModuleAccountsResponse { - const message = createBaseQueryModuleAccountsResponse(); - message.accounts = object.accounts?.map(e => Any.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseBech32PrefixRequest(): Bech32PrefixRequest { - return {}; -} - -export const Bech32PrefixRequest = { - encode(_: Bech32PrefixRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Bech32PrefixRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBech32PrefixRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): Bech32PrefixRequest { - const message = createBaseBech32PrefixRequest(); - return message; - } - -}; - -function createBaseBech32PrefixResponse(): Bech32PrefixResponse { - return { - bech32Prefix: "" - }; -} - -export const Bech32PrefixResponse = { - encode(message: Bech32PrefixResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.bech32Prefix !== "") { - writer.uint32(10).string(message.bech32Prefix); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Bech32PrefixResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBech32PrefixResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.bech32Prefix = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Bech32PrefixResponse { - const message = createBaseBech32PrefixResponse(); - message.bech32Prefix = object.bech32Prefix ?? ""; - return message; - } - -}; - -function createBaseAddressBytesToStringRequest(): AddressBytesToStringRequest { - return { - addressBytes: new Uint8Array() - }; -} - -export const AddressBytesToStringRequest = { - encode(message: AddressBytesToStringRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.addressBytes.length !== 0) { - writer.uint32(10).bytes(message.addressBytes); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): AddressBytesToStringRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAddressBytesToStringRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.addressBytes = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): AddressBytesToStringRequest { - const message = createBaseAddressBytesToStringRequest(); - message.addressBytes = object.addressBytes ?? new Uint8Array(); - return message; - } - -}; - -function createBaseAddressBytesToStringResponse(): AddressBytesToStringResponse { - return { - addressString: "" - }; -} - -export const AddressBytesToStringResponse = { - encode(message: AddressBytesToStringResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.addressString !== "") { - writer.uint32(10).string(message.addressString); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): AddressBytesToStringResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAddressBytesToStringResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.addressString = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): AddressBytesToStringResponse { - const message = createBaseAddressBytesToStringResponse(); - message.addressString = object.addressString ?? ""; - return message; - } - -}; - -function createBaseAddressStringToBytesRequest(): AddressStringToBytesRequest { - return { - addressString: "" - }; -} - -export const AddressStringToBytesRequest = { - encode(message: AddressStringToBytesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.addressString !== "") { - writer.uint32(10).string(message.addressString); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): AddressStringToBytesRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAddressStringToBytesRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.addressString = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): AddressStringToBytesRequest { - const message = createBaseAddressStringToBytesRequest(); - message.addressString = object.addressString ?? ""; - return message; - } - -}; - -function createBaseAddressStringToBytesResponse(): AddressStringToBytesResponse { - return { - addressBytes: new Uint8Array() - }; -} - -export const AddressStringToBytesResponse = { - encode(message: AddressStringToBytesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.addressBytes.length !== 0) { - writer.uint32(10).bytes(message.addressBytes); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): AddressStringToBytesResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAddressStringToBytesResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.addressBytes = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): AddressStringToBytesResponse { - const message = createBaseAddressStringToBytesResponse(); - message.addressBytes = object.addressBytes ?? new Uint8Array(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/authz/v1beta1/authz.ts b/packages/codegen/src/cosmos/authz/v1beta1/authz.ts deleted file mode 100644 index 0bae9810..00000000 --- a/packages/codegen/src/cosmos/authz/v1beta1/authz.ts +++ /dev/null @@ -1,298 +0,0 @@ -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import { Timestamp } from "../../../google/protobuf/timestamp"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, toTimestamp, fromTimestamp } from "../../../helpers"; -/** - * GenericAuthorization gives the grantee unrestricted permissions to execute - * the provided method on behalf of the granter's account. - */ - -export interface GenericAuthorization { - /** Msg, identified by it's type URL, to grant unrestricted permissions to execute */ - msg: string; -} -/** - * GenericAuthorization gives the grantee unrestricted permissions to execute - * the provided method on behalf of the granter's account. - */ - -export interface GenericAuthorizationSDKType { - msg: string; -} -/** - * Grant gives permissions to execute - * the provide method with expiration time. - */ - -export interface Grant { - authorization?: Any; - /** - * 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) - */ - - expiration?: Date; -} -/** - * Grant gives permissions to execute - * the provide method with expiration time. - */ - -export interface GrantSDKType { - authorization?: AnySDKType; - expiration?: Date; -} -/** - * GrantAuthorization extends a grant with both the addresses of the grantee and granter. - * It is used in genesis.proto and query.proto - */ - -export interface GrantAuthorization { - granter: string; - grantee: string; - authorization?: Any; - expiration?: Date; -} -/** - * GrantAuthorization extends a grant with both the addresses of the grantee and granter. - * It is used in genesis.proto and query.proto - */ - -export interface GrantAuthorizationSDKType { - granter: string; - grantee: string; - authorization?: AnySDKType; - expiration?: Date; -} -/** GrantQueueItem contains the list of TypeURL of a sdk.Msg. */ - -export interface GrantQueueItem { - /** msg_type_urls contains the list of TypeURL of a sdk.Msg. */ - msgTypeUrls: string[]; -} -/** GrantQueueItem contains the list of TypeURL of a sdk.Msg. */ - -export interface GrantQueueItemSDKType { - msg_type_urls: string[]; -} - -function createBaseGenericAuthorization(): GenericAuthorization { - return { - msg: "" - }; -} - -export const GenericAuthorization = { - encode(message: GenericAuthorization, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.msg !== "") { - writer.uint32(10).string(message.msg); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenericAuthorization { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenericAuthorization(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.msg = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenericAuthorization { - const message = createBaseGenericAuthorization(); - message.msg = object.msg ?? ""; - return message; - } - -}; - -function createBaseGrant(): Grant { - return { - authorization: undefined, - expiration: undefined - }; -} - -export const Grant = { - encode(message: Grant, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.authorization !== undefined) { - Any.encode(message.authorization, writer.uint32(10).fork()).ldelim(); - } - - if (message.expiration !== undefined) { - Timestamp.encode(toTimestamp(message.expiration), writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Grant { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGrant(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.authorization = Any.decode(reader, reader.uint32()); - break; - - case 2: - message.expiration = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Grant { - const message = createBaseGrant(); - message.authorization = object.authorization !== undefined && object.authorization !== null ? Any.fromPartial(object.authorization) : undefined; - message.expiration = object.expiration ?? undefined; - return message; - } - -}; - -function createBaseGrantAuthorization(): GrantAuthorization { - return { - granter: "", - grantee: "", - authorization: undefined, - expiration: undefined - }; -} - -export const GrantAuthorization = { - encode(message: GrantAuthorization, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.granter !== "") { - writer.uint32(10).string(message.granter); - } - - if (message.grantee !== "") { - writer.uint32(18).string(message.grantee); - } - - if (message.authorization !== undefined) { - Any.encode(message.authorization, writer.uint32(26).fork()).ldelim(); - } - - if (message.expiration !== undefined) { - Timestamp.encode(toTimestamp(message.expiration), writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GrantAuthorization { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGrantAuthorization(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.granter = reader.string(); - break; - - case 2: - message.grantee = reader.string(); - break; - - case 3: - message.authorization = Any.decode(reader, reader.uint32()); - break; - - case 4: - message.expiration = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GrantAuthorization { - const message = createBaseGrantAuthorization(); - message.granter = object.granter ?? ""; - message.grantee = object.grantee ?? ""; - message.authorization = object.authorization !== undefined && object.authorization !== null ? Any.fromPartial(object.authorization) : undefined; - message.expiration = object.expiration ?? undefined; - return message; - } - -}; - -function createBaseGrantQueueItem(): GrantQueueItem { - return { - msgTypeUrls: [] - }; -} - -export const GrantQueueItem = { - encode(message: GrantQueueItem, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.msgTypeUrls) { - writer.uint32(10).string(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GrantQueueItem { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGrantQueueItem(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.msgTypeUrls.push(reader.string()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GrantQueueItem { - const message = createBaseGrantQueueItem(); - message.msgTypeUrls = object.msgTypeUrls?.map(e => e) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/authz/v1beta1/event.ts b/packages/codegen/src/cosmos/authz/v1beta1/event.ts deleted file mode 100644 index 287d4b8c..00000000 --- a/packages/codegen/src/cosmos/authz/v1beta1/event.ts +++ /dev/null @@ -1,170 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** EventGrant is emitted on Msg/Grant */ - -export interface EventGrant { - /** Msg type URL for which an autorization is granted */ - msgTypeUrl: string; - /** Granter account address */ - - granter: string; - /** Grantee account address */ - - grantee: string; -} -/** EventGrant is emitted on Msg/Grant */ - -export interface EventGrantSDKType { - msg_type_url: string; - granter: string; - grantee: string; -} -/** EventRevoke is emitted on Msg/Revoke */ - -export interface EventRevoke { - /** Msg type URL for which an autorization is revoked */ - msgTypeUrl: string; - /** Granter account address */ - - granter: string; - /** Grantee account address */ - - grantee: string; -} -/** EventRevoke is emitted on Msg/Revoke */ - -export interface EventRevokeSDKType { - msg_type_url: string; - granter: string; - grantee: string; -} - -function createBaseEventGrant(): EventGrant { - return { - msgTypeUrl: "", - granter: "", - grantee: "" - }; -} - -export const EventGrant = { - encode(message: EventGrant, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.msgTypeUrl !== "") { - writer.uint32(18).string(message.msgTypeUrl); - } - - if (message.granter !== "") { - writer.uint32(26).string(message.granter); - } - - if (message.grantee !== "") { - writer.uint32(34).string(message.grantee); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): EventGrant { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEventGrant(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 2: - message.msgTypeUrl = reader.string(); - break; - - case 3: - message.granter = reader.string(); - break; - - case 4: - message.grantee = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): EventGrant { - const message = createBaseEventGrant(); - message.msgTypeUrl = object.msgTypeUrl ?? ""; - message.granter = object.granter ?? ""; - message.grantee = object.grantee ?? ""; - return message; - } - -}; - -function createBaseEventRevoke(): EventRevoke { - return { - msgTypeUrl: "", - granter: "", - grantee: "" - }; -} - -export const EventRevoke = { - encode(message: EventRevoke, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.msgTypeUrl !== "") { - writer.uint32(18).string(message.msgTypeUrl); - } - - if (message.granter !== "") { - writer.uint32(26).string(message.granter); - } - - if (message.grantee !== "") { - writer.uint32(34).string(message.grantee); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): EventRevoke { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEventRevoke(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 2: - message.msgTypeUrl = reader.string(); - break; - - case 3: - message.granter = reader.string(); - break; - - case 4: - message.grantee = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): EventRevoke { - const message = createBaseEventRevoke(); - message.msgTypeUrl = object.msgTypeUrl ?? ""; - message.granter = object.granter ?? ""; - message.grantee = object.grantee ?? ""; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/authz/v1beta1/genesis.ts b/packages/codegen/src/cosmos/authz/v1beta1/genesis.ts deleted file mode 100644 index 037ff238..00000000 --- a/packages/codegen/src/cosmos/authz/v1beta1/genesis.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { GrantAuthorization, GrantAuthorizationSDKType } from "./authz"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** GenesisState defines the authz module's genesis state. */ - -export interface GenesisState { - authorization: GrantAuthorization[]; -} -/** GenesisState defines the authz module's genesis state. */ - -export interface GenesisStateSDKType { - authorization: GrantAuthorizationSDKType[]; -} - -function createBaseGenesisState(): GenesisState { - return { - authorization: [] - }; -} - -export const GenesisState = { - encode(message: GenesisState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.authorization) { - GrantAuthorization.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.authorization.push(GrantAuthorization.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenesisState { - const message = createBaseGenesisState(); - message.authorization = object.authorization?.map(e => GrantAuthorization.fromPartial(e)) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/authz/v1beta1/query.lcd.ts b/packages/codegen/src/cosmos/authz/v1beta1/query.lcd.ts deleted file mode 100644 index 0a8df359..00000000 --- a/packages/codegen/src/cosmos/authz/v1beta1/query.lcd.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { setPaginationParams } from "../../../helpers"; -import { LCDClient } from "@osmonauts/lcd"; -import { QueryGrantsRequest, QueryGrantsResponseSDKType, QueryGranterGrantsRequest, QueryGranterGrantsResponseSDKType, QueryGranteeGrantsRequest, QueryGranteeGrantsResponseSDKType } from "./query"; -export class LCDQueryClient { - req: LCDClient; - - constructor({ - requestClient - }: { - requestClient: LCDClient; - }) { - this.req = requestClient; - this.grants = this.grants.bind(this); - this.granterGrants = this.granterGrants.bind(this); - this.granteeGrants = this.granteeGrants.bind(this); - } - /* Returns list of `Authorization`, granted to the grantee by the granter. */ - - - async grants(params: QueryGrantsRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.granter !== "undefined") { - options.params.granter = params.granter; - } - - if (typeof params?.grantee !== "undefined") { - options.params.grantee = params.grantee; - } - - if (typeof params?.msgTypeUrl !== "undefined") { - options.params.msg_type_url = params.msgTypeUrl; - } - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/authz/v1beta1/grants`; - return await this.req.get(endpoint, options); - } - /* GranterGrants returns list of `GrantAuthorization`, granted by granter. - - Since: cosmos-sdk 0.46 */ - - - async granterGrants(params: QueryGranterGrantsRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/authz/v1beta1/grants/granter/${params.granter}`; - return await this.req.get(endpoint, options); - } - /* GranteeGrants returns a list of `GrantAuthorization` by grantee. - - Since: cosmos-sdk 0.46 */ - - - async granteeGrants(params: QueryGranteeGrantsRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/authz/v1beta1/grants/grantee/${params.grantee}`; - return await this.req.get(endpoint, options); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/authz/v1beta1/query.rpc.Query.ts b/packages/codegen/src/cosmos/authz/v1beta1/query.rpc.Query.ts deleted file mode 100644 index c2fda460..00000000 --- a/packages/codegen/src/cosmos/authz/v1beta1/query.rpc.Query.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { QueryGrantsRequest, QueryGrantsResponse, QueryGranterGrantsRequest, QueryGranterGrantsResponse, QueryGranteeGrantsRequest, QueryGranteeGrantsResponse } from "./query"; -/** Query defines the gRPC querier service. */ - -export interface Query { - /** Returns list of `Authorization`, granted to the grantee by the granter. */ - grants(request: QueryGrantsRequest): Promise; - /** - * GranterGrants returns list of `GrantAuthorization`, granted by granter. - * - * Since: cosmos-sdk 0.46 - */ - - granterGrants(request: QueryGranterGrantsRequest): Promise; - /** - * GranteeGrants returns a list of `GrantAuthorization` by grantee. - * - * Since: cosmos-sdk 0.46 - */ - - granteeGrants(request: QueryGranteeGrantsRequest): Promise; -} -export class QueryClientImpl implements Query { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.grants = this.grants.bind(this); - this.granterGrants = this.granterGrants.bind(this); - this.granteeGrants = this.granteeGrants.bind(this); - } - - grants(request: QueryGrantsRequest): Promise { - const data = QueryGrantsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.authz.v1beta1.Query", "Grants", data); - return promise.then(data => QueryGrantsResponse.decode(new _m0.Reader(data))); - } - - granterGrants(request: QueryGranterGrantsRequest): Promise { - const data = QueryGranterGrantsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.authz.v1beta1.Query", "GranterGrants", data); - return promise.then(data => QueryGranterGrantsResponse.decode(new _m0.Reader(data))); - } - - granteeGrants(request: QueryGranteeGrantsRequest): Promise { - const data = QueryGranteeGrantsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.authz.v1beta1.Query", "GranteeGrants", data); - return promise.then(data => QueryGranteeGrantsResponse.decode(new _m0.Reader(data))); - } - -} -export const createRpcQueryExtension = (base: QueryClient) => { - const rpc = createProtobufRpcClient(base); - const queryService = new QueryClientImpl(rpc); - return { - grants(request: QueryGrantsRequest): Promise { - return queryService.grants(request); - }, - - granterGrants(request: QueryGranterGrantsRequest): Promise { - return queryService.granterGrants(request); - }, - - granteeGrants(request: QueryGranteeGrantsRequest): Promise { - return queryService.granteeGrants(request); - } - - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/authz/v1beta1/query.ts b/packages/codegen/src/cosmos/authz/v1beta1/query.ts deleted file mode 100644 index 7b93128e..00000000 --- a/packages/codegen/src/cosmos/authz/v1beta1/query.ts +++ /dev/null @@ -1,447 +0,0 @@ -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { Grant, GrantSDKType, GrantAuthorization, GrantAuthorizationSDKType } from "./authz"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** QueryGrantsRequest is the request type for the Query/Grants RPC method. */ - -export interface QueryGrantsRequest { - granter: string; - grantee: string; - /** Optional, msg_type_url, when set, will query only grants matching given msg type. */ - - msgTypeUrl: string; - /** pagination defines an pagination for the request. */ - - pagination?: PageRequest; -} -/** QueryGrantsRequest is the request type for the Query/Grants RPC method. */ - -export interface QueryGrantsRequestSDKType { - granter: string; - grantee: string; - msg_type_url: string; - pagination?: PageRequestSDKType; -} -/** QueryGrantsResponse is the response type for the Query/Authorizations RPC method. */ - -export interface QueryGrantsResponse { - /** authorizations is a list of grants granted for grantee by granter. */ - grants: Grant[]; - /** pagination defines an pagination for the response. */ - - pagination?: PageResponse; -} -/** QueryGrantsResponse is the response type for the Query/Authorizations RPC method. */ - -export interface QueryGrantsResponseSDKType { - grants: GrantSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryGranterGrantsRequest is the request type for the Query/GranterGrants RPC method. */ - -export interface QueryGranterGrantsRequest { - granter: string; - /** pagination defines an pagination for the request. */ - - pagination?: PageRequest; -} -/** QueryGranterGrantsRequest is the request type for the Query/GranterGrants RPC method. */ - -export interface QueryGranterGrantsRequestSDKType { - granter: string; - pagination?: PageRequestSDKType; -} -/** QueryGranterGrantsResponse is the response type for the Query/GranterGrants RPC method. */ - -export interface QueryGranterGrantsResponse { - /** grants is a list of grants granted by the granter. */ - grants: GrantAuthorization[]; - /** pagination defines an pagination for the response. */ - - pagination?: PageResponse; -} -/** QueryGranterGrantsResponse is the response type for the Query/GranterGrants RPC method. */ - -export interface QueryGranterGrantsResponseSDKType { - grants: GrantAuthorizationSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryGranteeGrantsRequest is the request type for the Query/IssuedGrants RPC method. */ - -export interface QueryGranteeGrantsRequest { - grantee: string; - /** pagination defines an pagination for the request. */ - - pagination?: PageRequest; -} -/** QueryGranteeGrantsRequest is the request type for the Query/IssuedGrants RPC method. */ - -export interface QueryGranteeGrantsRequestSDKType { - grantee: string; - pagination?: PageRequestSDKType; -} -/** QueryGranteeGrantsResponse is the response type for the Query/GranteeGrants RPC method. */ - -export interface QueryGranteeGrantsResponse { - /** grants is a list of grants granted to the grantee. */ - grants: GrantAuthorization[]; - /** pagination defines an pagination for the response. */ - - pagination?: PageResponse; -} -/** QueryGranteeGrantsResponse is the response type for the Query/GranteeGrants RPC method. */ - -export interface QueryGranteeGrantsResponseSDKType { - grants: GrantAuthorizationSDKType[]; - pagination?: PageResponseSDKType; -} - -function createBaseQueryGrantsRequest(): QueryGrantsRequest { - return { - granter: "", - grantee: "", - msgTypeUrl: "", - pagination: undefined - }; -} - -export const QueryGrantsRequest = { - encode(message: QueryGrantsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.granter !== "") { - writer.uint32(10).string(message.granter); - } - - if (message.grantee !== "") { - writer.uint32(18).string(message.grantee); - } - - if (message.msgTypeUrl !== "") { - writer.uint32(26).string(message.msgTypeUrl); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGrantsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGrantsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.granter = reader.string(); - break; - - case 2: - message.grantee = reader.string(); - break; - - case 3: - message.msgTypeUrl = reader.string(); - break; - - case 4: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryGrantsRequest { - const message = createBaseQueryGrantsRequest(); - message.granter = object.granter ?? ""; - message.grantee = object.grantee ?? ""; - message.msgTypeUrl = object.msgTypeUrl ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryGrantsResponse(): QueryGrantsResponse { - return { - grants: [], - pagination: undefined - }; -} - -export const QueryGrantsResponse = { - encode(message: QueryGrantsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.grants) { - Grant.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGrantsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGrantsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.grants.push(Grant.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryGrantsResponse { - const message = createBaseQueryGrantsResponse(); - message.grants = object.grants?.map(e => Grant.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryGranterGrantsRequest(): QueryGranterGrantsRequest { - return { - granter: "", - pagination: undefined - }; -} - -export const QueryGranterGrantsRequest = { - encode(message: QueryGranterGrantsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.granter !== "") { - writer.uint32(10).string(message.granter); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGranterGrantsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGranterGrantsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.granter = reader.string(); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryGranterGrantsRequest { - const message = createBaseQueryGranterGrantsRequest(); - message.granter = object.granter ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryGranterGrantsResponse(): QueryGranterGrantsResponse { - return { - grants: [], - pagination: undefined - }; -} - -export const QueryGranterGrantsResponse = { - encode(message: QueryGranterGrantsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.grants) { - GrantAuthorization.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGranterGrantsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGranterGrantsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.grants.push(GrantAuthorization.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryGranterGrantsResponse { - const message = createBaseQueryGranterGrantsResponse(); - message.grants = object.grants?.map(e => GrantAuthorization.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryGranteeGrantsRequest(): QueryGranteeGrantsRequest { - return { - grantee: "", - pagination: undefined - }; -} - -export const QueryGranteeGrantsRequest = { - encode(message: QueryGranteeGrantsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.grantee !== "") { - writer.uint32(10).string(message.grantee); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGranteeGrantsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGranteeGrantsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.grantee = reader.string(); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryGranteeGrantsRequest { - const message = createBaseQueryGranteeGrantsRequest(); - message.grantee = object.grantee ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryGranteeGrantsResponse(): QueryGranteeGrantsResponse { - return { - grants: [], - pagination: undefined - }; -} - -export const QueryGranteeGrantsResponse = { - encode(message: QueryGranteeGrantsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.grants) { - GrantAuthorization.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGranteeGrantsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGranteeGrantsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.grants.push(GrantAuthorization.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryGranteeGrantsResponse { - const message = createBaseQueryGranteeGrantsResponse(); - message.grants = object.grants?.map(e => GrantAuthorization.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/authz/v1beta1/tx.rpc.msg.ts b/packages/codegen/src/cosmos/authz/v1beta1/tx.rpc.msg.ts deleted file mode 100644 index 63499c42..00000000 --- a/packages/codegen/src/cosmos/authz/v1beta1/tx.rpc.msg.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { MsgGrant, MsgGrantResponse, MsgExec, MsgExecResponse, MsgRevoke, MsgRevokeResponse } from "./tx"; -/** Msg defines the authz Msg service. */ - -export interface Msg { - /** - * 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. - */ - grant(request: MsgGrant): Promise; - /** - * 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. - */ - - exec(request: MsgExec): Promise; - /** - * Revoke revokes any authorization corresponding to the provided method name on the - * granter's account that has been granted to the grantee. - */ - - revoke(request: MsgRevoke): Promise; -} -export class MsgClientImpl implements Msg { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.grant = this.grant.bind(this); - this.exec = this.exec.bind(this); - this.revoke = this.revoke.bind(this); - } - - grant(request: MsgGrant): Promise { - const data = MsgGrant.encode(request).finish(); - const promise = this.rpc.request("cosmos.authz.v1beta1.Msg", "Grant", data); - return promise.then(data => MsgGrantResponse.decode(new _m0.Reader(data))); - } - - exec(request: MsgExec): Promise { - const data = MsgExec.encode(request).finish(); - const promise = this.rpc.request("cosmos.authz.v1beta1.Msg", "Exec", data); - return promise.then(data => MsgExecResponse.decode(new _m0.Reader(data))); - } - - revoke(request: MsgRevoke): Promise { - const data = MsgRevoke.encode(request).finish(); - const promise = this.rpc.request("cosmos.authz.v1beta1.Msg", "Revoke", data); - return promise.then(data => MsgRevokeResponse.decode(new _m0.Reader(data))); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/authz/v1beta1/tx.ts b/packages/codegen/src/cosmos/authz/v1beta1/tx.ts deleted file mode 100644 index c9c30034..00000000 --- a/packages/codegen/src/cosmos/authz/v1beta1/tx.ts +++ /dev/null @@ -1,390 +0,0 @@ -import { Grant, GrantSDKType } from "./authz"; -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * MsgGrant is a request type for Grant method. It declares authorization to the grantee - * on behalf of the granter with the provided expiration time. - */ - -export interface MsgGrant { - granter: string; - grantee: string; - grant?: Grant; -} -/** - * MsgGrant is a request type for Grant method. It declares authorization to the grantee - * on behalf of the granter with the provided expiration time. - */ - -export interface MsgGrantSDKType { - granter: string; - grantee: string; - grant?: GrantSDKType; -} -/** MsgExecResponse defines the Msg/MsgExecResponse response type. */ - -export interface MsgExecResponse { - results: Uint8Array[]; -} -/** MsgExecResponse defines the Msg/MsgExecResponse response type. */ - -export interface MsgExecResponseSDKType { - results: Uint8Array[]; -} -/** - * 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. - */ - -export interface MsgExec { - grantee: string; - /** - * Authorization Msg requests to execute. Each msg must implement Authorization interface - * The x/authz will try to find a grant matching (msg.signers[0], grantee, MsgTypeURL(msg)) - * triple and validate it. - */ - - msgs: Any[]; -} -/** - * 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. - */ - -export interface MsgExecSDKType { - grantee: string; - msgs: AnySDKType[]; -} -/** MsgGrantResponse defines the Msg/MsgGrant response type. */ - -export interface MsgGrantResponse {} -/** MsgGrantResponse defines the Msg/MsgGrant response type. */ - -export interface MsgGrantResponseSDKType {} -/** - * MsgRevoke revokes any authorization with the provided sdk.Msg type on the - * granter's account with that has been granted to the grantee. - */ - -export interface MsgRevoke { - granter: string; - grantee: string; - msgTypeUrl: string; -} -/** - * MsgRevoke revokes any authorization with the provided sdk.Msg type on the - * granter's account with that has been granted to the grantee. - */ - -export interface MsgRevokeSDKType { - granter: string; - grantee: string; - msg_type_url: string; -} -/** MsgRevokeResponse defines the Msg/MsgRevokeResponse response type. */ - -export interface MsgRevokeResponse {} -/** MsgRevokeResponse defines the Msg/MsgRevokeResponse response type. */ - -export interface MsgRevokeResponseSDKType {} - -function createBaseMsgGrant(): MsgGrant { - return { - granter: "", - grantee: "", - grant: undefined - }; -} - -export const MsgGrant = { - encode(message: MsgGrant, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.granter !== "") { - writer.uint32(10).string(message.granter); - } - - if (message.grantee !== "") { - writer.uint32(18).string(message.grantee); - } - - if (message.grant !== undefined) { - Grant.encode(message.grant, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgGrant { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgGrant(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.granter = reader.string(); - break; - - case 2: - message.grantee = reader.string(); - break; - - case 3: - message.grant = Grant.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgGrant { - const message = createBaseMsgGrant(); - message.granter = object.granter ?? ""; - message.grantee = object.grantee ?? ""; - message.grant = object.grant !== undefined && object.grant !== null ? Grant.fromPartial(object.grant) : undefined; - return message; - } - -}; - -function createBaseMsgExecResponse(): MsgExecResponse { - return { - results: [] - }; -} - -export const MsgExecResponse = { - encode(message: MsgExecResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.results) { - writer.uint32(10).bytes(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgExecResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgExecResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.results.push(reader.bytes()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgExecResponse { - const message = createBaseMsgExecResponse(); - message.results = object.results?.map(e => e) || []; - return message; - } - -}; - -function createBaseMsgExec(): MsgExec { - return { - grantee: "", - msgs: [] - }; -} - -export const MsgExec = { - encode(message: MsgExec, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.grantee !== "") { - writer.uint32(10).string(message.grantee); - } - - for (const v of message.msgs) { - Any.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgExec { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgExec(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.grantee = reader.string(); - break; - - case 2: - message.msgs.push(Any.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgExec { - const message = createBaseMsgExec(); - message.grantee = object.grantee ?? ""; - message.msgs = object.msgs?.map(e => Any.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseMsgGrantResponse(): MsgGrantResponse { - return {}; -} - -export const MsgGrantResponse = { - encode(_: MsgGrantResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgGrantResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgGrantResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgGrantResponse { - const message = createBaseMsgGrantResponse(); - return message; - } - -}; - -function createBaseMsgRevoke(): MsgRevoke { - return { - granter: "", - grantee: "", - msgTypeUrl: "" - }; -} - -export const MsgRevoke = { - encode(message: MsgRevoke, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.granter !== "") { - writer.uint32(10).string(message.granter); - } - - if (message.grantee !== "") { - writer.uint32(18).string(message.grantee); - } - - if (message.msgTypeUrl !== "") { - writer.uint32(26).string(message.msgTypeUrl); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgRevoke { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgRevoke(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.granter = reader.string(); - break; - - case 2: - message.grantee = reader.string(); - break; - - case 3: - message.msgTypeUrl = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgRevoke { - const message = createBaseMsgRevoke(); - message.granter = object.granter ?? ""; - message.grantee = object.grantee ?? ""; - message.msgTypeUrl = object.msgTypeUrl ?? ""; - return message; - } - -}; - -function createBaseMsgRevokeResponse(): MsgRevokeResponse { - return {}; -} - -export const MsgRevokeResponse = { - encode(_: MsgRevokeResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgRevokeResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgRevokeResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgRevokeResponse { - const message = createBaseMsgRevokeResponse(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/bank/v1beta1/authz.ts b/packages/codegen/src/cosmos/bank/v1beta1/authz.ts deleted file mode 100644 index b9c2c8cf..00000000 --- a/packages/codegen/src/cosmos/bank/v1beta1/authz.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * SendAuthorization allows the grantee to spend up to spend_limit coins from - * the granter's account. - * - * Since: cosmos-sdk 0.43 - */ - -export interface SendAuthorization { - spendLimit: Coin[]; -} -/** - * SendAuthorization allows the grantee to spend up to spend_limit coins from - * the granter's account. - * - * Since: cosmos-sdk 0.43 - */ - -export interface SendAuthorizationSDKType { - spend_limit: CoinSDKType[]; -} - -function createBaseSendAuthorization(): SendAuthorization { - return { - spendLimit: [] - }; -} - -export const SendAuthorization = { - encode(message: SendAuthorization, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.spendLimit) { - Coin.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SendAuthorization { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSendAuthorization(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.spendLimit.push(Coin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SendAuthorization { - const message = createBaseSendAuthorization(); - message.spendLimit = object.spendLimit?.map(e => Coin.fromPartial(e)) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/bank/v1beta1/bank.ts b/packages/codegen/src/cosmos/bank/v1beta1/bank.ts deleted file mode 100644 index 78f2ea20..00000000 --- a/packages/codegen/src/cosmos/bank/v1beta1/bank.ts +++ /dev/null @@ -1,620 +0,0 @@ -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** Params defines the parameters for the bank module. */ - -export interface Params { - sendEnabled: SendEnabled[]; - defaultSendEnabled: boolean; -} -/** Params defines the parameters for the bank module. */ - -export interface ParamsSDKType { - send_enabled: SendEnabledSDKType[]; - default_send_enabled: boolean; -} -/** - * SendEnabled maps coin denom to a send_enabled status (whether a denom is - * sendable). - */ - -export interface SendEnabled { - denom: string; - enabled: boolean; -} -/** - * SendEnabled maps coin denom to a send_enabled status (whether a denom is - * sendable). - */ - -export interface SendEnabledSDKType { - denom: string; - enabled: boolean; -} -/** Input models transaction input. */ - -export interface Input { - address: string; - coins: Coin[]; -} -/** Input models transaction input. */ - -export interface InputSDKType { - address: string; - coins: CoinSDKType[]; -} -/** Output models transaction outputs. */ - -export interface Output { - address: string; - coins: Coin[]; -} -/** Output models transaction outputs. */ - -export interface OutputSDKType { - address: string; - coins: CoinSDKType[]; -} -/** - * 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. - */ - -/** @deprecated */ - -export interface Supply { - total: Coin[]; -} -/** - * 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. - */ - -/** @deprecated */ - -export interface SupplySDKType { - total: CoinSDKType[]; -} -/** - * DenomUnit represents a struct that describes a given - * denomination unit of the basic token. - */ - -export interface DenomUnit { - /** denom represents the string name of the given denom unit (e.g uatom). */ - denom: string; - /** - * 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). - */ - - exponent: number; - /** aliases is a list of string aliases for the given denom */ - - aliases: string[]; -} -/** - * DenomUnit represents a struct that describes a given - * denomination unit of the basic token. - */ - -export interface DenomUnitSDKType { - denom: string; - exponent: number; - aliases: string[]; -} -/** - * Metadata represents a struct that describes - * a basic token. - */ - -export interface Metadata { - description: string; - /** denom_units represents the list of DenomUnit's for a given coin */ - - denomUnits: DenomUnit[]; - /** base represents the base denom (should be the DenomUnit with exponent = 0). */ - - base: string; - /** - * display indicates the suggested denom that should be - * displayed in clients. - */ - - display: string; - /** - * name defines the name of the token (eg: Cosmos Atom) - * - * Since: cosmos-sdk 0.43 - */ - - name: string; - /** - * symbol is the token symbol usually shown on exchanges (eg: ATOM). This can - * be the same as the display. - * - * Since: cosmos-sdk 0.43 - */ - - symbol: string; - /** - * URI to a document (on or off-chain) that contains additional information. Optional. - * - * Since: cosmos-sdk 0.46 - */ - - uri: string; - /** - * 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 - */ - - uriHash: string; -} -/** - * Metadata represents a struct that describes - * a basic token. - */ - -export interface MetadataSDKType { - description: string; - denom_units: DenomUnitSDKType[]; - base: string; - display: string; - name: string; - symbol: string; - uri: string; - uri_hash: string; -} - -function createBaseParams(): Params { - return { - sendEnabled: [], - defaultSendEnabled: false - }; -} - -export const Params = { - encode(message: Params, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.sendEnabled) { - SendEnabled.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.defaultSendEnabled === true) { - writer.uint32(16).bool(message.defaultSendEnabled); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Params { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseParams(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.sendEnabled.push(SendEnabled.decode(reader, reader.uint32())); - break; - - case 2: - message.defaultSendEnabled = reader.bool(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Params { - const message = createBaseParams(); - message.sendEnabled = object.sendEnabled?.map(e => SendEnabled.fromPartial(e)) || []; - message.defaultSendEnabled = object.defaultSendEnabled ?? false; - return message; - } - -}; - -function createBaseSendEnabled(): SendEnabled { - return { - denom: "", - enabled: false - }; -} - -export const SendEnabled = { - encode(message: SendEnabled, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.denom !== "") { - writer.uint32(10).string(message.denom); - } - - if (message.enabled === true) { - writer.uint32(16).bool(message.enabled); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SendEnabled { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSendEnabled(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.denom = reader.string(); - break; - - case 2: - message.enabled = reader.bool(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SendEnabled { - const message = createBaseSendEnabled(); - message.denom = object.denom ?? ""; - message.enabled = object.enabled ?? false; - return message; - } - -}; - -function createBaseInput(): Input { - return { - address: "", - coins: [] - }; -} - -export const Input = { - encode(message: Input, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - for (const v of message.coins) { - Coin.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Input { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseInput(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.coins.push(Coin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Input { - const message = createBaseInput(); - message.address = object.address ?? ""; - message.coins = object.coins?.map(e => Coin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseOutput(): Output { - return { - address: "", - coins: [] - }; -} - -export const Output = { - encode(message: Output, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - for (const v of message.coins) { - Coin.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Output { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseOutput(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.coins.push(Coin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Output { - const message = createBaseOutput(); - message.address = object.address ?? ""; - message.coins = object.coins?.map(e => Coin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseSupply(): Supply { - return { - total: [] - }; -} - -export const Supply = { - encode(message: Supply, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.total) { - Coin.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Supply { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSupply(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.total.push(Coin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Supply { - const message = createBaseSupply(); - message.total = object.total?.map(e => Coin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseDenomUnit(): DenomUnit { - return { - denom: "", - exponent: 0, - aliases: [] - }; -} - -export const DenomUnit = { - encode(message: DenomUnit, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.denom !== "") { - writer.uint32(10).string(message.denom); - } - - if (message.exponent !== 0) { - writer.uint32(16).uint32(message.exponent); - } - - for (const v of message.aliases) { - writer.uint32(26).string(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): DenomUnit { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDenomUnit(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.denom = reader.string(); - break; - - case 2: - message.exponent = reader.uint32(); - break; - - case 3: - message.aliases.push(reader.string()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): DenomUnit { - const message = createBaseDenomUnit(); - message.denom = object.denom ?? ""; - message.exponent = object.exponent ?? 0; - message.aliases = object.aliases?.map(e => e) || []; - return message; - } - -}; - -function createBaseMetadata(): Metadata { - return { - description: "", - denomUnits: [], - base: "", - display: "", - name: "", - symbol: "", - uri: "", - uriHash: "" - }; -} - -export const Metadata = { - encode(message: Metadata, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.description !== "") { - writer.uint32(10).string(message.description); - } - - for (const v of message.denomUnits) { - DenomUnit.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - if (message.base !== "") { - writer.uint32(26).string(message.base); - } - - if (message.display !== "") { - writer.uint32(34).string(message.display); - } - - if (message.name !== "") { - writer.uint32(42).string(message.name); - } - - if (message.symbol !== "") { - writer.uint32(50).string(message.symbol); - } - - if (message.uri !== "") { - writer.uint32(58).string(message.uri); - } - - if (message.uriHash !== "") { - writer.uint32(66).string(message.uriHash); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Metadata { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMetadata(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.description = reader.string(); - break; - - case 2: - message.denomUnits.push(DenomUnit.decode(reader, reader.uint32())); - break; - - case 3: - message.base = reader.string(); - break; - - case 4: - message.display = reader.string(); - break; - - case 5: - message.name = reader.string(); - break; - - case 6: - message.symbol = reader.string(); - break; - - case 7: - message.uri = reader.string(); - break; - - case 8: - message.uriHash = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Metadata { - const message = createBaseMetadata(); - message.description = object.description ?? ""; - message.denomUnits = object.denomUnits?.map(e => DenomUnit.fromPartial(e)) || []; - message.base = object.base ?? ""; - message.display = object.display ?? ""; - message.name = object.name ?? ""; - message.symbol = object.symbol ?? ""; - message.uri = object.uri ?? ""; - message.uriHash = object.uriHash ?? ""; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/bank/v1beta1/genesis.ts b/packages/codegen/src/cosmos/bank/v1beta1/genesis.ts deleted file mode 100644 index 71fe32bb..00000000 --- a/packages/codegen/src/cosmos/bank/v1beta1/genesis.ts +++ /dev/null @@ -1,181 +0,0 @@ -import { Params, ParamsSDKType, Metadata, MetadataSDKType } from "./bank"; -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** GenesisState defines the bank module's genesis state. */ - -export interface GenesisState { - /** params defines all the paramaters of the module. */ - params?: Params; - /** balances is an array containing the balances of all the accounts. */ - - balances: Balance[]; - /** - * 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. - */ - - supply: Coin[]; - /** denom_metadata defines the metadata of the differents coins. */ - - denomMetadata: Metadata[]; -} -/** GenesisState defines the bank module's genesis state. */ - -export interface GenesisStateSDKType { - params?: ParamsSDKType; - balances: BalanceSDKType[]; - supply: CoinSDKType[]; - denom_metadata: MetadataSDKType[]; -} -/** - * Balance defines an account address and balance pair used in the bank module's - * genesis state. - */ - -export interface Balance { - /** address is the address of the balance holder. */ - address: string; - /** coins defines the different coins this balance holds. */ - - coins: Coin[]; -} -/** - * Balance defines an account address and balance pair used in the bank module's - * genesis state. - */ - -export interface BalanceSDKType { - address: string; - coins: CoinSDKType[]; -} - -function createBaseGenesisState(): GenesisState { - return { - params: undefined, - balances: [], - supply: [], - denomMetadata: [] - }; -} - -export const GenesisState = { - encode(message: GenesisState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.params !== undefined) { - Params.encode(message.params, writer.uint32(10).fork()).ldelim(); - } - - for (const v of message.balances) { - Balance.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - for (const v of message.supply) { - Coin.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - for (const v of message.denomMetadata) { - Metadata.encode(v!, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.params = Params.decode(reader, reader.uint32()); - break; - - case 2: - message.balances.push(Balance.decode(reader, reader.uint32())); - break; - - case 3: - message.supply.push(Coin.decode(reader, reader.uint32())); - break; - - case 4: - message.denomMetadata.push(Metadata.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenesisState { - const message = createBaseGenesisState(); - message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined; - message.balances = object.balances?.map(e => Balance.fromPartial(e)) || []; - message.supply = object.supply?.map(e => Coin.fromPartial(e)) || []; - message.denomMetadata = object.denomMetadata?.map(e => Metadata.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseBalance(): Balance { - return { - address: "", - coins: [] - }; -} - -export const Balance = { - encode(message: Balance, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - for (const v of message.coins) { - Coin.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Balance { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBalance(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.coins.push(Coin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Balance { - const message = createBaseBalance(); - message.address = object.address ?? ""; - message.coins = object.coins?.map(e => Coin.fromPartial(e)) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/bank/v1beta1/query.lcd.ts b/packages/codegen/src/cosmos/bank/v1beta1/query.lcd.ts deleted file mode 100644 index 7535655d..00000000 --- a/packages/codegen/src/cosmos/bank/v1beta1/query.lcd.ts +++ /dev/null @@ -1,150 +0,0 @@ -import { setPaginationParams } from "../../../helpers"; -import { LCDClient } from "@osmonauts/lcd"; -import { QueryBalanceRequest, QueryBalanceResponseSDKType, QueryAllBalancesRequest, QueryAllBalancesResponseSDKType, QuerySpendableBalancesRequest, QuerySpendableBalancesResponseSDKType, QueryTotalSupplyRequest, QueryTotalSupplyResponseSDKType, QuerySupplyOfRequest, QuerySupplyOfResponseSDKType, QueryParamsRequest, QueryParamsResponseSDKType, QueryDenomMetadataRequest, QueryDenomMetadataResponseSDKType, QueryDenomsMetadataRequest, QueryDenomsMetadataResponseSDKType, QueryDenomOwnersRequest, QueryDenomOwnersResponseSDKType } from "./query"; -export class LCDQueryClient { - req: LCDClient; - - constructor({ - requestClient - }: { - requestClient: LCDClient; - }) { - this.req = requestClient; - this.balance = this.balance.bind(this); - this.allBalances = this.allBalances.bind(this); - this.spendableBalances = this.spendableBalances.bind(this); - this.totalSupply = this.totalSupply.bind(this); - this.supplyOf = this.supplyOf.bind(this); - this.params = this.params.bind(this); - this.denomMetadata = this.denomMetadata.bind(this); - this.denomsMetadata = this.denomsMetadata.bind(this); - this.denomOwners = this.denomOwners.bind(this); - } - /* Balance queries the balance of a single coin for a single account. */ - - - async balance(params: QueryBalanceRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.denom !== "undefined") { - options.params.denom = params.denom; - } - - const endpoint = `cosmos/bank/v1beta1/balances/${params.address}/by_denom`; - return await this.req.get(endpoint, options); - } - /* AllBalances queries the balance of all coins for a single account. */ - - - async allBalances(params: QueryAllBalancesRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/bank/v1beta1/balances/${params.address}`; - return await this.req.get(endpoint, options); - } - /* SpendableBalances queries the spenable balance of all coins for a single - account. */ - - - async spendableBalances(params: QuerySpendableBalancesRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/bank/v1beta1/spendable_balances/${params.address}`; - return await this.req.get(endpoint, options); - } - /* TotalSupply queries the total supply of all coins. */ - - - async totalSupply(params: QueryTotalSupplyRequest = { - pagination: undefined - }): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/bank/v1beta1/supply`; - return await this.req.get(endpoint, options); - } - /* SupplyOf queries the supply of a single coin. */ - - - async supplyOf(params: QuerySupplyOfRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.denom !== "undefined") { - options.params.denom = params.denom; - } - - const endpoint = `cosmos/bank/v1beta1/supply/by_denom`; - return await this.req.get(endpoint, options); - } - /* Params queries the parameters of x/bank module. */ - - - async params(_params: QueryParamsRequest = {}): Promise { - const endpoint = `cosmos/bank/v1beta1/params`; - return await this.req.get(endpoint); - } - /* DenomsMetadata queries the client metadata of a given coin denomination. */ - - - async denomMetadata(params: QueryDenomMetadataRequest): Promise { - const endpoint = `cosmos/bank/v1beta1/denoms_metadata/${params.denom}`; - return await this.req.get(endpoint); - } - /* DenomsMetadata queries the client metadata for all registered coin - denominations. */ - - - async denomsMetadata(params: QueryDenomsMetadataRequest = { - pagination: undefined - }): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/bank/v1beta1/denoms_metadata`; - return await this.req.get(endpoint, options); - } - /* DenomOwners queries for all account addresses that own a particular token - denomination. */ - - - async denomOwners(params: QueryDenomOwnersRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/bank/v1beta1/denom_owners/${params.denom}`; - return await this.req.get(endpoint, options); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/bank/v1beta1/query.rpc.Query.ts b/packages/codegen/src/cosmos/bank/v1beta1/query.rpc.Query.ts deleted file mode 100644 index a60bbc8c..00000000 --- a/packages/codegen/src/cosmos/bank/v1beta1/query.rpc.Query.ts +++ /dev/null @@ -1,160 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { QueryBalanceRequest, QueryBalanceResponse, QueryAllBalancesRequest, QueryAllBalancesResponse, QuerySpendableBalancesRequest, QuerySpendableBalancesResponse, QueryTotalSupplyRequest, QueryTotalSupplyResponse, QuerySupplyOfRequest, QuerySupplyOfResponse, QueryParamsRequest, QueryParamsResponse, QueryDenomMetadataRequest, QueryDenomMetadataResponse, QueryDenomsMetadataRequest, QueryDenomsMetadataResponse, QueryDenomOwnersRequest, QueryDenomOwnersResponse } from "./query"; -/** Query defines the gRPC querier service. */ - -export interface Query { - /** Balance queries the balance of a single coin for a single account. */ - balance(request: QueryBalanceRequest): Promise; - /** AllBalances queries the balance of all coins for a single account. */ - - allBalances(request: QueryAllBalancesRequest): Promise; - /** - * SpendableBalances queries the spenable balance of all coins for a single - * account. - */ - - spendableBalances(request: QuerySpendableBalancesRequest): Promise; - /** TotalSupply queries the total supply of all coins. */ - - totalSupply(request?: QueryTotalSupplyRequest): Promise; - /** SupplyOf queries the supply of a single coin. */ - - supplyOf(request: QuerySupplyOfRequest): Promise; - /** Params queries the parameters of x/bank module. */ - - params(request?: QueryParamsRequest): Promise; - /** DenomsMetadata queries the client metadata of a given coin denomination. */ - - denomMetadata(request: QueryDenomMetadataRequest): Promise; - /** - * DenomsMetadata queries the client metadata for all registered coin - * denominations. - */ - - denomsMetadata(request?: QueryDenomsMetadataRequest): Promise; - /** - * DenomOwners queries for all account addresses that own a particular token - * denomination. - */ - - denomOwners(request: QueryDenomOwnersRequest): Promise; -} -export class QueryClientImpl implements Query { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.balance = this.balance.bind(this); - this.allBalances = this.allBalances.bind(this); - this.spendableBalances = this.spendableBalances.bind(this); - this.totalSupply = this.totalSupply.bind(this); - this.supplyOf = this.supplyOf.bind(this); - this.params = this.params.bind(this); - this.denomMetadata = this.denomMetadata.bind(this); - this.denomsMetadata = this.denomsMetadata.bind(this); - this.denomOwners = this.denomOwners.bind(this); - } - - balance(request: QueryBalanceRequest): Promise { - const data = QueryBalanceRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "Balance", data); - return promise.then(data => QueryBalanceResponse.decode(new _m0.Reader(data))); - } - - allBalances(request: QueryAllBalancesRequest): Promise { - const data = QueryAllBalancesRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "AllBalances", data); - return promise.then(data => QueryAllBalancesResponse.decode(new _m0.Reader(data))); - } - - spendableBalances(request: QuerySpendableBalancesRequest): Promise { - const data = QuerySpendableBalancesRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "SpendableBalances", data); - return promise.then(data => QuerySpendableBalancesResponse.decode(new _m0.Reader(data))); - } - - totalSupply(request: QueryTotalSupplyRequest = { - pagination: undefined - }): Promise { - const data = QueryTotalSupplyRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "TotalSupply", data); - return promise.then(data => QueryTotalSupplyResponse.decode(new _m0.Reader(data))); - } - - supplyOf(request: QuerySupplyOfRequest): Promise { - const data = QuerySupplyOfRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "SupplyOf", data); - return promise.then(data => QuerySupplyOfResponse.decode(new _m0.Reader(data))); - } - - params(request: QueryParamsRequest = {}): Promise { - const data = QueryParamsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "Params", data); - return promise.then(data => QueryParamsResponse.decode(new _m0.Reader(data))); - } - - denomMetadata(request: QueryDenomMetadataRequest): Promise { - const data = QueryDenomMetadataRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "DenomMetadata", data); - return promise.then(data => QueryDenomMetadataResponse.decode(new _m0.Reader(data))); - } - - denomsMetadata(request: QueryDenomsMetadataRequest = { - pagination: undefined - }): Promise { - const data = QueryDenomsMetadataRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "DenomsMetadata", data); - return promise.then(data => QueryDenomsMetadataResponse.decode(new _m0.Reader(data))); - } - - denomOwners(request: QueryDenomOwnersRequest): Promise { - const data = QueryDenomOwnersRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "DenomOwners", data); - return promise.then(data => QueryDenomOwnersResponse.decode(new _m0.Reader(data))); - } - -} -export const createRpcQueryExtension = (base: QueryClient) => { - const rpc = createProtobufRpcClient(base); - const queryService = new QueryClientImpl(rpc); - return { - balance(request: QueryBalanceRequest): Promise { - return queryService.balance(request); - }, - - allBalances(request: QueryAllBalancesRequest): Promise { - return queryService.allBalances(request); - }, - - spendableBalances(request: QuerySpendableBalancesRequest): Promise { - return queryService.spendableBalances(request); - }, - - totalSupply(request?: QueryTotalSupplyRequest): Promise { - return queryService.totalSupply(request); - }, - - supplyOf(request: QuerySupplyOfRequest): Promise { - return queryService.supplyOf(request); - }, - - params(request?: QueryParamsRequest): Promise { - return queryService.params(request); - }, - - denomMetadata(request: QueryDenomMetadataRequest): Promise { - return queryService.denomMetadata(request); - }, - - denomsMetadata(request?: QueryDenomsMetadataRequest): Promise { - return queryService.denomsMetadata(request); - }, - - denomOwners(request: QueryDenomOwnersRequest): Promise { - return queryService.denomOwners(request); - } - - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/bank/v1beta1/query.ts b/packages/codegen/src/cosmos/bank/v1beta1/query.ts deleted file mode 100644 index 5da00ebd..00000000 --- a/packages/codegen/src/cosmos/bank/v1beta1/query.ts +++ /dev/null @@ -1,1257 +0,0 @@ -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import { Params, ParamsSDKType, Metadata, MetadataSDKType } from "./bank"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** QueryBalanceRequest is the request type for the Query/Balance RPC method. */ - -export interface QueryBalanceRequest { - /** address is the address to query balances for. */ - address: string; - /** denom is the coin denom to query balances for. */ - - denom: string; -} -/** QueryBalanceRequest is the request type for the Query/Balance RPC method. */ - -export interface QueryBalanceRequestSDKType { - address: string; - denom: string; -} -/** QueryBalanceResponse is the response type for the Query/Balance RPC method. */ - -export interface QueryBalanceResponse { - /** balance is the balance of the coin. */ - balance?: Coin; -} -/** QueryBalanceResponse is the response type for the Query/Balance RPC method. */ - -export interface QueryBalanceResponseSDKType { - balance?: CoinSDKType; -} -/** QueryBalanceRequest is the request type for the Query/AllBalances RPC method. */ - -export interface QueryAllBalancesRequest { - /** address is the address to query balances for. */ - address: string; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** QueryBalanceRequest is the request type for the Query/AllBalances RPC method. */ - -export interface QueryAllBalancesRequestSDKType { - address: string; - pagination?: PageRequestSDKType; -} -/** - * QueryAllBalancesResponse is the response type for the Query/AllBalances RPC - * method. - */ - -export interface QueryAllBalancesResponse { - /** balances is the balances of all the coins. */ - balances: Coin[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** - * QueryAllBalancesResponse is the response type for the Query/AllBalances RPC - * method. - */ - -export interface QueryAllBalancesResponseSDKType { - balances: CoinSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * QuerySpendableBalancesRequest defines the gRPC request structure for querying - * an account's spendable balances. - */ - -export interface QuerySpendableBalancesRequest { - /** address is the address to query spendable balances for. */ - address: string; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** - * QuerySpendableBalancesRequest defines the gRPC request structure for querying - * an account's spendable balances. - */ - -export interface QuerySpendableBalancesRequestSDKType { - address: string; - pagination?: PageRequestSDKType; -} -/** - * QuerySpendableBalancesResponse defines the gRPC response structure for querying - * an account's spendable balances. - */ - -export interface QuerySpendableBalancesResponse { - /** balances is the spendable balances of all the coins. */ - balances: Coin[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** - * QuerySpendableBalancesResponse defines the gRPC response structure for querying - * an account's spendable balances. - */ - -export interface QuerySpendableBalancesResponseSDKType { - balances: CoinSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * QueryTotalSupplyRequest is the request type for the Query/TotalSupply RPC - * method. - */ - -export interface QueryTotalSupplyRequest { - /** - * pagination defines an optional pagination for the request. - * - * Since: cosmos-sdk 0.43 - */ - pagination?: PageRequest; -} -/** - * QueryTotalSupplyRequest is the request type for the Query/TotalSupply RPC - * method. - */ - -export interface QueryTotalSupplyRequestSDKType { - pagination?: PageRequestSDKType; -} -/** - * QueryTotalSupplyResponse is the response type for the Query/TotalSupply RPC - * method - */ - -export interface QueryTotalSupplyResponse { - /** supply is the supply of the coins */ - supply: Coin[]; - /** - * pagination defines the pagination in the response. - * - * Since: cosmos-sdk 0.43 - */ - - pagination?: PageResponse; -} -/** - * QueryTotalSupplyResponse is the response type for the Query/TotalSupply RPC - * method - */ - -export interface QueryTotalSupplyResponseSDKType { - supply: CoinSDKType[]; - pagination?: PageResponseSDKType; -} -/** QuerySupplyOfRequest is the request type for the Query/SupplyOf RPC method. */ - -export interface QuerySupplyOfRequest { - /** denom is the coin denom to query balances for. */ - denom: string; -} -/** QuerySupplyOfRequest is the request type for the Query/SupplyOf RPC method. */ - -export interface QuerySupplyOfRequestSDKType { - denom: string; -} -/** QuerySupplyOfResponse is the response type for the Query/SupplyOf RPC method. */ - -export interface QuerySupplyOfResponse { - /** amount is the supply of the coin. */ - amount?: Coin; -} -/** QuerySupplyOfResponse is the response type for the Query/SupplyOf RPC method. */ - -export interface QuerySupplyOfResponseSDKType { - amount?: CoinSDKType; -} -/** QueryParamsRequest defines the request type for querying x/bank parameters. */ - -export interface QueryParamsRequest {} -/** QueryParamsRequest defines the request type for querying x/bank parameters. */ - -export interface QueryParamsRequestSDKType {} -/** QueryParamsResponse defines the response type for querying x/bank parameters. */ - -export interface QueryParamsResponse { - params?: Params; -} -/** QueryParamsResponse defines the response type for querying x/bank parameters. */ - -export interface QueryParamsResponseSDKType { - params?: ParamsSDKType; -} -/** QueryDenomsMetadataRequest is the request type for the Query/DenomsMetadata RPC method. */ - -export interface QueryDenomsMetadataRequest { - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** QueryDenomsMetadataRequest is the request type for the Query/DenomsMetadata RPC method. */ - -export interface QueryDenomsMetadataRequestSDKType { - pagination?: PageRequestSDKType; -} -/** - * QueryDenomsMetadataResponse is the response type for the Query/DenomsMetadata RPC - * method. - */ - -export interface QueryDenomsMetadataResponse { - /** metadata provides the client information for all the registered tokens. */ - metadatas: Metadata[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** - * QueryDenomsMetadataResponse is the response type for the Query/DenomsMetadata RPC - * method. - */ - -export interface QueryDenomsMetadataResponseSDKType { - metadatas: MetadataSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryDenomMetadataRequest is the request type for the Query/DenomMetadata RPC method. */ - -export interface QueryDenomMetadataRequest { - /** denom is the coin denom to query the metadata for. */ - denom: string; -} -/** QueryDenomMetadataRequest is the request type for the Query/DenomMetadata RPC method. */ - -export interface QueryDenomMetadataRequestSDKType { - denom: string; -} -/** - * QueryDenomMetadataResponse is the response type for the Query/DenomMetadata RPC - * method. - */ - -export interface QueryDenomMetadataResponse { - /** metadata describes and provides all the client information for the requested token. */ - metadata?: Metadata; -} -/** - * QueryDenomMetadataResponse is the response type for the Query/DenomMetadata RPC - * method. - */ - -export interface QueryDenomMetadataResponseSDKType { - metadata?: MetadataSDKType; -} -/** - * QueryDenomOwnersRequest defines the request type for the DenomOwners RPC query, - * which queries for a paginated set of all account holders of a particular - * denomination. - */ - -export interface QueryDenomOwnersRequest { - /** denom defines the coin denomination to query all account holders for. */ - denom: string; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** - * QueryDenomOwnersRequest defines the request type for the DenomOwners RPC query, - * which queries for a paginated set of all account holders of a particular - * denomination. - */ - -export interface QueryDenomOwnersRequestSDKType { - denom: string; - pagination?: PageRequestSDKType; -} -/** - * 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. - */ - -export interface DenomOwner { - /** address defines the address that owns a particular denomination. */ - address: string; - /** balance is the balance of the denominated coin for an account. */ - - balance?: Coin; -} -/** - * 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. - */ - -export interface DenomOwnerSDKType { - address: string; - balance?: CoinSDKType; -} -/** QueryDenomOwnersResponse defines the RPC response of a DenomOwners RPC query. */ - -export interface QueryDenomOwnersResponse { - denomOwners: DenomOwner[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** QueryDenomOwnersResponse defines the RPC response of a DenomOwners RPC query. */ - -export interface QueryDenomOwnersResponseSDKType { - denom_owners: DenomOwnerSDKType[]; - pagination?: PageResponseSDKType; -} - -function createBaseQueryBalanceRequest(): QueryBalanceRequest { - return { - address: "", - denom: "" - }; -} - -export const QueryBalanceRequest = { - encode(message: QueryBalanceRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - if (message.denom !== "") { - writer.uint32(18).string(message.denom); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryBalanceRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryBalanceRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.denom = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryBalanceRequest { - const message = createBaseQueryBalanceRequest(); - message.address = object.address ?? ""; - message.denom = object.denom ?? ""; - return message; - } - -}; - -function createBaseQueryBalanceResponse(): QueryBalanceResponse { - return { - balance: undefined - }; -} - -export const QueryBalanceResponse = { - encode(message: QueryBalanceResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.balance !== undefined) { - Coin.encode(message.balance, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryBalanceResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryBalanceResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.balance = Coin.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryBalanceResponse { - const message = createBaseQueryBalanceResponse(); - message.balance = object.balance !== undefined && object.balance !== null ? Coin.fromPartial(object.balance) : undefined; - return message; - } - -}; - -function createBaseQueryAllBalancesRequest(): QueryAllBalancesRequest { - return { - address: "", - pagination: undefined - }; -} - -export const QueryAllBalancesRequest = { - encode(message: QueryAllBalancesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllBalancesRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllBalancesRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryAllBalancesRequest { - const message = createBaseQueryAllBalancesRequest(); - message.address = object.address ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryAllBalancesResponse(): QueryAllBalancesResponse { - return { - balances: [], - pagination: undefined - }; -} - -export const QueryAllBalancesResponse = { - encode(message: QueryAllBalancesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.balances) { - Coin.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllBalancesResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllBalancesResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.balances.push(Coin.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryAllBalancesResponse { - const message = createBaseQueryAllBalancesResponse(); - message.balances = object.balances?.map(e => Coin.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQuerySpendableBalancesRequest(): QuerySpendableBalancesRequest { - return { - address: "", - pagination: undefined - }; -} - -export const QuerySpendableBalancesRequest = { - encode(message: QuerySpendableBalancesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySpendableBalancesRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQuerySpendableBalancesRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QuerySpendableBalancesRequest { - const message = createBaseQuerySpendableBalancesRequest(); - message.address = object.address ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQuerySpendableBalancesResponse(): QuerySpendableBalancesResponse { - return { - balances: [], - pagination: undefined - }; -} - -export const QuerySpendableBalancesResponse = { - encode(message: QuerySpendableBalancesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.balances) { - Coin.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySpendableBalancesResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQuerySpendableBalancesResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.balances.push(Coin.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QuerySpendableBalancesResponse { - const message = createBaseQuerySpendableBalancesResponse(); - message.balances = object.balances?.map(e => Coin.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryTotalSupplyRequest(): QueryTotalSupplyRequest { - return { - pagination: undefined - }; -} - -export const QueryTotalSupplyRequest = { - encode(message: QueryTotalSupplyRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryTotalSupplyRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryTotalSupplyRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryTotalSupplyRequest { - const message = createBaseQueryTotalSupplyRequest(); - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryTotalSupplyResponse(): QueryTotalSupplyResponse { - return { - supply: [], - pagination: undefined - }; -} - -export const QueryTotalSupplyResponse = { - encode(message: QueryTotalSupplyResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.supply) { - Coin.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryTotalSupplyResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryTotalSupplyResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.supply.push(Coin.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryTotalSupplyResponse { - const message = createBaseQueryTotalSupplyResponse(); - message.supply = object.supply?.map(e => Coin.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQuerySupplyOfRequest(): QuerySupplyOfRequest { - return { - denom: "" - }; -} - -export const QuerySupplyOfRequest = { - encode(message: QuerySupplyOfRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.denom !== "") { - writer.uint32(10).string(message.denom); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySupplyOfRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQuerySupplyOfRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.denom = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QuerySupplyOfRequest { - const message = createBaseQuerySupplyOfRequest(); - message.denom = object.denom ?? ""; - return message; - } - -}; - -function createBaseQuerySupplyOfResponse(): QuerySupplyOfResponse { - return { - amount: undefined - }; -} - -export const QuerySupplyOfResponse = { - encode(message: QuerySupplyOfResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.amount !== undefined) { - Coin.encode(message.amount, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySupplyOfResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQuerySupplyOfResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.amount = Coin.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QuerySupplyOfResponse { - const message = createBaseQuerySupplyOfResponse(); - message.amount = object.amount !== undefined && object.amount !== null ? Coin.fromPartial(object.amount) : undefined; - return message; - } - -}; - -function createBaseQueryParamsRequest(): QueryParamsRequest { - return {}; -} - -export const QueryParamsRequest = { - encode(_: QueryParamsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): QueryParamsRequest { - const message = createBaseQueryParamsRequest(); - return message; - } - -}; - -function createBaseQueryParamsResponse(): QueryParamsResponse { - return { - params: undefined - }; -} - -export const QueryParamsResponse = { - encode(message: QueryParamsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.params !== undefined) { - Params.encode(message.params, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.params = Params.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryParamsResponse { - const message = createBaseQueryParamsResponse(); - message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined; - return message; - } - -}; - -function createBaseQueryDenomsMetadataRequest(): QueryDenomsMetadataRequest { - return { - pagination: undefined - }; -} - -export const QueryDenomsMetadataRequest = { - encode(message: QueryDenomsMetadataRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDenomsMetadataRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDenomsMetadataRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDenomsMetadataRequest { - const message = createBaseQueryDenomsMetadataRequest(); - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryDenomsMetadataResponse(): QueryDenomsMetadataResponse { - return { - metadatas: [], - pagination: undefined - }; -} - -export const QueryDenomsMetadataResponse = { - encode(message: QueryDenomsMetadataResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.metadatas) { - Metadata.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDenomsMetadataResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDenomsMetadataResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.metadatas.push(Metadata.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDenomsMetadataResponse { - const message = createBaseQueryDenomsMetadataResponse(); - message.metadatas = object.metadatas?.map(e => Metadata.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryDenomMetadataRequest(): QueryDenomMetadataRequest { - return { - denom: "" - }; -} - -export const QueryDenomMetadataRequest = { - encode(message: QueryDenomMetadataRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.denom !== "") { - writer.uint32(10).string(message.denom); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDenomMetadataRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDenomMetadataRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.denom = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDenomMetadataRequest { - const message = createBaseQueryDenomMetadataRequest(); - message.denom = object.denom ?? ""; - return message; - } - -}; - -function createBaseQueryDenomMetadataResponse(): QueryDenomMetadataResponse { - return { - metadata: undefined - }; -} - -export const QueryDenomMetadataResponse = { - encode(message: QueryDenomMetadataResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.metadata !== undefined) { - Metadata.encode(message.metadata, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDenomMetadataResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDenomMetadataResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.metadata = Metadata.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDenomMetadataResponse { - const message = createBaseQueryDenomMetadataResponse(); - message.metadata = object.metadata !== undefined && object.metadata !== null ? Metadata.fromPartial(object.metadata) : undefined; - return message; - } - -}; - -function createBaseQueryDenomOwnersRequest(): QueryDenomOwnersRequest { - return { - denom: "", - pagination: undefined - }; -} - -export const QueryDenomOwnersRequest = { - encode(message: QueryDenomOwnersRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.denom !== "") { - writer.uint32(10).string(message.denom); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDenomOwnersRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDenomOwnersRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.denom = reader.string(); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDenomOwnersRequest { - const message = createBaseQueryDenomOwnersRequest(); - message.denom = object.denom ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseDenomOwner(): DenomOwner { - return { - address: "", - balance: undefined - }; -} - -export const DenomOwner = { - encode(message: DenomOwner, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - if (message.balance !== undefined) { - Coin.encode(message.balance, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): DenomOwner { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDenomOwner(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.balance = Coin.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): DenomOwner { - const message = createBaseDenomOwner(); - message.address = object.address ?? ""; - message.balance = object.balance !== undefined && object.balance !== null ? Coin.fromPartial(object.balance) : undefined; - return message; - } - -}; - -function createBaseQueryDenomOwnersResponse(): QueryDenomOwnersResponse { - return { - denomOwners: [], - pagination: undefined - }; -} - -export const QueryDenomOwnersResponse = { - encode(message: QueryDenomOwnersResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.denomOwners) { - DenomOwner.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDenomOwnersResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDenomOwnersResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.denomOwners.push(DenomOwner.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDenomOwnersResponse { - const message = createBaseQueryDenomOwnersResponse(); - message.denomOwners = object.denomOwners?.map(e => DenomOwner.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/bank/v1beta1/tx.rpc.msg.ts b/packages/codegen/src/cosmos/bank/v1beta1/tx.rpc.msg.ts deleted file mode 100644 index 4112bb9d..00000000 --- a/packages/codegen/src/cosmos/bank/v1beta1/tx.rpc.msg.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { MsgSend, MsgSendResponse, MsgMultiSend, MsgMultiSendResponse } from "./tx"; -/** Msg defines the bank Msg service. */ - -export interface Msg { - /** Send defines a method for sending coins from one account to another account. */ - send(request: MsgSend): Promise; - /** MultiSend defines a method for sending coins from some accounts to other accounts. */ - - multiSend(request: MsgMultiSend): Promise; -} -export class MsgClientImpl implements Msg { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.send = this.send.bind(this); - this.multiSend = this.multiSend.bind(this); - } - - send(request: MsgSend): Promise { - const data = MsgSend.encode(request).finish(); - const promise = this.rpc.request("cosmos.bank.v1beta1.Msg", "Send", data); - return promise.then(data => MsgSendResponse.decode(new _m0.Reader(data))); - } - - multiSend(request: MsgMultiSend): Promise { - const data = MsgMultiSend.encode(request).finish(); - const promise = this.rpc.request("cosmos.bank.v1beta1.Msg", "MultiSend", data); - return promise.then(data => MsgMultiSendResponse.decode(new _m0.Reader(data))); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/bank/v1beta1/tx.ts b/packages/codegen/src/cosmos/bank/v1beta1/tx.ts deleted file mode 100644 index 25716b1b..00000000 --- a/packages/codegen/src/cosmos/bank/v1beta1/tx.ts +++ /dev/null @@ -1,230 +0,0 @@ -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import { Input, InputSDKType, Output, OutputSDKType } from "./bank"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** MsgSend represents a message to send coins from one account to another. */ - -export interface MsgSend { - fromAddress: string; - toAddress: string; - amount: Coin[]; -} -/** MsgSend represents a message to send coins from one account to another. */ - -export interface MsgSendSDKType { - from_address: string; - to_address: string; - amount: CoinSDKType[]; -} -/** MsgSendResponse defines the Msg/Send response type. */ - -export interface MsgSendResponse {} -/** MsgSendResponse defines the Msg/Send response type. */ - -export interface MsgSendResponseSDKType {} -/** MsgMultiSend represents an arbitrary multi-in, multi-out send message. */ - -export interface MsgMultiSend { - inputs: Input[]; - outputs: Output[]; -} -/** MsgMultiSend represents an arbitrary multi-in, multi-out send message. */ - -export interface MsgMultiSendSDKType { - inputs: InputSDKType[]; - outputs: OutputSDKType[]; -} -/** MsgMultiSendResponse defines the Msg/MultiSend response type. */ - -export interface MsgMultiSendResponse {} -/** MsgMultiSendResponse defines the Msg/MultiSend response type. */ - -export interface MsgMultiSendResponseSDKType {} - -function createBaseMsgSend(): MsgSend { - return { - fromAddress: "", - toAddress: "", - amount: [] - }; -} - -export const MsgSend = { - encode(message: MsgSend, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.fromAddress !== "") { - writer.uint32(10).string(message.fromAddress); - } - - if (message.toAddress !== "") { - writer.uint32(18).string(message.toAddress); - } - - for (const v of message.amount) { - Coin.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSend { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgSend(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.fromAddress = reader.string(); - break; - - case 2: - message.toAddress = reader.string(); - break; - - case 3: - message.amount.push(Coin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgSend { - const message = createBaseMsgSend(); - message.fromAddress = object.fromAddress ?? ""; - message.toAddress = object.toAddress ?? ""; - message.amount = object.amount?.map(e => Coin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseMsgSendResponse(): MsgSendResponse { - return {}; -} - -export const MsgSendResponse = { - encode(_: MsgSendResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSendResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgSendResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgSendResponse { - const message = createBaseMsgSendResponse(); - return message; - } - -}; - -function createBaseMsgMultiSend(): MsgMultiSend { - return { - inputs: [], - outputs: [] - }; -} - -export const MsgMultiSend = { - encode(message: MsgMultiSend, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.inputs) { - Input.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - for (const v of message.outputs) { - Output.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgMultiSend { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgMultiSend(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.inputs.push(Input.decode(reader, reader.uint32())); - break; - - case 2: - message.outputs.push(Output.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgMultiSend { - const message = createBaseMsgMultiSend(); - message.inputs = object.inputs?.map(e => Input.fromPartial(e)) || []; - message.outputs = object.outputs?.map(e => Output.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseMsgMultiSendResponse(): MsgMultiSendResponse { - return {}; -} - -export const MsgMultiSendResponse = { - encode(_: MsgMultiSendResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgMultiSendResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgMultiSendResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgMultiSendResponse { - const message = createBaseMsgMultiSendResponse(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/base/abci/v1beta1/abci.ts b/packages/codegen/src/cosmos/base/abci/v1beta1/abci.ts deleted file mode 100644 index cdf74114..00000000 --- a/packages/codegen/src/cosmos/base/abci/v1beta1/abci.ts +++ /dev/null @@ -1,1020 +0,0 @@ -import { Any, AnySDKType } from "../../../../google/protobuf/any"; -import { Event, EventSDKType } from "../../../../tendermint/abci/types"; -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * TxResponse defines a structure containing relevant tx data and metadata. The - * tags are stringified and the log is JSON decoded. - */ - -export interface TxResponse { - /** The block height */ - height: Long; - /** The transaction hash. */ - - txhash: string; - /** Namespace for the Code */ - - codespace: string; - /** Response code. */ - - code: number; - /** Result bytes, if any. */ - - data: string; - /** - * The output of the application's logger (raw string). May be - * non-deterministic. - */ - - rawLog: string; - /** The output of the application's logger (typed). May be non-deterministic. */ - - logs: ABCIMessageLog[]; - /** Additional information. May be non-deterministic. */ - - info: string; - /** Amount of gas requested for transaction. */ - - gasWanted: Long; - /** Amount of gas consumed by transaction. */ - - gasUsed: Long; - /** The request transaction bytes. */ - - tx?: Any; - /** - * 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. - */ - - timestamp: string; - /** - * 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 handler. 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 - */ - - events: Event[]; -} -/** - * TxResponse defines a structure containing relevant tx data and metadata. The - * tags are stringified and the log is JSON decoded. - */ - -export interface TxResponseSDKType { - height: Long; - txhash: string; - codespace: string; - code: number; - data: string; - raw_log: string; - logs: ABCIMessageLogSDKType[]; - info: string; - gas_wanted: Long; - gas_used: Long; - tx?: AnySDKType; - timestamp: string; - events: EventSDKType[]; -} -/** ABCIMessageLog defines a structure containing an indexed tx ABCI message log. */ - -export interface ABCIMessageLog { - msgIndex: number; - log: string; - /** - * Events contains a slice of Event objects that were emitted during some - * execution. - */ - - events: StringEvent[]; -} -/** ABCIMessageLog defines a structure containing an indexed tx ABCI message log. */ - -export interface ABCIMessageLogSDKType { - msg_index: number; - log: string; - events: StringEventSDKType[]; -} -/** - * StringEvent defines en Event object wrapper where all the attributes - * contain key/value pairs that are strings instead of raw bytes. - */ - -export interface StringEvent { - type: string; - attributes: Attribute[]; -} -/** - * StringEvent defines en Event object wrapper where all the attributes - * contain key/value pairs that are strings instead of raw bytes. - */ - -export interface StringEventSDKType { - type: string; - attributes: AttributeSDKType[]; -} -/** - * Attribute defines an attribute wrapper where the key and value are - * strings instead of raw bytes. - */ - -export interface Attribute { - key: string; - value: string; -} -/** - * Attribute defines an attribute wrapper where the key and value are - * strings instead of raw bytes. - */ - -export interface AttributeSDKType { - key: string; - value: string; -} -/** GasInfo defines tx execution gas context. */ - -export interface GasInfo { - /** GasWanted is the maximum units of work we allow this tx to perform. */ - gasWanted: Long; - /** GasUsed is the amount of gas actually consumed. */ - - gasUsed: Long; -} -/** GasInfo defines tx execution gas context. */ - -export interface GasInfoSDKType { - gas_wanted: Long; - gas_used: Long; -} -/** Result is the union of ResponseFormat and ResponseCheckTx. */ - -export interface 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. - */ - - /** @deprecated */ - data: Uint8Array; - /** Log contains the log information from message or handler execution. */ - - log: string; - /** - * Events contains a slice of Event objects that were emitted during message - * or handler execution. - */ - - events: Event[]; - /** - * msg_responses contains the Msg handler responses type packed in Anys. - * - * Since: cosmos-sdk 0.46 - */ - - msgResponses: Any[]; -} -/** Result is the union of ResponseFormat and ResponseCheckTx. */ - -export interface ResultSDKType { - /** @deprecated */ - data: Uint8Array; - log: string; - events: EventSDKType[]; - msg_responses: AnySDKType[]; -} -/** - * SimulationResponse defines the response generated when a transaction is - * successfully simulated. - */ - -export interface SimulationResponse { - gasInfo?: GasInfo; - result?: Result; -} -/** - * SimulationResponse defines the response generated when a transaction is - * successfully simulated. - */ - -export interface SimulationResponseSDKType { - gas_info?: GasInfoSDKType; - result?: ResultSDKType; -} -/** - * MsgData defines the data returned in a Result object during message - * execution. - */ - -/** @deprecated */ - -export interface MsgData { - msgType: string; - data: Uint8Array; -} -/** - * MsgData defines the data returned in a Result object during message - * execution. - */ - -/** @deprecated */ - -export interface MsgDataSDKType { - msg_type: string; - data: Uint8Array; -} -/** - * TxMsgData defines a list of MsgData. A transaction will have a MsgData object - * for each message. - */ - -export interface TxMsgData { - /** data field is deprecated and not populated. */ - - /** @deprecated */ - data: MsgData[]; - /** - * msg_responses contains the Msg handler responses packed into Anys. - * - * Since: cosmos-sdk 0.46 - */ - - msgResponses: Any[]; -} -/** - * TxMsgData defines a list of MsgData. A transaction will have a MsgData object - * for each message. - */ - -export interface TxMsgDataSDKType { - /** @deprecated */ - data: MsgDataSDKType[]; - msg_responses: AnySDKType[]; -} -/** SearchTxsResult defines a structure for querying txs pageable */ - -export interface SearchTxsResult { - /** Count of all txs */ - totalCount: Long; - /** Count of txs in current page */ - - count: Long; - /** Index of current page, start from 1 */ - - pageNumber: Long; - /** Count of total pages */ - - pageTotal: Long; - /** Max count txs per page */ - - limit: Long; - /** List of txs in current page */ - - txs: TxResponse[]; -} -/** SearchTxsResult defines a structure for querying txs pageable */ - -export interface SearchTxsResultSDKType { - total_count: Long; - count: Long; - page_number: Long; - page_total: Long; - limit: Long; - txs: TxResponseSDKType[]; -} - -function createBaseTxResponse(): TxResponse { - return { - height: Long.ZERO, - txhash: "", - codespace: "", - code: 0, - data: "", - rawLog: "", - logs: [], - info: "", - gasWanted: Long.ZERO, - gasUsed: Long.ZERO, - tx: undefined, - timestamp: "", - events: [] - }; -} - -export const TxResponse = { - encode(message: TxResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.height.isZero()) { - writer.uint32(8).int64(message.height); - } - - if (message.txhash !== "") { - writer.uint32(18).string(message.txhash); - } - - if (message.codespace !== "") { - writer.uint32(26).string(message.codespace); - } - - if (message.code !== 0) { - writer.uint32(32).uint32(message.code); - } - - if (message.data !== "") { - writer.uint32(42).string(message.data); - } - - if (message.rawLog !== "") { - writer.uint32(50).string(message.rawLog); - } - - for (const v of message.logs) { - ABCIMessageLog.encode(v!, writer.uint32(58).fork()).ldelim(); - } - - if (message.info !== "") { - writer.uint32(66).string(message.info); - } - - if (!message.gasWanted.isZero()) { - writer.uint32(72).int64(message.gasWanted); - } - - if (!message.gasUsed.isZero()) { - writer.uint32(80).int64(message.gasUsed); - } - - if (message.tx !== undefined) { - Any.encode(message.tx, writer.uint32(90).fork()).ldelim(); - } - - if (message.timestamp !== "") { - writer.uint32(98).string(message.timestamp); - } - - for (const v of message.events) { - Event.encode(v!, writer.uint32(106).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): TxResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTxResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.height = (reader.int64() as Long); - break; - - case 2: - message.txhash = reader.string(); - break; - - case 3: - message.codespace = reader.string(); - break; - - case 4: - message.code = reader.uint32(); - break; - - case 5: - message.data = reader.string(); - break; - - case 6: - message.rawLog = reader.string(); - break; - - case 7: - message.logs.push(ABCIMessageLog.decode(reader, reader.uint32())); - break; - - case 8: - message.info = reader.string(); - break; - - case 9: - message.gasWanted = (reader.int64() as Long); - break; - - case 10: - message.gasUsed = (reader.int64() as Long); - break; - - case 11: - message.tx = Any.decode(reader, reader.uint32()); - break; - - case 12: - message.timestamp = reader.string(); - break; - - case 13: - message.events.push(Event.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): TxResponse { - const message = createBaseTxResponse(); - message.height = object.height !== undefined && object.height !== null ? Long.fromValue(object.height) : Long.ZERO; - message.txhash = object.txhash ?? ""; - message.codespace = object.codespace ?? ""; - message.code = object.code ?? 0; - message.data = object.data ?? ""; - message.rawLog = object.rawLog ?? ""; - message.logs = object.logs?.map(e => ABCIMessageLog.fromPartial(e)) || []; - message.info = object.info ?? ""; - message.gasWanted = object.gasWanted !== undefined && object.gasWanted !== null ? Long.fromValue(object.gasWanted) : Long.ZERO; - message.gasUsed = object.gasUsed !== undefined && object.gasUsed !== null ? Long.fromValue(object.gasUsed) : Long.ZERO; - message.tx = object.tx !== undefined && object.tx !== null ? Any.fromPartial(object.tx) : undefined; - message.timestamp = object.timestamp ?? ""; - message.events = object.events?.map(e => Event.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseABCIMessageLog(): ABCIMessageLog { - return { - msgIndex: 0, - log: "", - events: [] - }; -} - -export const ABCIMessageLog = { - encode(message: ABCIMessageLog, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.msgIndex !== 0) { - writer.uint32(8).uint32(message.msgIndex); - } - - if (message.log !== "") { - writer.uint32(18).string(message.log); - } - - for (const v of message.events) { - StringEvent.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ABCIMessageLog { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseABCIMessageLog(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.msgIndex = reader.uint32(); - break; - - case 2: - message.log = reader.string(); - break; - - case 3: - message.events.push(StringEvent.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ABCIMessageLog { - const message = createBaseABCIMessageLog(); - message.msgIndex = object.msgIndex ?? 0; - message.log = object.log ?? ""; - message.events = object.events?.map(e => StringEvent.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseStringEvent(): StringEvent { - return { - type: "", - attributes: [] - }; -} - -export const StringEvent = { - encode(message: StringEvent, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.type !== "") { - writer.uint32(10).string(message.type); - } - - for (const v of message.attributes) { - Attribute.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): StringEvent { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseStringEvent(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.type = reader.string(); - break; - - case 2: - message.attributes.push(Attribute.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): StringEvent { - const message = createBaseStringEvent(); - message.type = object.type ?? ""; - message.attributes = object.attributes?.map(e => Attribute.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseAttribute(): Attribute { - return { - key: "", - value: "" - }; -} - -export const Attribute = { - encode(message: Attribute, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key !== "") { - writer.uint32(10).string(message.key); - } - - if (message.value !== "") { - writer.uint32(18).string(message.value); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Attribute { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAttribute(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.key = reader.string(); - break; - - case 2: - message.value = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Attribute { - const message = createBaseAttribute(); - message.key = object.key ?? ""; - message.value = object.value ?? ""; - return message; - } - -}; - -function createBaseGasInfo(): GasInfo { - return { - gasWanted: Long.UZERO, - gasUsed: Long.UZERO - }; -} - -export const GasInfo = { - encode(message: GasInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.gasWanted.isZero()) { - writer.uint32(8).uint64(message.gasWanted); - } - - if (!message.gasUsed.isZero()) { - writer.uint32(16).uint64(message.gasUsed); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GasInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGasInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.gasWanted = (reader.uint64() as Long); - break; - - case 2: - message.gasUsed = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GasInfo { - const message = createBaseGasInfo(); - message.gasWanted = object.gasWanted !== undefined && object.gasWanted !== null ? Long.fromValue(object.gasWanted) : Long.UZERO; - message.gasUsed = object.gasUsed !== undefined && object.gasUsed !== null ? Long.fromValue(object.gasUsed) : Long.UZERO; - return message; - } - -}; - -function createBaseResult(): Result { - return { - data: new Uint8Array(), - log: "", - events: [], - msgResponses: [] - }; -} - -export const Result = { - encode(message: Result, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.data.length !== 0) { - writer.uint32(10).bytes(message.data); - } - - if (message.log !== "") { - writer.uint32(18).string(message.log); - } - - for (const v of message.events) { - Event.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - for (const v of message.msgResponses) { - Any.encode(v!, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Result { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseResult(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.data = reader.bytes(); - break; - - case 2: - message.log = reader.string(); - break; - - case 3: - message.events.push(Event.decode(reader, reader.uint32())); - break; - - case 4: - message.msgResponses.push(Any.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Result { - const message = createBaseResult(); - message.data = object.data ?? new Uint8Array(); - message.log = object.log ?? ""; - message.events = object.events?.map(e => Event.fromPartial(e)) || []; - message.msgResponses = object.msgResponses?.map(e => Any.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseSimulationResponse(): SimulationResponse { - return { - gasInfo: undefined, - result: undefined - }; -} - -export const SimulationResponse = { - encode(message: SimulationResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.gasInfo !== undefined) { - GasInfo.encode(message.gasInfo, writer.uint32(10).fork()).ldelim(); - } - - if (message.result !== undefined) { - Result.encode(message.result, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SimulationResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSimulationResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.gasInfo = GasInfo.decode(reader, reader.uint32()); - break; - - case 2: - message.result = Result.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SimulationResponse { - const message = createBaseSimulationResponse(); - message.gasInfo = object.gasInfo !== undefined && object.gasInfo !== null ? GasInfo.fromPartial(object.gasInfo) : undefined; - message.result = object.result !== undefined && object.result !== null ? Result.fromPartial(object.result) : undefined; - return message; - } - -}; - -function createBaseMsgData(): MsgData { - return { - msgType: "", - data: new Uint8Array() - }; -} - -export const MsgData = { - encode(message: MsgData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.msgType !== "") { - writer.uint32(10).string(message.msgType); - } - - if (message.data.length !== 0) { - writer.uint32(18).bytes(message.data); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.msgType = reader.string(); - break; - - case 2: - message.data = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgData { - const message = createBaseMsgData(); - message.msgType = object.msgType ?? ""; - message.data = object.data ?? new Uint8Array(); - return message; - } - -}; - -function createBaseTxMsgData(): TxMsgData { - return { - data: [], - msgResponses: [] - }; -} - -export const TxMsgData = { - encode(message: TxMsgData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.data) { - MsgData.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - for (const v of message.msgResponses) { - Any.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): TxMsgData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTxMsgData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.data.push(MsgData.decode(reader, reader.uint32())); - break; - - case 2: - message.msgResponses.push(Any.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): TxMsgData { - const message = createBaseTxMsgData(); - message.data = object.data?.map(e => MsgData.fromPartial(e)) || []; - message.msgResponses = object.msgResponses?.map(e => Any.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseSearchTxsResult(): SearchTxsResult { - return { - totalCount: Long.UZERO, - count: Long.UZERO, - pageNumber: Long.UZERO, - pageTotal: Long.UZERO, - limit: Long.UZERO, - txs: [] - }; -} - -export const SearchTxsResult = { - encode(message: SearchTxsResult, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.totalCount.isZero()) { - writer.uint32(8).uint64(message.totalCount); - } - - if (!message.count.isZero()) { - writer.uint32(16).uint64(message.count); - } - - if (!message.pageNumber.isZero()) { - writer.uint32(24).uint64(message.pageNumber); - } - - if (!message.pageTotal.isZero()) { - writer.uint32(32).uint64(message.pageTotal); - } - - if (!message.limit.isZero()) { - writer.uint32(40).uint64(message.limit); - } - - for (const v of message.txs) { - TxResponse.encode(v!, writer.uint32(50).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SearchTxsResult { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSearchTxsResult(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.totalCount = (reader.uint64() as Long); - break; - - case 2: - message.count = (reader.uint64() as Long); - break; - - case 3: - message.pageNumber = (reader.uint64() as Long); - break; - - case 4: - message.pageTotal = (reader.uint64() as Long); - break; - - case 5: - message.limit = (reader.uint64() as Long); - break; - - case 6: - message.txs.push(TxResponse.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SearchTxsResult { - const message = createBaseSearchTxsResult(); - message.totalCount = object.totalCount !== undefined && object.totalCount !== null ? Long.fromValue(object.totalCount) : Long.UZERO; - message.count = object.count !== undefined && object.count !== null ? Long.fromValue(object.count) : Long.UZERO; - message.pageNumber = object.pageNumber !== undefined && object.pageNumber !== null ? Long.fromValue(object.pageNumber) : Long.UZERO; - message.pageTotal = object.pageTotal !== undefined && object.pageTotal !== null ? Long.fromValue(object.pageTotal) : Long.UZERO; - message.limit = object.limit !== undefined && object.limit !== null ? Long.fromValue(object.limit) : Long.UZERO; - message.txs = object.txs?.map(e => TxResponse.fromPartial(e)) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/base/kv/v1beta1/kv.ts b/packages/codegen/src/cosmos/base/kv/v1beta1/kv.ts deleted file mode 100644 index 8ce74b6f..00000000 --- a/packages/codegen/src/cosmos/base/kv/v1beta1/kv.ts +++ /dev/null @@ -1,124 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** Pairs defines a repeated slice of Pair objects. */ - -export interface Pairs { - pairs: Pair[]; -} -/** Pairs defines a repeated slice of Pair objects. */ - -export interface PairsSDKType { - pairs: PairSDKType[]; -} -/** Pair defines a key/value bytes tuple. */ - -export interface Pair { - key: Uint8Array; - value: Uint8Array; -} -/** Pair defines a key/value bytes tuple. */ - -export interface PairSDKType { - key: Uint8Array; - value: Uint8Array; -} - -function createBasePairs(): Pairs { - return { - pairs: [] - }; -} - -export const Pairs = { - encode(message: Pairs, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.pairs) { - Pair.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Pairs { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePairs(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.pairs.push(Pair.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Pairs { - const message = createBasePairs(); - message.pairs = object.pairs?.map(e => Pair.fromPartial(e)) || []; - return message; - } - -}; - -function createBasePair(): Pair { - return { - key: new Uint8Array(), - value: new Uint8Array() - }; -} - -export const Pair = { - encode(message: Pair, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); - } - - if (message.value.length !== 0) { - writer.uint32(18).bytes(message.value); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Pair { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePair(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.key = reader.bytes(); - break; - - case 2: - message.value = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Pair { - const message = createBasePair(); - message.key = object.key ?? new Uint8Array(); - message.value = object.value ?? new Uint8Array(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/base/query/v1beta1/pagination.ts b/packages/codegen/src/cosmos/base/query/v1beta1/pagination.ts deleted file mode 100644 index 193d96a4..00000000 --- a/packages/codegen/src/cosmos/base/query/v1beta1/pagination.ts +++ /dev/null @@ -1,243 +0,0 @@ -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * PageRequest is to be embedded in gRPC request messages for efficient - * pagination. Ex: - * - * message SomeRequest { - * Foo some_parameter = 1; - * PageRequest pagination = 2; - * } - */ - -export interface 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. - */ - key: Uint8Array; - /** - * 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. - */ - - offset: Long; - /** - * 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. - */ - - limit: Long; - /** - * 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. - */ - - countTotal: boolean; - /** - * reverse is set to true if results are to be returned in the descending order. - * - * Since: cosmos-sdk 0.43 - */ - - reverse: boolean; -} -/** - * PageRequest is to be embedded in gRPC request messages for efficient - * pagination. Ex: - * - * message SomeRequest { - * Foo some_parameter = 1; - * PageRequest pagination = 2; - * } - */ - -export interface PageRequestSDKType { - key: Uint8Array; - offset: Long; - limit: Long; - count_total: boolean; - reverse: boolean; -} -/** - * 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; - * } - */ - -export interface 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. - */ - nextKey: Uint8Array; - /** - * total is total number of results available if PageRequest.count_total - * was set, its value is undefined otherwise - */ - - total: Long; -} -/** - * 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; - * } - */ - -export interface PageResponseSDKType { - next_key: Uint8Array; - total: Long; -} - -function createBasePageRequest(): PageRequest { - return { - key: new Uint8Array(), - offset: Long.UZERO, - limit: Long.UZERO, - countTotal: false, - reverse: false - }; -} - -export const PageRequest = { - encode(message: PageRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); - } - - if (!message.offset.isZero()) { - writer.uint32(16).uint64(message.offset); - } - - if (!message.limit.isZero()) { - writer.uint32(24).uint64(message.limit); - } - - if (message.countTotal === true) { - writer.uint32(32).bool(message.countTotal); - } - - if (message.reverse === true) { - writer.uint32(40).bool(message.reverse); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PageRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePageRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.key = reader.bytes(); - break; - - case 2: - message.offset = (reader.uint64() as Long); - break; - - case 3: - message.limit = (reader.uint64() as Long); - break; - - case 4: - message.countTotal = reader.bool(); - break; - - case 5: - message.reverse = reader.bool(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PageRequest { - const message = createBasePageRequest(); - message.key = object.key ?? new Uint8Array(); - message.offset = object.offset !== undefined && object.offset !== null ? Long.fromValue(object.offset) : Long.UZERO; - message.limit = object.limit !== undefined && object.limit !== null ? Long.fromValue(object.limit) : Long.UZERO; - message.countTotal = object.countTotal ?? false; - message.reverse = object.reverse ?? false; - return message; - } - -}; - -function createBasePageResponse(): PageResponse { - return { - nextKey: new Uint8Array(), - total: Long.UZERO - }; -} - -export const PageResponse = { - encode(message: PageResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.nextKey.length !== 0) { - writer.uint32(10).bytes(message.nextKey); - } - - if (!message.total.isZero()) { - writer.uint32(16).uint64(message.total); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PageResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePageResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.nextKey = reader.bytes(); - break; - - case 2: - message.total = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PageResponse { - const message = createBasePageResponse(); - message.nextKey = object.nextKey ?? new Uint8Array(); - message.total = object.total !== undefined && object.total !== null ? Long.fromValue(object.total) : Long.UZERO; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/base/reflection/v1beta1/reflection.ts b/packages/codegen/src/cosmos/base/reflection/v1beta1/reflection.ts deleted file mode 100644 index 17e84892..00000000 --- a/packages/codegen/src/cosmos/base/reflection/v1beta1/reflection.ts +++ /dev/null @@ -1,221 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** ListAllInterfacesRequest is the request type of the ListAllInterfaces RPC. */ - -export interface ListAllInterfacesRequest {} -/** ListAllInterfacesRequest is the request type of the ListAllInterfaces RPC. */ - -export interface ListAllInterfacesRequestSDKType {} -/** ListAllInterfacesResponse is the response type of the ListAllInterfaces RPC. */ - -export interface ListAllInterfacesResponse { - /** interface_names is an array of all the registered interfaces. */ - interfaceNames: string[]; -} -/** ListAllInterfacesResponse is the response type of the ListAllInterfaces RPC. */ - -export interface ListAllInterfacesResponseSDKType { - interface_names: string[]; -} -/** - * ListImplementationsRequest is the request type of the ListImplementations - * RPC. - */ - -export interface ListImplementationsRequest { - /** interface_name defines the interface to query the implementations for. */ - interfaceName: string; -} -/** - * ListImplementationsRequest is the request type of the ListImplementations - * RPC. - */ - -export interface ListImplementationsRequestSDKType { - interface_name: string; -} -/** - * ListImplementationsResponse is the response type of the ListImplementations - * RPC. - */ - -export interface ListImplementationsResponse { - implementationMessageNames: string[]; -} -/** - * ListImplementationsResponse is the response type of the ListImplementations - * RPC. - */ - -export interface ListImplementationsResponseSDKType { - implementation_message_names: string[]; -} - -function createBaseListAllInterfacesRequest(): ListAllInterfacesRequest { - return {}; -} - -export const ListAllInterfacesRequest = { - encode(_: ListAllInterfacesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ListAllInterfacesRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseListAllInterfacesRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): ListAllInterfacesRequest { - const message = createBaseListAllInterfacesRequest(); - return message; - } - -}; - -function createBaseListAllInterfacesResponse(): ListAllInterfacesResponse { - return { - interfaceNames: [] - }; -} - -export const ListAllInterfacesResponse = { - encode(message: ListAllInterfacesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.interfaceNames) { - writer.uint32(10).string(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ListAllInterfacesResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseListAllInterfacesResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.interfaceNames.push(reader.string()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ListAllInterfacesResponse { - const message = createBaseListAllInterfacesResponse(); - message.interfaceNames = object.interfaceNames?.map(e => e) || []; - return message; - } - -}; - -function createBaseListImplementationsRequest(): ListImplementationsRequest { - return { - interfaceName: "" - }; -} - -export const ListImplementationsRequest = { - encode(message: ListImplementationsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.interfaceName !== "") { - writer.uint32(10).string(message.interfaceName); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ListImplementationsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseListImplementationsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.interfaceName = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ListImplementationsRequest { - const message = createBaseListImplementationsRequest(); - message.interfaceName = object.interfaceName ?? ""; - return message; - } - -}; - -function createBaseListImplementationsResponse(): ListImplementationsResponse { - return { - implementationMessageNames: [] - }; -} - -export const ListImplementationsResponse = { - encode(message: ListImplementationsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.implementationMessageNames) { - writer.uint32(10).string(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ListImplementationsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseListImplementationsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.implementationMessageNames.push(reader.string()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ListImplementationsResponse { - const message = createBaseListImplementationsResponse(); - message.implementationMessageNames = object.implementationMessageNames?.map(e => e) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/base/reflection/v2alpha1/reflection.ts b/packages/codegen/src/cosmos/base/reflection/v2alpha1/reflection.ts deleted file mode 100644 index 0f17dd05..00000000 --- a/packages/codegen/src/cosmos/base/reflection/v2alpha1/reflection.ts +++ /dev/null @@ -1,1630 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** AppDescriptor describes a cosmos-sdk based application */ - -export interface AppDescriptor { - /** - * AuthnDescriptor provides information on how to authenticate transactions on the application - * NOTE: experimental and subject to change in future releases. - */ - authn?: AuthnDescriptor; - /** chain provides the chain descriptor */ - - chain?: ChainDescriptor; - /** codec provides metadata information regarding codec related types */ - - codec?: CodecDescriptor; - /** configuration provides metadata information regarding the sdk.Config type */ - - configuration?: ConfigurationDescriptor; - /** query_services provides metadata information regarding the available queriable endpoints */ - - queryServices?: QueryServicesDescriptor; - /** tx provides metadata information regarding how to send transactions to the given application */ - - tx?: TxDescriptor; -} -/** AppDescriptor describes a cosmos-sdk based application */ - -export interface AppDescriptorSDKType { - authn?: AuthnDescriptorSDKType; - chain?: ChainDescriptorSDKType; - codec?: CodecDescriptorSDKType; - configuration?: ConfigurationDescriptorSDKType; - query_services?: QueryServicesDescriptorSDKType; - tx?: TxDescriptorSDKType; -} -/** TxDescriptor describes the accepted transaction type */ - -export interface 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. - */ - fullname: string; - /** msgs lists the accepted application messages (sdk.Msg) */ - - msgs: MsgDescriptor[]; -} -/** TxDescriptor describes the accepted transaction type */ - -export interface TxDescriptorSDKType { - fullname: string; - msgs: MsgDescriptorSDKType[]; -} -/** - * AuthnDescriptor provides information on how to sign transactions without relying - * on the online RPCs GetTxMetadata and CombineUnsignedTxAndSignatures - */ - -export interface AuthnDescriptor { - /** sign_modes defines the supported signature algorithm */ - signModes: SigningModeDescriptor[]; -} -/** - * AuthnDescriptor provides information on how to sign transactions without relying - * on the online RPCs GetTxMetadata and CombineUnsignedTxAndSignatures - */ - -export interface AuthnDescriptorSDKType { - sign_modes: SigningModeDescriptorSDKType[]; -} -/** - * 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 - */ - -export interface SigningModeDescriptor { - /** name defines the unique name of the signing mode */ - name: string; - /** number is the unique int32 identifier for the sign_mode enum */ - - number: 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 - */ - - authnInfoProviderMethodFullname: string; -} -/** - * 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 - */ - -export interface SigningModeDescriptorSDKType { - name: string; - number: number; - authn_info_provider_method_fullname: string; -} -/** ChainDescriptor describes chain information of the application */ - -export interface ChainDescriptor { - /** id is the chain id */ - id: string; -} -/** ChainDescriptor describes chain information of the application */ - -export interface ChainDescriptorSDKType { - id: string; -} -/** CodecDescriptor describes the registered interfaces and provides metadata information on the types */ - -export interface CodecDescriptor { - /** interfaces is a list of the registerted interfaces descriptors */ - interfaces: InterfaceDescriptor[]; -} -/** CodecDescriptor describes the registered interfaces and provides metadata information on the types */ - -export interface CodecDescriptorSDKType { - interfaces: InterfaceDescriptorSDKType[]; -} -/** InterfaceDescriptor describes the implementation of an interface */ - -export interface InterfaceDescriptor { - /** fullname is the name of the interface */ - fullname: string; - /** - * interface_accepting_messages contains information regarding the proto messages which contain the interface as - * google.protobuf.Any field - */ - - interfaceAcceptingMessages: InterfaceAcceptingMessageDescriptor[]; - /** interface_implementers is a list of the descriptors of the interface implementers */ - - interfaceImplementers: InterfaceImplementerDescriptor[]; -} -/** InterfaceDescriptor describes the implementation of an interface */ - -export interface InterfaceDescriptorSDKType { - fullname: string; - interface_accepting_messages: InterfaceAcceptingMessageDescriptorSDKType[]; - interface_implementers: InterfaceImplementerDescriptorSDKType[]; -} -/** InterfaceImplementerDescriptor describes an interface implementer */ - -export interface InterfaceImplementerDescriptor { - /** fullname is the protobuf queryable name of the interface implementer */ - fullname: string; - /** - * 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 - */ - - typeUrl: string; -} -/** InterfaceImplementerDescriptor describes an interface implementer */ - -export interface InterfaceImplementerDescriptorSDKType { - fullname: string; - type_url: string; -} -/** - * InterfaceAcceptingMessageDescriptor describes a protobuf message which contains - * an interface represented as a google.protobuf.Any - */ - -export interface InterfaceAcceptingMessageDescriptor { - /** fullname is the protobuf fullname of the type containing the interface */ - fullname: string; - /** - * 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) - */ - - fieldDescriptorNames: string[]; -} -/** - * InterfaceAcceptingMessageDescriptor describes a protobuf message which contains - * an interface represented as a google.protobuf.Any - */ - -export interface InterfaceAcceptingMessageDescriptorSDKType { - fullname: string; - field_descriptor_names: string[]; -} -/** ConfigurationDescriptor contains metadata information on the sdk.Config */ - -export interface ConfigurationDescriptor { - /** bech32_account_address_prefix is the account address prefix */ - bech32AccountAddressPrefix: string; -} -/** ConfigurationDescriptor contains metadata information on the sdk.Config */ - -export interface ConfigurationDescriptorSDKType { - bech32_account_address_prefix: string; -} -/** MsgDescriptor describes a cosmos-sdk message that can be delivered with a transaction */ - -export interface MsgDescriptor { - /** msg_type_url contains the TypeURL of a sdk.Msg. */ - msgTypeUrl: string; -} -/** MsgDescriptor describes a cosmos-sdk message that can be delivered with a transaction */ - -export interface MsgDescriptorSDKType { - msg_type_url: string; -} -/** GetAuthnDescriptorRequest is the request used for the GetAuthnDescriptor RPC */ - -export interface GetAuthnDescriptorRequest {} -/** GetAuthnDescriptorRequest is the request used for the GetAuthnDescriptor RPC */ - -export interface GetAuthnDescriptorRequestSDKType {} -/** GetAuthnDescriptorResponse is the response returned by the GetAuthnDescriptor RPC */ - -export interface GetAuthnDescriptorResponse { - /** authn describes how to authenticate to the application when sending transactions */ - authn?: AuthnDescriptor; -} -/** GetAuthnDescriptorResponse is the response returned by the GetAuthnDescriptor RPC */ - -export interface GetAuthnDescriptorResponseSDKType { - authn?: AuthnDescriptorSDKType; -} -/** GetChainDescriptorRequest is the request used for the GetChainDescriptor RPC */ - -export interface GetChainDescriptorRequest {} -/** GetChainDescriptorRequest is the request used for the GetChainDescriptor RPC */ - -export interface GetChainDescriptorRequestSDKType {} -/** GetChainDescriptorResponse is the response returned by the GetChainDescriptor RPC */ - -export interface GetChainDescriptorResponse { - /** chain describes application chain information */ - chain?: ChainDescriptor; -} -/** GetChainDescriptorResponse is the response returned by the GetChainDescriptor RPC */ - -export interface GetChainDescriptorResponseSDKType { - chain?: ChainDescriptorSDKType; -} -/** GetCodecDescriptorRequest is the request used for the GetCodecDescriptor RPC */ - -export interface GetCodecDescriptorRequest {} -/** GetCodecDescriptorRequest is the request used for the GetCodecDescriptor RPC */ - -export interface GetCodecDescriptorRequestSDKType {} -/** GetCodecDescriptorResponse is the response returned by the GetCodecDescriptor RPC */ - -export interface GetCodecDescriptorResponse { - /** codec describes the application codec such as registered interfaces and implementations */ - codec?: CodecDescriptor; -} -/** GetCodecDescriptorResponse is the response returned by the GetCodecDescriptor RPC */ - -export interface GetCodecDescriptorResponseSDKType { - codec?: CodecDescriptorSDKType; -} -/** GetConfigurationDescriptorRequest is the request used for the GetConfigurationDescriptor RPC */ - -export interface GetConfigurationDescriptorRequest {} -/** GetConfigurationDescriptorRequest is the request used for the GetConfigurationDescriptor RPC */ - -export interface GetConfigurationDescriptorRequestSDKType {} -/** GetConfigurationDescriptorResponse is the response returned by the GetConfigurationDescriptor RPC */ - -export interface GetConfigurationDescriptorResponse { - /** config describes the application's sdk.Config */ - config?: ConfigurationDescriptor; -} -/** GetConfigurationDescriptorResponse is the response returned by the GetConfigurationDescriptor RPC */ - -export interface GetConfigurationDescriptorResponseSDKType { - config?: ConfigurationDescriptorSDKType; -} -/** GetQueryServicesDescriptorRequest is the request used for the GetQueryServicesDescriptor RPC */ - -export interface GetQueryServicesDescriptorRequest {} -/** GetQueryServicesDescriptorRequest is the request used for the GetQueryServicesDescriptor RPC */ - -export interface GetQueryServicesDescriptorRequestSDKType {} -/** GetQueryServicesDescriptorResponse is the response returned by the GetQueryServicesDescriptor RPC */ - -export interface GetQueryServicesDescriptorResponse { - /** queries provides information on the available queryable services */ - queries?: QueryServicesDescriptor; -} -/** GetQueryServicesDescriptorResponse is the response returned by the GetQueryServicesDescriptor RPC */ - -export interface GetQueryServicesDescriptorResponseSDKType { - queries?: QueryServicesDescriptorSDKType; -} -/** GetTxDescriptorRequest is the request used for the GetTxDescriptor RPC */ - -export interface GetTxDescriptorRequest {} -/** GetTxDescriptorRequest is the request used for the GetTxDescriptor RPC */ - -export interface GetTxDescriptorRequestSDKType {} -/** GetTxDescriptorResponse is the response returned by the GetTxDescriptor RPC */ - -export interface GetTxDescriptorResponse { - /** - * tx provides information on msgs that can be forwarded to the application - * alongside the accepted transaction protobuf type - */ - tx?: TxDescriptor; -} -/** GetTxDescriptorResponse is the response returned by the GetTxDescriptor RPC */ - -export interface GetTxDescriptorResponseSDKType { - tx?: TxDescriptorSDKType; -} -/** QueryServicesDescriptor contains the list of cosmos-sdk queriable services */ - -export interface QueryServicesDescriptor { - /** query_services is a list of cosmos-sdk QueryServiceDescriptor */ - queryServices: QueryServiceDescriptor[]; -} -/** QueryServicesDescriptor contains the list of cosmos-sdk queriable services */ - -export interface QueryServicesDescriptorSDKType { - query_services: QueryServiceDescriptorSDKType[]; -} -/** QueryServiceDescriptor describes a cosmos-sdk queryable service */ - -export interface QueryServiceDescriptor { - /** fullname is the protobuf fullname of the service descriptor */ - fullname: string; - /** is_module describes if this service is actually exposed by an application's module */ - - isModule: boolean; - /** methods provides a list of query service methods */ - - methods: QueryMethodDescriptor[]; -} -/** QueryServiceDescriptor describes a cosmos-sdk queryable service */ - -export interface QueryServiceDescriptorSDKType { - fullname: string; - is_module: boolean; - methods: QueryMethodDescriptorSDKType[]; -} -/** - * 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 - */ - -export interface QueryMethodDescriptor { - /** name is the protobuf name (not fullname) of the method */ - name: string; - /** - * full_query_path is the path that can be used to query - * this method via tendermint abci.Query - */ - - fullQueryPath: string; -} -/** - * 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 - */ - -export interface QueryMethodDescriptorSDKType { - name: string; - full_query_path: string; -} - -function createBaseAppDescriptor(): AppDescriptor { - return { - authn: undefined, - chain: undefined, - codec: undefined, - configuration: undefined, - queryServices: undefined, - tx: undefined - }; -} - -export const AppDescriptor = { - encode(message: AppDescriptor, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.authn !== undefined) { - AuthnDescriptor.encode(message.authn, writer.uint32(10).fork()).ldelim(); - } - - if (message.chain !== undefined) { - ChainDescriptor.encode(message.chain, writer.uint32(18).fork()).ldelim(); - } - - if (message.codec !== undefined) { - CodecDescriptor.encode(message.codec, writer.uint32(26).fork()).ldelim(); - } - - if (message.configuration !== undefined) { - ConfigurationDescriptor.encode(message.configuration, writer.uint32(34).fork()).ldelim(); - } - - if (message.queryServices !== undefined) { - QueryServicesDescriptor.encode(message.queryServices, writer.uint32(42).fork()).ldelim(); - } - - if (message.tx !== undefined) { - TxDescriptor.encode(message.tx, writer.uint32(50).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): AppDescriptor { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAppDescriptor(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.authn = AuthnDescriptor.decode(reader, reader.uint32()); - break; - - case 2: - message.chain = ChainDescriptor.decode(reader, reader.uint32()); - break; - - case 3: - message.codec = CodecDescriptor.decode(reader, reader.uint32()); - break; - - case 4: - message.configuration = ConfigurationDescriptor.decode(reader, reader.uint32()); - break; - - case 5: - message.queryServices = QueryServicesDescriptor.decode(reader, reader.uint32()); - break; - - case 6: - message.tx = TxDescriptor.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): AppDescriptor { - const message = createBaseAppDescriptor(); - message.authn = object.authn !== undefined && object.authn !== null ? AuthnDescriptor.fromPartial(object.authn) : undefined; - message.chain = object.chain !== undefined && object.chain !== null ? ChainDescriptor.fromPartial(object.chain) : undefined; - message.codec = object.codec !== undefined && object.codec !== null ? CodecDescriptor.fromPartial(object.codec) : undefined; - message.configuration = object.configuration !== undefined && object.configuration !== null ? ConfigurationDescriptor.fromPartial(object.configuration) : undefined; - message.queryServices = object.queryServices !== undefined && object.queryServices !== null ? QueryServicesDescriptor.fromPartial(object.queryServices) : undefined; - message.tx = object.tx !== undefined && object.tx !== null ? TxDescriptor.fromPartial(object.tx) : undefined; - return message; - } - -}; - -function createBaseTxDescriptor(): TxDescriptor { - return { - fullname: "", - msgs: [] - }; -} - -export const TxDescriptor = { - encode(message: TxDescriptor, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.fullname !== "") { - writer.uint32(10).string(message.fullname); - } - - for (const v of message.msgs) { - MsgDescriptor.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): TxDescriptor { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTxDescriptor(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.fullname = reader.string(); - break; - - case 2: - message.msgs.push(MsgDescriptor.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): TxDescriptor { - const message = createBaseTxDescriptor(); - message.fullname = object.fullname ?? ""; - message.msgs = object.msgs?.map(e => MsgDescriptor.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseAuthnDescriptor(): AuthnDescriptor { - return { - signModes: [] - }; -} - -export const AuthnDescriptor = { - encode(message: AuthnDescriptor, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.signModes) { - SigningModeDescriptor.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): AuthnDescriptor { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAuthnDescriptor(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.signModes.push(SigningModeDescriptor.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): AuthnDescriptor { - const message = createBaseAuthnDescriptor(); - message.signModes = object.signModes?.map(e => SigningModeDescriptor.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseSigningModeDescriptor(): SigningModeDescriptor { - return { - name: "", - number: 0, - authnInfoProviderMethodFullname: "" - }; -} - -export const SigningModeDescriptor = { - encode(message: SigningModeDescriptor, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.name !== "") { - writer.uint32(10).string(message.name); - } - - if (message.number !== 0) { - writer.uint32(16).int32(message.number); - } - - if (message.authnInfoProviderMethodFullname !== "") { - writer.uint32(26).string(message.authnInfoProviderMethodFullname); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SigningModeDescriptor { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSigningModeDescriptor(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - - case 2: - message.number = reader.int32(); - break; - - case 3: - message.authnInfoProviderMethodFullname = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SigningModeDescriptor { - const message = createBaseSigningModeDescriptor(); - message.name = object.name ?? ""; - message.number = object.number ?? 0; - message.authnInfoProviderMethodFullname = object.authnInfoProviderMethodFullname ?? ""; - return message; - } - -}; - -function createBaseChainDescriptor(): ChainDescriptor { - return { - id: "" - }; -} - -export const ChainDescriptor = { - encode(message: ChainDescriptor, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.id !== "") { - writer.uint32(10).string(message.id); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ChainDescriptor { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseChainDescriptor(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.id = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ChainDescriptor { - const message = createBaseChainDescriptor(); - message.id = object.id ?? ""; - return message; - } - -}; - -function createBaseCodecDescriptor(): CodecDescriptor { - return { - interfaces: [] - }; -} - -export const CodecDescriptor = { - encode(message: CodecDescriptor, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.interfaces) { - InterfaceDescriptor.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): CodecDescriptor { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCodecDescriptor(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.interfaces.push(InterfaceDescriptor.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): CodecDescriptor { - const message = createBaseCodecDescriptor(); - message.interfaces = object.interfaces?.map(e => InterfaceDescriptor.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseInterfaceDescriptor(): InterfaceDescriptor { - return { - fullname: "", - interfaceAcceptingMessages: [], - interfaceImplementers: [] - }; -} - -export const InterfaceDescriptor = { - encode(message: InterfaceDescriptor, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.fullname !== "") { - writer.uint32(10).string(message.fullname); - } - - for (const v of message.interfaceAcceptingMessages) { - InterfaceAcceptingMessageDescriptor.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - for (const v of message.interfaceImplementers) { - InterfaceImplementerDescriptor.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): InterfaceDescriptor { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseInterfaceDescriptor(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.fullname = reader.string(); - break; - - case 2: - message.interfaceAcceptingMessages.push(InterfaceAcceptingMessageDescriptor.decode(reader, reader.uint32())); - break; - - case 3: - message.interfaceImplementers.push(InterfaceImplementerDescriptor.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): InterfaceDescriptor { - const message = createBaseInterfaceDescriptor(); - message.fullname = object.fullname ?? ""; - message.interfaceAcceptingMessages = object.interfaceAcceptingMessages?.map(e => InterfaceAcceptingMessageDescriptor.fromPartial(e)) || []; - message.interfaceImplementers = object.interfaceImplementers?.map(e => InterfaceImplementerDescriptor.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseInterfaceImplementerDescriptor(): InterfaceImplementerDescriptor { - return { - fullname: "", - typeUrl: "" - }; -} - -export const InterfaceImplementerDescriptor = { - encode(message: InterfaceImplementerDescriptor, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.fullname !== "") { - writer.uint32(10).string(message.fullname); - } - - if (message.typeUrl !== "") { - writer.uint32(18).string(message.typeUrl); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): InterfaceImplementerDescriptor { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseInterfaceImplementerDescriptor(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.fullname = reader.string(); - break; - - case 2: - message.typeUrl = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): InterfaceImplementerDescriptor { - const message = createBaseInterfaceImplementerDescriptor(); - message.fullname = object.fullname ?? ""; - message.typeUrl = object.typeUrl ?? ""; - return message; - } - -}; - -function createBaseInterfaceAcceptingMessageDescriptor(): InterfaceAcceptingMessageDescriptor { - return { - fullname: "", - fieldDescriptorNames: [] - }; -} - -export const InterfaceAcceptingMessageDescriptor = { - encode(message: InterfaceAcceptingMessageDescriptor, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.fullname !== "") { - writer.uint32(10).string(message.fullname); - } - - for (const v of message.fieldDescriptorNames) { - writer.uint32(18).string(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): InterfaceAcceptingMessageDescriptor { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseInterfaceAcceptingMessageDescriptor(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.fullname = reader.string(); - break; - - case 2: - message.fieldDescriptorNames.push(reader.string()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): InterfaceAcceptingMessageDescriptor { - const message = createBaseInterfaceAcceptingMessageDescriptor(); - message.fullname = object.fullname ?? ""; - message.fieldDescriptorNames = object.fieldDescriptorNames?.map(e => e) || []; - return message; - } - -}; - -function createBaseConfigurationDescriptor(): ConfigurationDescriptor { - return { - bech32AccountAddressPrefix: "" - }; -} - -export const ConfigurationDescriptor = { - encode(message: ConfigurationDescriptor, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.bech32AccountAddressPrefix !== "") { - writer.uint32(10).string(message.bech32AccountAddressPrefix); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ConfigurationDescriptor { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseConfigurationDescriptor(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.bech32AccountAddressPrefix = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ConfigurationDescriptor { - const message = createBaseConfigurationDescriptor(); - message.bech32AccountAddressPrefix = object.bech32AccountAddressPrefix ?? ""; - return message; - } - -}; - -function createBaseMsgDescriptor(): MsgDescriptor { - return { - msgTypeUrl: "" - }; -} - -export const MsgDescriptor = { - encode(message: MsgDescriptor, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.msgTypeUrl !== "") { - writer.uint32(10).string(message.msgTypeUrl); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgDescriptor { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgDescriptor(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.msgTypeUrl = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgDescriptor { - const message = createBaseMsgDescriptor(); - message.msgTypeUrl = object.msgTypeUrl ?? ""; - return message; - } - -}; - -function createBaseGetAuthnDescriptorRequest(): GetAuthnDescriptorRequest { - return {}; -} - -export const GetAuthnDescriptorRequest = { - encode(_: GetAuthnDescriptorRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetAuthnDescriptorRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetAuthnDescriptorRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): GetAuthnDescriptorRequest { - const message = createBaseGetAuthnDescriptorRequest(); - return message; - } - -}; - -function createBaseGetAuthnDescriptorResponse(): GetAuthnDescriptorResponse { - return { - authn: undefined - }; -} - -export const GetAuthnDescriptorResponse = { - encode(message: GetAuthnDescriptorResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.authn !== undefined) { - AuthnDescriptor.encode(message.authn, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetAuthnDescriptorResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetAuthnDescriptorResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.authn = AuthnDescriptor.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GetAuthnDescriptorResponse { - const message = createBaseGetAuthnDescriptorResponse(); - message.authn = object.authn !== undefined && object.authn !== null ? AuthnDescriptor.fromPartial(object.authn) : undefined; - return message; - } - -}; - -function createBaseGetChainDescriptorRequest(): GetChainDescriptorRequest { - return {}; -} - -export const GetChainDescriptorRequest = { - encode(_: GetChainDescriptorRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetChainDescriptorRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetChainDescriptorRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): GetChainDescriptorRequest { - const message = createBaseGetChainDescriptorRequest(); - return message; - } - -}; - -function createBaseGetChainDescriptorResponse(): GetChainDescriptorResponse { - return { - chain: undefined - }; -} - -export const GetChainDescriptorResponse = { - encode(message: GetChainDescriptorResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.chain !== undefined) { - ChainDescriptor.encode(message.chain, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetChainDescriptorResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetChainDescriptorResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.chain = ChainDescriptor.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GetChainDescriptorResponse { - const message = createBaseGetChainDescriptorResponse(); - message.chain = object.chain !== undefined && object.chain !== null ? ChainDescriptor.fromPartial(object.chain) : undefined; - return message; - } - -}; - -function createBaseGetCodecDescriptorRequest(): GetCodecDescriptorRequest { - return {}; -} - -export const GetCodecDescriptorRequest = { - encode(_: GetCodecDescriptorRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetCodecDescriptorRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetCodecDescriptorRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): GetCodecDescriptorRequest { - const message = createBaseGetCodecDescriptorRequest(); - return message; - } - -}; - -function createBaseGetCodecDescriptorResponse(): GetCodecDescriptorResponse { - return { - codec: undefined - }; -} - -export const GetCodecDescriptorResponse = { - encode(message: GetCodecDescriptorResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.codec !== undefined) { - CodecDescriptor.encode(message.codec, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetCodecDescriptorResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetCodecDescriptorResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.codec = CodecDescriptor.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GetCodecDescriptorResponse { - const message = createBaseGetCodecDescriptorResponse(); - message.codec = object.codec !== undefined && object.codec !== null ? CodecDescriptor.fromPartial(object.codec) : undefined; - return message; - } - -}; - -function createBaseGetConfigurationDescriptorRequest(): GetConfigurationDescriptorRequest { - return {}; -} - -export const GetConfigurationDescriptorRequest = { - encode(_: GetConfigurationDescriptorRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetConfigurationDescriptorRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetConfigurationDescriptorRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): GetConfigurationDescriptorRequest { - const message = createBaseGetConfigurationDescriptorRequest(); - return message; - } - -}; - -function createBaseGetConfigurationDescriptorResponse(): GetConfigurationDescriptorResponse { - return { - config: undefined - }; -} - -export const GetConfigurationDescriptorResponse = { - encode(message: GetConfigurationDescriptorResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.config !== undefined) { - ConfigurationDescriptor.encode(message.config, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetConfigurationDescriptorResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetConfigurationDescriptorResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.config = ConfigurationDescriptor.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GetConfigurationDescriptorResponse { - const message = createBaseGetConfigurationDescriptorResponse(); - message.config = object.config !== undefined && object.config !== null ? ConfigurationDescriptor.fromPartial(object.config) : undefined; - return message; - } - -}; - -function createBaseGetQueryServicesDescriptorRequest(): GetQueryServicesDescriptorRequest { - return {}; -} - -export const GetQueryServicesDescriptorRequest = { - encode(_: GetQueryServicesDescriptorRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetQueryServicesDescriptorRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetQueryServicesDescriptorRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): GetQueryServicesDescriptorRequest { - const message = createBaseGetQueryServicesDescriptorRequest(); - return message; - } - -}; - -function createBaseGetQueryServicesDescriptorResponse(): GetQueryServicesDescriptorResponse { - return { - queries: undefined - }; -} - -export const GetQueryServicesDescriptorResponse = { - encode(message: GetQueryServicesDescriptorResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.queries !== undefined) { - QueryServicesDescriptor.encode(message.queries, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetQueryServicesDescriptorResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetQueryServicesDescriptorResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.queries = QueryServicesDescriptor.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GetQueryServicesDescriptorResponse { - const message = createBaseGetQueryServicesDescriptorResponse(); - message.queries = object.queries !== undefined && object.queries !== null ? QueryServicesDescriptor.fromPartial(object.queries) : undefined; - return message; - } - -}; - -function createBaseGetTxDescriptorRequest(): GetTxDescriptorRequest { - return {}; -} - -export const GetTxDescriptorRequest = { - encode(_: GetTxDescriptorRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetTxDescriptorRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetTxDescriptorRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): GetTxDescriptorRequest { - const message = createBaseGetTxDescriptorRequest(); - return message; - } - -}; - -function createBaseGetTxDescriptorResponse(): GetTxDescriptorResponse { - return { - tx: undefined - }; -} - -export const GetTxDescriptorResponse = { - encode(message: GetTxDescriptorResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.tx !== undefined) { - TxDescriptor.encode(message.tx, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetTxDescriptorResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetTxDescriptorResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.tx = TxDescriptor.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GetTxDescriptorResponse { - const message = createBaseGetTxDescriptorResponse(); - message.tx = object.tx !== undefined && object.tx !== null ? TxDescriptor.fromPartial(object.tx) : undefined; - return message; - } - -}; - -function createBaseQueryServicesDescriptor(): QueryServicesDescriptor { - return { - queryServices: [] - }; -} - -export const QueryServicesDescriptor = { - encode(message: QueryServicesDescriptor, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.queryServices) { - QueryServiceDescriptor.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryServicesDescriptor { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryServicesDescriptor(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.queryServices.push(QueryServiceDescriptor.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryServicesDescriptor { - const message = createBaseQueryServicesDescriptor(); - message.queryServices = object.queryServices?.map(e => QueryServiceDescriptor.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseQueryServiceDescriptor(): QueryServiceDescriptor { - return { - fullname: "", - isModule: false, - methods: [] - }; -} - -export const QueryServiceDescriptor = { - encode(message: QueryServiceDescriptor, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.fullname !== "") { - writer.uint32(10).string(message.fullname); - } - - if (message.isModule === true) { - writer.uint32(16).bool(message.isModule); - } - - for (const v of message.methods) { - QueryMethodDescriptor.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryServiceDescriptor { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryServiceDescriptor(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.fullname = reader.string(); - break; - - case 2: - message.isModule = reader.bool(); - break; - - case 3: - message.methods.push(QueryMethodDescriptor.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryServiceDescriptor { - const message = createBaseQueryServiceDescriptor(); - message.fullname = object.fullname ?? ""; - message.isModule = object.isModule ?? false; - message.methods = object.methods?.map(e => QueryMethodDescriptor.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseQueryMethodDescriptor(): QueryMethodDescriptor { - return { - name: "", - fullQueryPath: "" - }; -} - -export const QueryMethodDescriptor = { - encode(message: QueryMethodDescriptor, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.name !== "") { - writer.uint32(10).string(message.name); - } - - if (message.fullQueryPath !== "") { - writer.uint32(18).string(message.fullQueryPath); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryMethodDescriptor { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryMethodDescriptor(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - - case 2: - message.fullQueryPath = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryMethodDescriptor { - const message = createBaseQueryMethodDescriptor(); - message.name = object.name ?? ""; - message.fullQueryPath = object.fullQueryPath ?? ""; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/base/snapshots/v1beta1/snapshot.ts b/packages/codegen/src/cosmos/base/snapshots/v1beta1/snapshot.ts deleted file mode 100644 index 0390b680..00000000 --- a/packages/codegen/src/cosmos/base/snapshots/v1beta1/snapshot.ts +++ /dev/null @@ -1,670 +0,0 @@ -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** Snapshot contains Tendermint state sync snapshot info. */ - -export interface Snapshot { - height: Long; - format: number; - chunks: number; - hash: Uint8Array; - metadata?: Metadata; -} -/** Snapshot contains Tendermint state sync snapshot info. */ - -export interface SnapshotSDKType { - height: Long; - format: number; - chunks: number; - hash: Uint8Array; - metadata?: MetadataSDKType; -} -/** Metadata contains SDK-specific snapshot metadata. */ - -export interface Metadata { - /** SHA-256 chunk hashes */ - chunkHashes: Uint8Array[]; -} -/** Metadata contains SDK-specific snapshot metadata. */ - -export interface MetadataSDKType { - chunk_hashes: Uint8Array[]; -} -/** SnapshotItem is an item contained in a rootmulti.Store snapshot. */ - -export interface SnapshotItem { - store?: SnapshotStoreItem; - iavl?: SnapshotIAVLItem; - extension?: SnapshotExtensionMeta; - extensionPayload?: SnapshotExtensionPayload; - kv?: SnapshotKVItem; - schema?: SnapshotSchema; -} -/** SnapshotItem is an item contained in a rootmulti.Store snapshot. */ - -export interface SnapshotItemSDKType { - store?: SnapshotStoreItemSDKType; - iavl?: SnapshotIAVLItemSDKType; - extension?: SnapshotExtensionMetaSDKType; - extension_payload?: SnapshotExtensionPayloadSDKType; - kv?: SnapshotKVItemSDKType; - schema?: SnapshotSchemaSDKType; -} -/** SnapshotStoreItem contains metadata about a snapshotted store. */ - -export interface SnapshotStoreItem { - name: string; -} -/** SnapshotStoreItem contains metadata about a snapshotted store. */ - -export interface SnapshotStoreItemSDKType { - name: string; -} -/** SnapshotIAVLItem is an exported IAVL node. */ - -export interface SnapshotIAVLItem { - key: Uint8Array; - value: Uint8Array; - /** version is block height */ - - version: Long; - /** height is depth of the tree. */ - - height: number; -} -/** SnapshotIAVLItem is an exported IAVL node. */ - -export interface SnapshotIAVLItemSDKType { - key: Uint8Array; - value: Uint8Array; - version: Long; - height: number; -} -/** SnapshotExtensionMeta contains metadata about an external snapshotter. */ - -export interface SnapshotExtensionMeta { - name: string; - format: number; -} -/** SnapshotExtensionMeta contains metadata about an external snapshotter. */ - -export interface SnapshotExtensionMetaSDKType { - name: string; - format: number; -} -/** SnapshotExtensionPayload contains payloads of an external snapshotter. */ - -export interface SnapshotExtensionPayload { - payload: Uint8Array; -} -/** SnapshotExtensionPayload contains payloads of an external snapshotter. */ - -export interface SnapshotExtensionPayloadSDKType { - payload: Uint8Array; -} -/** SnapshotKVItem is an exported Key/Value Pair */ - -export interface SnapshotKVItem { - key: Uint8Array; - value: Uint8Array; -} -/** SnapshotKVItem is an exported Key/Value Pair */ - -export interface SnapshotKVItemSDKType { - key: Uint8Array; - value: Uint8Array; -} -/** SnapshotSchema is an exported schema of smt store */ - -export interface SnapshotSchema { - keys: Uint8Array[]; -} -/** SnapshotSchema is an exported schema of smt store */ - -export interface SnapshotSchemaSDKType { - keys: Uint8Array[]; -} - -function createBaseSnapshot(): Snapshot { - return { - height: Long.UZERO, - format: 0, - chunks: 0, - hash: new Uint8Array(), - metadata: undefined - }; -} - -export const Snapshot = { - encode(message: Snapshot, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.height.isZero()) { - writer.uint32(8).uint64(message.height); - } - - if (message.format !== 0) { - writer.uint32(16).uint32(message.format); - } - - if (message.chunks !== 0) { - writer.uint32(24).uint32(message.chunks); - } - - if (message.hash.length !== 0) { - writer.uint32(34).bytes(message.hash); - } - - if (message.metadata !== undefined) { - Metadata.encode(message.metadata, writer.uint32(42).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Snapshot { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSnapshot(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.height = (reader.uint64() as Long); - break; - - case 2: - message.format = reader.uint32(); - break; - - case 3: - message.chunks = reader.uint32(); - break; - - case 4: - message.hash = reader.bytes(); - break; - - case 5: - message.metadata = Metadata.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Snapshot { - const message = createBaseSnapshot(); - message.height = object.height !== undefined && object.height !== null ? Long.fromValue(object.height) : Long.UZERO; - message.format = object.format ?? 0; - message.chunks = object.chunks ?? 0; - message.hash = object.hash ?? new Uint8Array(); - message.metadata = object.metadata !== undefined && object.metadata !== null ? Metadata.fromPartial(object.metadata) : undefined; - return message; - } - -}; - -function createBaseMetadata(): Metadata { - return { - chunkHashes: [] - }; -} - -export const Metadata = { - encode(message: Metadata, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.chunkHashes) { - writer.uint32(10).bytes(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Metadata { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMetadata(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.chunkHashes.push(reader.bytes()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Metadata { - const message = createBaseMetadata(); - message.chunkHashes = object.chunkHashes?.map(e => e) || []; - return message; - } - -}; - -function createBaseSnapshotItem(): SnapshotItem { - return { - store: undefined, - iavl: undefined, - extension: undefined, - extensionPayload: undefined, - kv: undefined, - schema: undefined - }; -} - -export const SnapshotItem = { - encode(message: SnapshotItem, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.store !== undefined) { - SnapshotStoreItem.encode(message.store, writer.uint32(10).fork()).ldelim(); - } - - if (message.iavl !== undefined) { - SnapshotIAVLItem.encode(message.iavl, writer.uint32(18).fork()).ldelim(); - } - - if (message.extension !== undefined) { - SnapshotExtensionMeta.encode(message.extension, writer.uint32(26).fork()).ldelim(); - } - - if (message.extensionPayload !== undefined) { - SnapshotExtensionPayload.encode(message.extensionPayload, writer.uint32(34).fork()).ldelim(); - } - - if (message.kv !== undefined) { - SnapshotKVItem.encode(message.kv, writer.uint32(42).fork()).ldelim(); - } - - if (message.schema !== undefined) { - SnapshotSchema.encode(message.schema, writer.uint32(50).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SnapshotItem { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSnapshotItem(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.store = SnapshotStoreItem.decode(reader, reader.uint32()); - break; - - case 2: - message.iavl = SnapshotIAVLItem.decode(reader, reader.uint32()); - break; - - case 3: - message.extension = SnapshotExtensionMeta.decode(reader, reader.uint32()); - break; - - case 4: - message.extensionPayload = SnapshotExtensionPayload.decode(reader, reader.uint32()); - break; - - case 5: - message.kv = SnapshotKVItem.decode(reader, reader.uint32()); - break; - - case 6: - message.schema = SnapshotSchema.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SnapshotItem { - const message = createBaseSnapshotItem(); - message.store = object.store !== undefined && object.store !== null ? SnapshotStoreItem.fromPartial(object.store) : undefined; - message.iavl = object.iavl !== undefined && object.iavl !== null ? SnapshotIAVLItem.fromPartial(object.iavl) : undefined; - message.extension = object.extension !== undefined && object.extension !== null ? SnapshotExtensionMeta.fromPartial(object.extension) : undefined; - message.extensionPayload = object.extensionPayload !== undefined && object.extensionPayload !== null ? SnapshotExtensionPayload.fromPartial(object.extensionPayload) : undefined; - message.kv = object.kv !== undefined && object.kv !== null ? SnapshotKVItem.fromPartial(object.kv) : undefined; - message.schema = object.schema !== undefined && object.schema !== null ? SnapshotSchema.fromPartial(object.schema) : undefined; - return message; - } - -}; - -function createBaseSnapshotStoreItem(): SnapshotStoreItem { - return { - name: "" - }; -} - -export const SnapshotStoreItem = { - encode(message: SnapshotStoreItem, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.name !== "") { - writer.uint32(10).string(message.name); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SnapshotStoreItem { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSnapshotStoreItem(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SnapshotStoreItem { - const message = createBaseSnapshotStoreItem(); - message.name = object.name ?? ""; - return message; - } - -}; - -function createBaseSnapshotIAVLItem(): SnapshotIAVLItem { - return { - key: new Uint8Array(), - value: new Uint8Array(), - version: Long.ZERO, - height: 0 - }; -} - -export const SnapshotIAVLItem = { - encode(message: SnapshotIAVLItem, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); - } - - if (message.value.length !== 0) { - writer.uint32(18).bytes(message.value); - } - - if (!message.version.isZero()) { - writer.uint32(24).int64(message.version); - } - - if (message.height !== 0) { - writer.uint32(32).int32(message.height); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SnapshotIAVLItem { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSnapshotIAVLItem(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.key = reader.bytes(); - break; - - case 2: - message.value = reader.bytes(); - break; - - case 3: - message.version = (reader.int64() as Long); - break; - - case 4: - message.height = reader.int32(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SnapshotIAVLItem { - const message = createBaseSnapshotIAVLItem(); - message.key = object.key ?? new Uint8Array(); - message.value = object.value ?? new Uint8Array(); - message.version = object.version !== undefined && object.version !== null ? Long.fromValue(object.version) : Long.ZERO; - message.height = object.height ?? 0; - return message; - } - -}; - -function createBaseSnapshotExtensionMeta(): SnapshotExtensionMeta { - return { - name: "", - format: 0 - }; -} - -export const SnapshotExtensionMeta = { - encode(message: SnapshotExtensionMeta, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.name !== "") { - writer.uint32(10).string(message.name); - } - - if (message.format !== 0) { - writer.uint32(16).uint32(message.format); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SnapshotExtensionMeta { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSnapshotExtensionMeta(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - - case 2: - message.format = reader.uint32(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SnapshotExtensionMeta { - const message = createBaseSnapshotExtensionMeta(); - message.name = object.name ?? ""; - message.format = object.format ?? 0; - return message; - } - -}; - -function createBaseSnapshotExtensionPayload(): SnapshotExtensionPayload { - return { - payload: new Uint8Array() - }; -} - -export const SnapshotExtensionPayload = { - encode(message: SnapshotExtensionPayload, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.payload.length !== 0) { - writer.uint32(10).bytes(message.payload); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SnapshotExtensionPayload { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSnapshotExtensionPayload(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.payload = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SnapshotExtensionPayload { - const message = createBaseSnapshotExtensionPayload(); - message.payload = object.payload ?? new Uint8Array(); - return message; - } - -}; - -function createBaseSnapshotKVItem(): SnapshotKVItem { - return { - key: new Uint8Array(), - value: new Uint8Array() - }; -} - -export const SnapshotKVItem = { - encode(message: SnapshotKVItem, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); - } - - if (message.value.length !== 0) { - writer.uint32(18).bytes(message.value); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SnapshotKVItem { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSnapshotKVItem(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.key = reader.bytes(); - break; - - case 2: - message.value = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SnapshotKVItem { - const message = createBaseSnapshotKVItem(); - message.key = object.key ?? new Uint8Array(); - message.value = object.value ?? new Uint8Array(); - return message; - } - -}; - -function createBaseSnapshotSchema(): SnapshotSchema { - return { - keys: [] - }; -} - -export const SnapshotSchema = { - encode(message: SnapshotSchema, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.keys) { - writer.uint32(10).bytes(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SnapshotSchema { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSnapshotSchema(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.keys.push(reader.bytes()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SnapshotSchema { - const message = createBaseSnapshotSchema(); - message.keys = object.keys?.map(e => e) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/base/store/v1beta1/commit_info.ts b/packages/codegen/src/cosmos/base/store/v1beta1/commit_info.ts deleted file mode 100644 index 406ef7a2..00000000 --- a/packages/codegen/src/cosmos/base/store/v1beta1/commit_info.ts +++ /dev/null @@ -1,221 +0,0 @@ -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * CommitInfo defines commit information used by the multi-store when committing - * a version/height. - */ - -export interface CommitInfo { - version: Long; - storeInfos: StoreInfo[]; -} -/** - * CommitInfo defines commit information used by the multi-store when committing - * a version/height. - */ - -export interface CommitInfoSDKType { - version: Long; - store_infos: StoreInfoSDKType[]; -} -/** - * StoreInfo defines store-specific commit information. It contains a reference - * between a store name and the commit ID. - */ - -export interface StoreInfo { - name: string; - commitId?: CommitID; -} -/** - * StoreInfo defines store-specific commit information. It contains a reference - * between a store name and the commit ID. - */ - -export interface StoreInfoSDKType { - name: string; - commit_id?: CommitIDSDKType; -} -/** - * CommitID defines the committment information when a specific store is - * committed. - */ - -export interface CommitID { - version: Long; - hash: Uint8Array; -} -/** - * CommitID defines the committment information when a specific store is - * committed. - */ - -export interface CommitIDSDKType { - version: Long; - hash: Uint8Array; -} - -function createBaseCommitInfo(): CommitInfo { - return { - version: Long.ZERO, - storeInfos: [] - }; -} - -export const CommitInfo = { - encode(message: CommitInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.version.isZero()) { - writer.uint32(8).int64(message.version); - } - - for (const v of message.storeInfos) { - StoreInfo.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): CommitInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCommitInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.version = (reader.int64() as Long); - break; - - case 2: - message.storeInfos.push(StoreInfo.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): CommitInfo { - const message = createBaseCommitInfo(); - message.version = object.version !== undefined && object.version !== null ? Long.fromValue(object.version) : Long.ZERO; - message.storeInfos = object.storeInfos?.map(e => StoreInfo.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseStoreInfo(): StoreInfo { - return { - name: "", - commitId: undefined - }; -} - -export const StoreInfo = { - encode(message: StoreInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.name !== "") { - writer.uint32(10).string(message.name); - } - - if (message.commitId !== undefined) { - CommitID.encode(message.commitId, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): StoreInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseStoreInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - - case 2: - message.commitId = CommitID.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): StoreInfo { - const message = createBaseStoreInfo(); - message.name = object.name ?? ""; - message.commitId = object.commitId !== undefined && object.commitId !== null ? CommitID.fromPartial(object.commitId) : undefined; - return message; - } - -}; - -function createBaseCommitID(): CommitID { - return { - version: Long.ZERO, - hash: new Uint8Array() - }; -} - -export const CommitID = { - encode(message: CommitID, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.version.isZero()) { - writer.uint32(8).int64(message.version); - } - - if (message.hash.length !== 0) { - writer.uint32(18).bytes(message.hash); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): CommitID { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCommitID(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.version = (reader.int64() as Long); - break; - - case 2: - message.hash = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): CommitID { - const message = createBaseCommitID(); - message.version = object.version !== undefined && object.version !== null ? Long.fromValue(object.version) : Long.ZERO; - message.hash = object.hash ?? new Uint8Array(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/base/store/v1beta1/listening.ts b/packages/codegen/src/cosmos/base/store/v1beta1/listening.ts deleted file mode 100644 index 3a4382be..00000000 --- a/packages/codegen/src/cosmos/base/store/v1beta1/listening.ts +++ /dev/null @@ -1,108 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** - * 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 - */ - -export interface StoreKVPair { - /** the store key for the KVStore this pair originates from */ - storeKey: string; - /** true indicates a delete operation, false indicates a set operation */ - - delete: boolean; - key: Uint8Array; - value: Uint8Array; -} -/** - * 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 - */ - -export interface StoreKVPairSDKType { - store_key: string; - delete: boolean; - key: Uint8Array; - value: Uint8Array; -} - -function createBaseStoreKVPair(): StoreKVPair { - return { - storeKey: "", - delete: false, - key: new Uint8Array(), - value: new Uint8Array() - }; -} - -export const StoreKVPair = { - encode(message: StoreKVPair, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.storeKey !== "") { - writer.uint32(10).string(message.storeKey); - } - - if (message.delete === true) { - writer.uint32(16).bool(message.delete); - } - - if (message.key.length !== 0) { - writer.uint32(26).bytes(message.key); - } - - if (message.value.length !== 0) { - writer.uint32(34).bytes(message.value); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): StoreKVPair { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseStoreKVPair(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.storeKey = reader.string(); - break; - - case 2: - message.delete = reader.bool(); - break; - - case 3: - message.key = reader.bytes(); - break; - - case 4: - message.value = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): StoreKVPair { - const message = createBaseStoreKVPair(); - message.storeKey = object.storeKey ?? ""; - message.delete = object.delete ?? false; - message.key = object.key ?? new Uint8Array(); - message.value = object.value ?? new Uint8Array(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/base/tendermint/v1beta1/query.lcd.ts b/packages/codegen/src/cosmos/base/tendermint/v1beta1/query.lcd.ts deleted file mode 100644 index 831fcf2c..00000000 --- a/packages/codegen/src/cosmos/base/tendermint/v1beta1/query.lcd.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { setPaginationParams } from "../../../../helpers"; -import { LCDClient } from "@osmonauts/lcd"; -import { GetNodeInfoRequest, GetNodeInfoResponseSDKType, GetSyncingRequest, GetSyncingResponseSDKType, GetLatestBlockRequest, GetLatestBlockResponseSDKType, GetBlockByHeightRequest, GetBlockByHeightResponseSDKType, GetLatestValidatorSetRequest, GetLatestValidatorSetResponseSDKType, GetValidatorSetByHeightRequest, GetValidatorSetByHeightResponseSDKType } from "./query"; -export class LCDQueryClient { - req: LCDClient; - - constructor({ - requestClient - }: { - requestClient: LCDClient; - }) { - this.req = requestClient; - this.getNodeInfo = this.getNodeInfo.bind(this); - this.getSyncing = this.getSyncing.bind(this); - this.getLatestBlock = this.getLatestBlock.bind(this); - this.getBlockByHeight = this.getBlockByHeight.bind(this); - this.getLatestValidatorSet = this.getLatestValidatorSet.bind(this); - this.getValidatorSetByHeight = this.getValidatorSetByHeight.bind(this); - } - /* GetNodeInfo queries the current node info. */ - - - async getNodeInfo(_params: GetNodeInfoRequest = {}): Promise { - const endpoint = `cosmos/base/tendermint/v1beta1/node_info`; - return await this.req.get(endpoint); - } - /* GetSyncing queries node syncing. */ - - - async getSyncing(_params: GetSyncingRequest = {}): Promise { - const endpoint = `cosmos/base/tendermint/v1beta1/syncing`; - return await this.req.get(endpoint); - } - /* GetLatestBlock returns the latest block. */ - - - async getLatestBlock(_params: GetLatestBlockRequest = {}): Promise { - const endpoint = `cosmos/base/tendermint/v1beta1/blocks/latest`; - return await this.req.get(endpoint); - } - /* GetBlockByHeight queries block for given height. */ - - - async getBlockByHeight(params: GetBlockByHeightRequest): Promise { - const endpoint = `cosmos/base/tendermint/v1beta1/blocks/${params.height}`; - return await this.req.get(endpoint); - } - /* GetLatestValidatorSet queries latest validator-set. */ - - - async getLatestValidatorSet(params: GetLatestValidatorSetRequest = { - pagination: undefined - }): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/base/tendermint/v1beta1/validatorsets/latest`; - return await this.req.get(endpoint, options); - } - /* GetValidatorSetByHeight queries validator-set at a given height. */ - - - async getValidatorSetByHeight(params: GetValidatorSetByHeightRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/base/tendermint/v1beta1/validatorsets/${params.height}`; - return await this.req.get(endpoint, options); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/base/tendermint/v1beta1/query.rpc.Service.ts b/packages/codegen/src/cosmos/base/tendermint/v1beta1/query.rpc.Service.ts deleted file mode 100644 index ce8c9187..00000000 --- a/packages/codegen/src/cosmos/base/tendermint/v1beta1/query.rpc.Service.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { Rpc } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { GetNodeInfoRequest, GetNodeInfoResponse, GetSyncingRequest, GetSyncingResponse, GetLatestBlockRequest, GetLatestBlockResponse, GetBlockByHeightRequest, GetBlockByHeightResponse, GetLatestValidatorSetRequest, GetLatestValidatorSetResponse, GetValidatorSetByHeightRequest, GetValidatorSetByHeightResponse } from "./query"; -/** Service defines the gRPC querier service for tendermint queries. */ - -export interface Service { - /** GetNodeInfo queries the current node info. */ - getNodeInfo(request?: GetNodeInfoRequest): Promise; - /** GetSyncing queries node syncing. */ - - getSyncing(request?: GetSyncingRequest): Promise; - /** GetLatestBlock returns the latest block. */ - - getLatestBlock(request?: GetLatestBlockRequest): Promise; - /** GetBlockByHeight queries block for given height. */ - - getBlockByHeight(request: GetBlockByHeightRequest): Promise; - /** GetLatestValidatorSet queries latest validator-set. */ - - getLatestValidatorSet(request?: GetLatestValidatorSetRequest): Promise; - /** GetValidatorSetByHeight queries validator-set at a given height. */ - - getValidatorSetByHeight(request: GetValidatorSetByHeightRequest): Promise; -} -export class ServiceClientImpl implements Service { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.getNodeInfo = this.getNodeInfo.bind(this); - this.getSyncing = this.getSyncing.bind(this); - this.getLatestBlock = this.getLatestBlock.bind(this); - this.getBlockByHeight = this.getBlockByHeight.bind(this); - this.getLatestValidatorSet = this.getLatestValidatorSet.bind(this); - this.getValidatorSetByHeight = this.getValidatorSetByHeight.bind(this); - } - - getNodeInfo(request: GetNodeInfoRequest = {}): Promise { - const data = GetNodeInfoRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.base.tendermint.v1beta1.Service", "GetNodeInfo", data); - return promise.then(data => GetNodeInfoResponse.decode(new _m0.Reader(data))); - } - - getSyncing(request: GetSyncingRequest = {}): Promise { - const data = GetSyncingRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.base.tendermint.v1beta1.Service", "GetSyncing", data); - return promise.then(data => GetSyncingResponse.decode(new _m0.Reader(data))); - } - - getLatestBlock(request: GetLatestBlockRequest = {}): Promise { - const data = GetLatestBlockRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.base.tendermint.v1beta1.Service", "GetLatestBlock", data); - return promise.then(data => GetLatestBlockResponse.decode(new _m0.Reader(data))); - } - - getBlockByHeight(request: GetBlockByHeightRequest): Promise { - const data = GetBlockByHeightRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.base.tendermint.v1beta1.Service", "GetBlockByHeight", data); - return promise.then(data => GetBlockByHeightResponse.decode(new _m0.Reader(data))); - } - - getLatestValidatorSet(request: GetLatestValidatorSetRequest = { - pagination: undefined - }): Promise { - const data = GetLatestValidatorSetRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.base.tendermint.v1beta1.Service", "GetLatestValidatorSet", data); - return promise.then(data => GetLatestValidatorSetResponse.decode(new _m0.Reader(data))); - } - - getValidatorSetByHeight(request: GetValidatorSetByHeightRequest): Promise { - const data = GetValidatorSetByHeightRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.base.tendermint.v1beta1.Service", "GetValidatorSetByHeight", data); - return promise.then(data => GetValidatorSetByHeightResponse.decode(new _m0.Reader(data))); - } - -} -export const createRpcQueryExtension = (base: QueryClient) => { - const rpc = createProtobufRpcClient(base); - const queryService = new ServiceClientImpl(rpc); - return { - getNodeInfo(request?: GetNodeInfoRequest): Promise { - return queryService.getNodeInfo(request); - }, - - getSyncing(request?: GetSyncingRequest): Promise { - return queryService.getSyncing(request); - }, - - getLatestBlock(request?: GetLatestBlockRequest): Promise { - return queryService.getLatestBlock(request); - }, - - getBlockByHeight(request: GetBlockByHeightRequest): Promise { - return queryService.getBlockByHeight(request); - }, - - getLatestValidatorSet(request?: GetLatestValidatorSetRequest): Promise { - return queryService.getLatestValidatorSet(request); - }, - - getValidatorSetByHeight(request: GetValidatorSetByHeightRequest): Promise { - return queryService.getValidatorSetByHeight(request); - } - - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/base/tendermint/v1beta1/query.ts b/packages/codegen/src/cosmos/base/tendermint/v1beta1/query.ts deleted file mode 100644 index 8e2b5d64..00000000 --- a/packages/codegen/src/cosmos/base/tendermint/v1beta1/query.ts +++ /dev/null @@ -1,1041 +0,0 @@ -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../query/v1beta1/pagination"; -import { Any, AnySDKType } from "../../../../google/protobuf/any"; -import { BlockID, BlockIDSDKType } from "../../../../tendermint/types/types"; -import { Block, BlockSDKType } from "../../../../tendermint/types/block"; -import { NodeInfo, NodeInfoSDKType } from "../../../../tendermint/p2p/types"; -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** GetValidatorSetByHeightRequest is the request type for the Query/GetValidatorSetByHeight RPC method. */ - -export interface GetValidatorSetByHeightRequest { - height: Long; - /** pagination defines an pagination for the request. */ - - pagination?: PageRequest; -} -/** GetValidatorSetByHeightRequest is the request type for the Query/GetValidatorSetByHeight RPC method. */ - -export interface GetValidatorSetByHeightRequestSDKType { - height: Long; - pagination?: PageRequestSDKType; -} -/** GetValidatorSetByHeightResponse is the response type for the Query/GetValidatorSetByHeight RPC method. */ - -export interface GetValidatorSetByHeightResponse { - blockHeight: Long; - validators: Validator[]; - /** pagination defines an pagination for the response. */ - - pagination?: PageResponse; -} -/** GetValidatorSetByHeightResponse is the response type for the Query/GetValidatorSetByHeight RPC method. */ - -export interface GetValidatorSetByHeightResponseSDKType { - block_height: Long; - validators: ValidatorSDKType[]; - pagination?: PageResponseSDKType; -} -/** GetLatestValidatorSetRequest is the request type for the Query/GetValidatorSetByHeight RPC method. */ - -export interface GetLatestValidatorSetRequest { - /** pagination defines an pagination for the request. */ - pagination?: PageRequest; -} -/** GetLatestValidatorSetRequest is the request type for the Query/GetValidatorSetByHeight RPC method. */ - -export interface GetLatestValidatorSetRequestSDKType { - pagination?: PageRequestSDKType; -} -/** GetLatestValidatorSetResponse is the response type for the Query/GetValidatorSetByHeight RPC method. */ - -export interface GetLatestValidatorSetResponse { - blockHeight: Long; - validators: Validator[]; - /** pagination defines an pagination for the response. */ - - pagination?: PageResponse; -} -/** GetLatestValidatorSetResponse is the response type for the Query/GetValidatorSetByHeight RPC method. */ - -export interface GetLatestValidatorSetResponseSDKType { - block_height: Long; - validators: ValidatorSDKType[]; - pagination?: PageResponseSDKType; -} -/** Validator is the type for the validator-set. */ - -export interface Validator { - address: string; - pubKey?: Any; - votingPower: Long; - proposerPriority: Long; -} -/** Validator is the type for the validator-set. */ - -export interface ValidatorSDKType { - address: string; - pub_key?: AnySDKType; - voting_power: Long; - proposer_priority: Long; -} -/** GetBlockByHeightRequest is the request type for the Query/GetBlockByHeight RPC method. */ - -export interface GetBlockByHeightRequest { - height: Long; -} -/** GetBlockByHeightRequest is the request type for the Query/GetBlockByHeight RPC method. */ - -export interface GetBlockByHeightRequestSDKType { - height: Long; -} -/** GetBlockByHeightResponse is the response type for the Query/GetBlockByHeight RPC method. */ - -export interface GetBlockByHeightResponse { - blockId?: BlockID; - block?: Block; -} -/** GetBlockByHeightResponse is the response type for the Query/GetBlockByHeight RPC method. */ - -export interface GetBlockByHeightResponseSDKType { - block_id?: BlockIDSDKType; - block?: BlockSDKType; -} -/** GetLatestBlockRequest is the request type for the Query/GetLatestBlock RPC method. */ - -export interface GetLatestBlockRequest {} -/** GetLatestBlockRequest is the request type for the Query/GetLatestBlock RPC method. */ - -export interface GetLatestBlockRequestSDKType {} -/** GetLatestBlockResponse is the response type for the Query/GetLatestBlock RPC method. */ - -export interface GetLatestBlockResponse { - blockId?: BlockID; - block?: Block; -} -/** GetLatestBlockResponse is the response type for the Query/GetLatestBlock RPC method. */ - -export interface GetLatestBlockResponseSDKType { - block_id?: BlockIDSDKType; - block?: BlockSDKType; -} -/** GetSyncingRequest is the request type for the Query/GetSyncing RPC method. */ - -export interface GetSyncingRequest {} -/** GetSyncingRequest is the request type for the Query/GetSyncing RPC method. */ - -export interface GetSyncingRequestSDKType {} -/** GetSyncingResponse is the response type for the Query/GetSyncing RPC method. */ - -export interface GetSyncingResponse { - syncing: boolean; -} -/** GetSyncingResponse is the response type for the Query/GetSyncing RPC method. */ - -export interface GetSyncingResponseSDKType { - syncing: boolean; -} -/** GetNodeInfoRequest is the request type for the Query/GetNodeInfo RPC method. */ - -export interface GetNodeInfoRequest {} -/** GetNodeInfoRequest is the request type for the Query/GetNodeInfo RPC method. */ - -export interface GetNodeInfoRequestSDKType {} -/** GetNodeInfoResponse is the response type for the Query/GetNodeInfo RPC method. */ - -export interface GetNodeInfoResponse { - nodeInfo?: NodeInfo; - applicationVersion?: VersionInfo; -} -/** GetNodeInfoResponse is the response type for the Query/GetNodeInfo RPC method. */ - -export interface GetNodeInfoResponseSDKType { - node_info?: NodeInfoSDKType; - application_version?: VersionInfoSDKType; -} -/** VersionInfo is the type for the GetNodeInfoResponse message. */ - -export interface VersionInfo { - name: string; - appName: string; - version: string; - gitCommit: string; - buildTags: string; - goVersion: string; - buildDeps: Module[]; - /** Since: cosmos-sdk 0.43 */ - - cosmosSdkVersion: string; -} -/** VersionInfo is the type for the GetNodeInfoResponse message. */ - -export interface VersionInfoSDKType { - name: string; - app_name: string; - version: string; - git_commit: string; - build_tags: string; - go_version: string; - build_deps: ModuleSDKType[]; - cosmos_sdk_version: string; -} -/** Module is the type for VersionInfo */ - -export interface Module { - /** module path */ - path: string; - /** module version */ - - version: string; - /** checksum */ - - sum: string; -} -/** Module is the type for VersionInfo */ - -export interface ModuleSDKType { - path: string; - version: string; - sum: string; -} - -function createBaseGetValidatorSetByHeightRequest(): GetValidatorSetByHeightRequest { - return { - height: Long.ZERO, - pagination: undefined - }; -} - -export const GetValidatorSetByHeightRequest = { - encode(message: GetValidatorSetByHeightRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.height.isZero()) { - writer.uint32(8).int64(message.height); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetValidatorSetByHeightRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetValidatorSetByHeightRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.height = (reader.int64() as Long); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GetValidatorSetByHeightRequest { - const message = createBaseGetValidatorSetByHeightRequest(); - message.height = object.height !== undefined && object.height !== null ? Long.fromValue(object.height) : Long.ZERO; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseGetValidatorSetByHeightResponse(): GetValidatorSetByHeightResponse { - return { - blockHeight: Long.ZERO, - validators: [], - pagination: undefined - }; -} - -export const GetValidatorSetByHeightResponse = { - encode(message: GetValidatorSetByHeightResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.blockHeight.isZero()) { - writer.uint32(8).int64(message.blockHeight); - } - - for (const v of message.validators) { - Validator.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetValidatorSetByHeightResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetValidatorSetByHeightResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.blockHeight = (reader.int64() as Long); - break; - - case 2: - message.validators.push(Validator.decode(reader, reader.uint32())); - break; - - case 3: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GetValidatorSetByHeightResponse { - const message = createBaseGetValidatorSetByHeightResponse(); - message.blockHeight = object.blockHeight !== undefined && object.blockHeight !== null ? Long.fromValue(object.blockHeight) : Long.ZERO; - message.validators = object.validators?.map(e => Validator.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseGetLatestValidatorSetRequest(): GetLatestValidatorSetRequest { - return { - pagination: undefined - }; -} - -export const GetLatestValidatorSetRequest = { - encode(message: GetLatestValidatorSetRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetLatestValidatorSetRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetLatestValidatorSetRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GetLatestValidatorSetRequest { - const message = createBaseGetLatestValidatorSetRequest(); - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseGetLatestValidatorSetResponse(): GetLatestValidatorSetResponse { - return { - blockHeight: Long.ZERO, - validators: [], - pagination: undefined - }; -} - -export const GetLatestValidatorSetResponse = { - encode(message: GetLatestValidatorSetResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.blockHeight.isZero()) { - writer.uint32(8).int64(message.blockHeight); - } - - for (const v of message.validators) { - Validator.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetLatestValidatorSetResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetLatestValidatorSetResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.blockHeight = (reader.int64() as Long); - break; - - case 2: - message.validators.push(Validator.decode(reader, reader.uint32())); - break; - - case 3: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GetLatestValidatorSetResponse { - const message = createBaseGetLatestValidatorSetResponse(); - message.blockHeight = object.blockHeight !== undefined && object.blockHeight !== null ? Long.fromValue(object.blockHeight) : Long.ZERO; - message.validators = object.validators?.map(e => Validator.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseValidator(): Validator { - return { - address: "", - pubKey: undefined, - votingPower: Long.ZERO, - proposerPriority: Long.ZERO - }; -} - -export const Validator = { - encode(message: Validator, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - if (message.pubKey !== undefined) { - Any.encode(message.pubKey, writer.uint32(18).fork()).ldelim(); - } - - if (!message.votingPower.isZero()) { - writer.uint32(24).int64(message.votingPower); - } - - if (!message.proposerPriority.isZero()) { - writer.uint32(32).int64(message.proposerPriority); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Validator { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidator(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.pubKey = Any.decode(reader, reader.uint32()); - break; - - case 3: - message.votingPower = (reader.int64() as Long); - break; - - case 4: - message.proposerPriority = (reader.int64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Validator { - const message = createBaseValidator(); - message.address = object.address ?? ""; - message.pubKey = object.pubKey !== undefined && object.pubKey !== null ? Any.fromPartial(object.pubKey) : undefined; - message.votingPower = object.votingPower !== undefined && object.votingPower !== null ? Long.fromValue(object.votingPower) : Long.ZERO; - message.proposerPriority = object.proposerPriority !== undefined && object.proposerPriority !== null ? Long.fromValue(object.proposerPriority) : Long.ZERO; - return message; - } - -}; - -function createBaseGetBlockByHeightRequest(): GetBlockByHeightRequest { - return { - height: Long.ZERO - }; -} - -export const GetBlockByHeightRequest = { - encode(message: GetBlockByHeightRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.height.isZero()) { - writer.uint32(8).int64(message.height); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetBlockByHeightRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetBlockByHeightRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.height = (reader.int64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GetBlockByHeightRequest { - const message = createBaseGetBlockByHeightRequest(); - message.height = object.height !== undefined && object.height !== null ? Long.fromValue(object.height) : Long.ZERO; - return message; - } - -}; - -function createBaseGetBlockByHeightResponse(): GetBlockByHeightResponse { - return { - blockId: undefined, - block: undefined - }; -} - -export const GetBlockByHeightResponse = { - encode(message: GetBlockByHeightResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.blockId !== undefined) { - BlockID.encode(message.blockId, writer.uint32(10).fork()).ldelim(); - } - - if (message.block !== undefined) { - Block.encode(message.block, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetBlockByHeightResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetBlockByHeightResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.blockId = BlockID.decode(reader, reader.uint32()); - break; - - case 2: - message.block = Block.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GetBlockByHeightResponse { - const message = createBaseGetBlockByHeightResponse(); - message.blockId = object.blockId !== undefined && object.blockId !== null ? BlockID.fromPartial(object.blockId) : undefined; - message.block = object.block !== undefined && object.block !== null ? Block.fromPartial(object.block) : undefined; - return message; - } - -}; - -function createBaseGetLatestBlockRequest(): GetLatestBlockRequest { - return {}; -} - -export const GetLatestBlockRequest = { - encode(_: GetLatestBlockRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetLatestBlockRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetLatestBlockRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): GetLatestBlockRequest { - const message = createBaseGetLatestBlockRequest(); - return message; - } - -}; - -function createBaseGetLatestBlockResponse(): GetLatestBlockResponse { - return { - blockId: undefined, - block: undefined - }; -} - -export const GetLatestBlockResponse = { - encode(message: GetLatestBlockResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.blockId !== undefined) { - BlockID.encode(message.blockId, writer.uint32(10).fork()).ldelim(); - } - - if (message.block !== undefined) { - Block.encode(message.block, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetLatestBlockResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetLatestBlockResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.blockId = BlockID.decode(reader, reader.uint32()); - break; - - case 2: - message.block = Block.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GetLatestBlockResponse { - const message = createBaseGetLatestBlockResponse(); - message.blockId = object.blockId !== undefined && object.blockId !== null ? BlockID.fromPartial(object.blockId) : undefined; - message.block = object.block !== undefined && object.block !== null ? Block.fromPartial(object.block) : undefined; - return message; - } - -}; - -function createBaseGetSyncingRequest(): GetSyncingRequest { - return {}; -} - -export const GetSyncingRequest = { - encode(_: GetSyncingRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetSyncingRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetSyncingRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): GetSyncingRequest { - const message = createBaseGetSyncingRequest(); - return message; - } - -}; - -function createBaseGetSyncingResponse(): GetSyncingResponse { - return { - syncing: false - }; -} - -export const GetSyncingResponse = { - encode(message: GetSyncingResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.syncing === true) { - writer.uint32(8).bool(message.syncing); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetSyncingResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetSyncingResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.syncing = reader.bool(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GetSyncingResponse { - const message = createBaseGetSyncingResponse(); - message.syncing = object.syncing ?? false; - return message; - } - -}; - -function createBaseGetNodeInfoRequest(): GetNodeInfoRequest { - return {}; -} - -export const GetNodeInfoRequest = { - encode(_: GetNodeInfoRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetNodeInfoRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetNodeInfoRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): GetNodeInfoRequest { - const message = createBaseGetNodeInfoRequest(); - return message; - } - -}; - -function createBaseGetNodeInfoResponse(): GetNodeInfoResponse { - return { - nodeInfo: undefined, - applicationVersion: undefined - }; -} - -export const GetNodeInfoResponse = { - encode(message: GetNodeInfoResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.nodeInfo !== undefined) { - NodeInfo.encode(message.nodeInfo, writer.uint32(10).fork()).ldelim(); - } - - if (message.applicationVersion !== undefined) { - VersionInfo.encode(message.applicationVersion, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetNodeInfoResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetNodeInfoResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.nodeInfo = NodeInfo.decode(reader, reader.uint32()); - break; - - case 2: - message.applicationVersion = VersionInfo.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GetNodeInfoResponse { - const message = createBaseGetNodeInfoResponse(); - message.nodeInfo = object.nodeInfo !== undefined && object.nodeInfo !== null ? NodeInfo.fromPartial(object.nodeInfo) : undefined; - message.applicationVersion = object.applicationVersion !== undefined && object.applicationVersion !== null ? VersionInfo.fromPartial(object.applicationVersion) : undefined; - return message; - } - -}; - -function createBaseVersionInfo(): VersionInfo { - return { - name: "", - appName: "", - version: "", - gitCommit: "", - buildTags: "", - goVersion: "", - buildDeps: [], - cosmosSdkVersion: "" - }; -} - -export const VersionInfo = { - encode(message: VersionInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.name !== "") { - writer.uint32(10).string(message.name); - } - - if (message.appName !== "") { - writer.uint32(18).string(message.appName); - } - - if (message.version !== "") { - writer.uint32(26).string(message.version); - } - - if (message.gitCommit !== "") { - writer.uint32(34).string(message.gitCommit); - } - - if (message.buildTags !== "") { - writer.uint32(42).string(message.buildTags); - } - - if (message.goVersion !== "") { - writer.uint32(50).string(message.goVersion); - } - - for (const v of message.buildDeps) { - Module.encode(v!, writer.uint32(58).fork()).ldelim(); - } - - if (message.cosmosSdkVersion !== "") { - writer.uint32(66).string(message.cosmosSdkVersion); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): VersionInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseVersionInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - - case 2: - message.appName = reader.string(); - break; - - case 3: - message.version = reader.string(); - break; - - case 4: - message.gitCommit = reader.string(); - break; - - case 5: - message.buildTags = reader.string(); - break; - - case 6: - message.goVersion = reader.string(); - break; - - case 7: - message.buildDeps.push(Module.decode(reader, reader.uint32())); - break; - - case 8: - message.cosmosSdkVersion = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): VersionInfo { - const message = createBaseVersionInfo(); - message.name = object.name ?? ""; - message.appName = object.appName ?? ""; - message.version = object.version ?? ""; - message.gitCommit = object.gitCommit ?? ""; - message.buildTags = object.buildTags ?? ""; - message.goVersion = object.goVersion ?? ""; - message.buildDeps = object.buildDeps?.map(e => Module.fromPartial(e)) || []; - message.cosmosSdkVersion = object.cosmosSdkVersion ?? ""; - return message; - } - -}; - -function createBaseModule(): Module { - return { - path: "", - version: "", - sum: "" - }; -} - -export const Module = { - encode(message: Module, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.path !== "") { - writer.uint32(10).string(message.path); - } - - if (message.version !== "") { - writer.uint32(18).string(message.version); - } - - if (message.sum !== "") { - writer.uint32(26).string(message.sum); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Module { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseModule(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.path = reader.string(); - break; - - case 2: - message.version = reader.string(); - break; - - case 3: - message.sum = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Module { - const message = createBaseModule(); - message.path = object.path ?? ""; - message.version = object.version ?? ""; - message.sum = object.sum ?? ""; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/base/v1beta1/coin.ts b/packages/codegen/src/cosmos/base/v1beta1/coin.ts deleted file mode 100644 index 53aa3bc8..00000000 --- a/packages/codegen/src/cosmos/base/v1beta1/coin.ts +++ /dev/null @@ -1,266 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * 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. - */ - -export interface Coin { - denom: string; - amount: string; -} -/** - * 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. - */ - -export interface CoinSDKType { - denom: string; - amount: string; -} -/** - * 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. - */ - -export interface DecCoin { - denom: string; - amount: string; -} -/** - * 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. - */ - -export interface DecCoinSDKType { - denom: string; - amount: string; -} -/** IntProto defines a Protobuf wrapper around an Int object. */ - -export interface IntProto { - int: string; -} -/** IntProto defines a Protobuf wrapper around an Int object. */ - -export interface IntProtoSDKType { - int: string; -} -/** DecProto defines a Protobuf wrapper around a Dec object. */ - -export interface DecProto { - dec: string; -} -/** DecProto defines a Protobuf wrapper around a Dec object. */ - -export interface DecProtoSDKType { - dec: string; -} - -function createBaseCoin(): Coin { - return { - denom: "", - amount: "" - }; -} - -export const Coin = { - encode(message: Coin, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.denom !== "") { - writer.uint32(10).string(message.denom); - } - - if (message.amount !== "") { - writer.uint32(18).string(message.amount); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Coin { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCoin(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.denom = reader.string(); - break; - - case 2: - message.amount = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Coin { - const message = createBaseCoin(); - message.denom = object.denom ?? ""; - message.amount = object.amount ?? ""; - return message; - } - -}; - -function createBaseDecCoin(): DecCoin { - return { - denom: "", - amount: "" - }; -} - -export const DecCoin = { - encode(message: DecCoin, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.denom !== "") { - writer.uint32(10).string(message.denom); - } - - if (message.amount !== "") { - writer.uint32(18).string(message.amount); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): DecCoin { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDecCoin(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.denom = reader.string(); - break; - - case 2: - message.amount = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): DecCoin { - const message = createBaseDecCoin(); - message.denom = object.denom ?? ""; - message.amount = object.amount ?? ""; - return message; - } - -}; - -function createBaseIntProto(): IntProto { - return { - int: "" - }; -} - -export const IntProto = { - encode(message: IntProto, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.int !== "") { - writer.uint32(10).string(message.int); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): IntProto { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseIntProto(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.int = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): IntProto { - const message = createBaseIntProto(); - message.int = object.int ?? ""; - return message; - } - -}; - -function createBaseDecProto(): DecProto { - return { - dec: "" - }; -} - -export const DecProto = { - encode(message: DecProto, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.dec !== "") { - writer.uint32(10).string(message.dec); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): DecProto { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDecProto(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.dec = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): DecProto { - const message = createBaseDecProto(); - message.dec = object.dec ?? ""; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/bundle.ts b/packages/codegen/src/cosmos/bundle.ts deleted file mode 100644 index 7f36ca32..00000000 --- a/packages/codegen/src/cosmos/bundle.ts +++ /dev/null @@ -1,399 +0,0 @@ -import * as _3 from "./app/v1alpha1/config"; -import * as _4 from "./app/v1alpha1/module"; -import * as _5 from "./app/v1alpha1/query"; -import * as _6 from "./auth/v1beta1/auth"; -import * as _7 from "./auth/v1beta1/genesis"; -import * as _8 from "./auth/v1beta1/query"; -import * as _9 from "./authz/v1beta1/authz"; -import * as _10 from "./authz/v1beta1/event"; -import * as _11 from "./authz/v1beta1/genesis"; -import * as _12 from "./authz/v1beta1/query"; -import * as _13 from "./authz/v1beta1/tx"; -import * as _14 from "./bank/v1beta1/authz"; -import * as _15 from "./bank/v1beta1/bank"; -import * as _16 from "./bank/v1beta1/genesis"; -import * as _17 from "./bank/v1beta1/query"; -import * as _18 from "./bank/v1beta1/tx"; -import * as _19 from "./base/abci/v1beta1/abci"; -import * as _20 from "./base/kv/v1beta1/kv"; -import * as _21 from "./base/query/v1beta1/pagination"; -import * as _22 from "./base/reflection/v1beta1/reflection"; -import * as _23 from "./base/reflection/v2alpha1/reflection"; -import * as _24 from "./base/snapshots/v1beta1/snapshot"; -import * as _25 from "./base/store/v1beta1/commit_info"; -import * as _26 from "./base/store/v1beta1/listening"; -import * as _27 from "./base/tendermint/v1beta1/query"; -import * as _28 from "./base/v1beta1/coin"; -import * as _29 from "./capability/v1beta1/capability"; -import * as _30 from "./capability/v1beta1/genesis"; -import * as _31 from "./crisis/v1beta1/genesis"; -import * as _32 from "./crisis/v1beta1/tx"; -import * as _33 from "./crypto/ed25519/keys"; -import * as _34 from "./crypto/hd/v1/hd"; -import * as _35 from "./crypto/keyring/v1/record"; -import * as _36 from "./crypto/multisig/keys"; -import * as _37 from "./crypto/secp256k1/keys"; -import * as _38 from "./crypto/secp256r1/keys"; -import * as _39 from "./distribution/v1beta1/distribution"; -import * as _40 from "./distribution/v1beta1/genesis"; -import * as _41 from "./distribution/v1beta1/query"; -import * as _42 from "./distribution/v1beta1/tx"; -import * as _43 from "./evidence/v1beta1/evidence"; -import * as _44 from "./evidence/v1beta1/genesis"; -import * as _45 from "./evidence/v1beta1/query"; -import * as _46 from "./evidence/v1beta1/tx"; -import * as _47 from "./feegrant/v1beta1/feegrant"; -import * as _48 from "./feegrant/v1beta1/genesis"; -import * as _49 from "./feegrant/v1beta1/query"; -import * as _50 from "./feegrant/v1beta1/tx"; -import * as _51 from "./genutil/v1beta1/genesis"; -import * as _52 from "./gov/v1/genesis"; -import * as _53 from "./gov/v1/gov"; -import * as _54 from "./gov/v1/query"; -import * as _55 from "./gov/v1/tx"; -import * as _56 from "./gov/v1beta1/genesis"; -import * as _57 from "./gov/v1beta1/gov"; -import * as _58 from "./gov/v1beta1/query"; -import * as _59 from "./gov/v1beta1/tx"; -import * as _60 from "./group/v1/events"; -import * as _61 from "./group/v1/genesis"; -import * as _62 from "./group/v1/query"; -import * as _63 from "./group/v1/tx"; -import * as _64 from "./group/v1/types"; -import * as _65 from "./mint/v1beta1/genesis"; -import * as _66 from "./mint/v1beta1/mint"; -import * as _67 from "./mint/v1beta1/query"; -import * as _68 from "./msg/v1/msg"; -import * as _69 from "./nft/v1beta1/event"; -import * as _70 from "./nft/v1beta1/genesis"; -import * as _71 from "./nft/v1beta1/nft"; -import * as _72 from "./nft/v1beta1/query"; -import * as _73 from "./nft/v1beta1/tx"; -import * as _74 from "./orm/v1/orm"; -import * as _75 from "./orm/v1alpha1/schema"; -import * as _76 from "./params/v1beta1/params"; -import * as _77 from "./params/v1beta1/query"; -import * as _78 from "./slashing/v1beta1/genesis"; -import * as _79 from "./slashing/v1beta1/query"; -import * as _80 from "./slashing/v1beta1/slashing"; -import * as _81 from "./slashing/v1beta1/tx"; -import * as _82 from "./staking/v1beta1/authz"; -import * as _83 from "./staking/v1beta1/genesis"; -import * as _84 from "./staking/v1beta1/query"; -import * as _85 from "./staking/v1beta1/staking"; -import * as _86 from "./staking/v1beta1/tx"; -import * as _87 from "./tx/signing/v1beta1/signing"; -import * as _88 from "./tx/v1beta1/service"; -import * as _89 from "./tx/v1beta1/tx"; -import * as _90 from "./upgrade/v1beta1/query"; -import * as _91 from "./upgrade/v1beta1/tx"; -import * as _92 from "./upgrade/v1beta1/upgrade"; -import * as _93 from "./vesting/v1beta1/tx"; -import * as _94 from "./vesting/v1beta1/vesting"; -import * as _145 from "./auth/v1beta1/query.lcd"; -import * as _146 from "./authz/v1beta1/query.lcd"; -import * as _147 from "./bank/v1beta1/query.lcd"; -import * as _148 from "./base/tendermint/v1beta1/query.lcd"; -import * as _149 from "./distribution/v1beta1/query.lcd"; -import * as _150 from "./evidence/v1beta1/query.lcd"; -import * as _151 from "./feegrant/v1beta1/query.lcd"; -import * as _152 from "./gov/v1/query.lcd"; -import * as _153 from "./gov/v1beta1/query.lcd"; -import * as _154 from "./group/v1/query.lcd"; -import * as _155 from "./mint/v1beta1/query.lcd"; -import * as _156 from "./nft/v1beta1/query.lcd"; -import * as _157 from "./params/v1beta1/query.lcd"; -import * as _158 from "./slashing/v1beta1/query.lcd"; -import * as _159 from "./staking/v1beta1/query.lcd"; -import * as _160 from "./tx/v1beta1/service.lcd"; -import * as _161 from "./upgrade/v1beta1/query.lcd"; -import * as _162 from "./app/v1alpha1/query.rpc.Query"; -import * as _163 from "./auth/v1beta1/query.rpc.Query"; -import * as _164 from "./authz/v1beta1/query.rpc.Query"; -import * as _165 from "./bank/v1beta1/query.rpc.Query"; -import * as _166 from "./base/tendermint/v1beta1/query.rpc.Service"; -import * as _167 from "./distribution/v1beta1/query.rpc.Query"; -import * as _168 from "./evidence/v1beta1/query.rpc.Query"; -import * as _169 from "./feegrant/v1beta1/query.rpc.Query"; -import * as _170 from "./gov/v1/query.rpc.Query"; -import * as _171 from "./gov/v1beta1/query.rpc.Query"; -import * as _172 from "./group/v1/query.rpc.Query"; -import * as _173 from "./mint/v1beta1/query.rpc.Query"; -import * as _174 from "./nft/v1beta1/query.rpc.Query"; -import * as _175 from "./params/v1beta1/query.rpc.Query"; -import * as _176 from "./slashing/v1beta1/query.rpc.Query"; -import * as _177 from "./staking/v1beta1/query.rpc.Query"; -import * as _178 from "./tx/v1beta1/service.rpc.Service"; -import * as _179 from "./upgrade/v1beta1/query.rpc.Query"; -import * as _180 from "./authz/v1beta1/tx.rpc.msg"; -import * as _181 from "./bank/v1beta1/tx.rpc.msg"; -import * as _182 from "./crisis/v1beta1/tx.rpc.msg"; -import * as _183 from "./distribution/v1beta1/tx.rpc.msg"; -import * as _184 from "./evidence/v1beta1/tx.rpc.msg"; -import * as _185 from "./feegrant/v1beta1/tx.rpc.msg"; -import * as _186 from "./gov/v1/tx.rpc.msg"; -import * as _187 from "./gov/v1beta1/tx.rpc.msg"; -import * as _188 from "./group/v1/tx.rpc.msg"; -import * as _189 from "./nft/v1beta1/tx.rpc.msg"; -import * as _190 from "./slashing/v1beta1/tx.rpc.msg"; -import * as _191 from "./staking/v1beta1/tx.rpc.msg"; -import * as _192 from "./upgrade/v1beta1/tx.rpc.msg"; -import * as _193 from "./vesting/v1beta1/tx.rpc.msg"; -import * as _210 from "./lcd"; -import * as _211 from "./rpc.query"; -import * as _212 from "./rpc.tx"; -export namespace cosmos { - export namespace app { - export const v1alpha1 = { ..._3, - ..._4, - ..._5, - ..._162 - }; - } - export namespace auth { - export const v1beta1 = { ..._6, - ..._7, - ..._8, - ..._145, - ..._163 - }; - } - export namespace authz { - export const v1beta1 = { ..._9, - ..._10, - ..._11, - ..._12, - ..._13, - ..._146, - ..._164, - ..._180 - }; - } - export namespace bank { - export const v1beta1 = { ..._14, - ..._15, - ..._16, - ..._17, - ..._18, - ..._147, - ..._165, - ..._181 - }; - } - export namespace base { - export namespace abci { - export const v1beta1 = { ..._19 - }; - } - export namespace kv { - export const v1beta1 = { ..._20 - }; - } - export namespace query { - export const v1beta1 = { ..._21 - }; - } - export namespace reflection { - export const v1beta1 = { ..._22 - }; - export const v2alpha1 = { ..._23 - }; - } - export namespace snapshots { - export const v1beta1 = { ..._24 - }; - } - export namespace store { - export const v1beta1 = { ..._25, - ..._26 - }; - } - export namespace tendermint { - export const v1beta1 = { ..._27, - ..._148, - ..._166 - }; - } - export const v1beta1 = { ..._28 - }; - } - export namespace capability { - export const v1beta1 = { ..._29, - ..._30 - }; - } - export namespace crisis { - export const v1beta1 = { ..._31, - ..._32, - ..._182 - }; - } - export namespace crypto { - export const ed25519 = { ..._33 - }; - export namespace hd { - export const v1 = { ..._34 - }; - } - export namespace keyring { - export const v1 = { ..._35 - }; - } - export const multisig = { ..._36 - }; - export const secp256k1 = { ..._37 - }; - export const secp256r1 = { ..._38 - }; - } - export namespace distribution { - export const v1beta1 = { ..._39, - ..._40, - ..._41, - ..._42, - ..._149, - ..._167, - ..._183 - }; - } - export namespace evidence { - export const v1beta1 = { ..._43, - ..._44, - ..._45, - ..._46, - ..._150, - ..._168, - ..._184 - }; - } - export namespace feegrant { - export const v1beta1 = { ..._47, - ..._48, - ..._49, - ..._50, - ..._151, - ..._169, - ..._185 - }; - } - export namespace genutil { - export const v1beta1 = { ..._51 - }; - } - export namespace gov { - export const v1 = { ..._52, - ..._53, - ..._54, - ..._55, - ..._152, - ..._170, - ..._186 - }; - export const v1beta1 = { ..._56, - ..._57, - ..._58, - ..._59, - ..._153, - ..._171, - ..._187 - }; - } - export namespace group { - export const v1 = { ..._60, - ..._61, - ..._62, - ..._63, - ..._64, - ..._154, - ..._172, - ..._188 - }; - } - export namespace mint { - export const v1beta1 = { ..._65, - ..._66, - ..._67, - ..._155, - ..._173 - }; - } - export namespace msg { - export const v1 = { ..._68 - }; - } - export namespace nft { - export const v1beta1 = { ..._69, - ..._70, - ..._71, - ..._72, - ..._73, - ..._156, - ..._174, - ..._189 - }; - } - export namespace orm { - export const v1 = { ..._74 - }; - export const v1alpha1 = { ..._75 - }; - } - export namespace params { - export const v1beta1 = { ..._76, - ..._77, - ..._157, - ..._175 - }; - } - export namespace slashing { - export const v1beta1 = { ..._78, - ..._79, - ..._80, - ..._81, - ..._158, - ..._176, - ..._190 - }; - } - export namespace staking { - export const v1beta1 = { ..._82, - ..._83, - ..._84, - ..._85, - ..._86, - ..._159, - ..._177, - ..._191 - }; - } - export namespace tx { - export namespace signing { - export const v1beta1 = { ..._87 - }; - } - export const v1beta1 = { ..._88, - ..._89, - ..._160, - ..._178 - }; - } - export namespace upgrade { - export const v1beta1 = { ..._90, - ..._91, - ..._92, - ..._161, - ..._179, - ..._192 - }; - } - export namespace vesting { - export const v1beta1 = { ..._93, - ..._94, - ..._193 - }; - } - export const ClientFactory = { ..._210, - ..._211, - ..._212 - }; -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/capability/v1beta1/capability.ts b/packages/codegen/src/cosmos/capability/v1beta1/capability.ts deleted file mode 100644 index fe85a141..00000000 --- a/packages/codegen/src/cosmos/capability/v1beta1/capability.ts +++ /dev/null @@ -1,197 +0,0 @@ -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * Capability defines an implementation of an object capability. The index - * provided to a Capability must be globally unique. - */ - -export interface Capability { - index: Long; -} -/** - * Capability defines an implementation of an object capability. The index - * provided to a Capability must be globally unique. - */ - -export interface CapabilitySDKType { - index: Long; -} -/** - * Owner defines a single capability owner. An owner is defined by the name of - * capability and the module name. - */ - -export interface Owner { - module: string; - name: string; -} -/** - * Owner defines a single capability owner. An owner is defined by the name of - * capability and the module name. - */ - -export interface OwnerSDKType { - module: string; - name: string; -} -/** - * CapabilityOwners defines a set of owners of a single Capability. The set of - * owners must be unique. - */ - -export interface CapabilityOwners { - owners: Owner[]; -} -/** - * CapabilityOwners defines a set of owners of a single Capability. The set of - * owners must be unique. - */ - -export interface CapabilityOwnersSDKType { - owners: OwnerSDKType[]; -} - -function createBaseCapability(): Capability { - return { - index: Long.UZERO - }; -} - -export const Capability = { - encode(message: Capability, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.index.isZero()) { - writer.uint32(8).uint64(message.index); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Capability { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCapability(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.index = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Capability { - const message = createBaseCapability(); - message.index = object.index !== undefined && object.index !== null ? Long.fromValue(object.index) : Long.UZERO; - return message; - } - -}; - -function createBaseOwner(): Owner { - return { - module: "", - name: "" - }; -} - -export const Owner = { - encode(message: Owner, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.module !== "") { - writer.uint32(10).string(message.module); - } - - if (message.name !== "") { - writer.uint32(18).string(message.name); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Owner { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseOwner(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.module = reader.string(); - break; - - case 2: - message.name = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Owner { - const message = createBaseOwner(); - message.module = object.module ?? ""; - message.name = object.name ?? ""; - return message; - } - -}; - -function createBaseCapabilityOwners(): CapabilityOwners { - return { - owners: [] - }; -} - -export const CapabilityOwners = { - encode(message: CapabilityOwners, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.owners) { - Owner.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): CapabilityOwners { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCapabilityOwners(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.owners.push(Owner.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): CapabilityOwners { - const message = createBaseCapabilityOwners(); - message.owners = object.owners?.map(e => Owner.fromPartial(e)) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/capability/v1beta1/genesis.ts b/packages/codegen/src/cosmos/capability/v1beta1/genesis.ts deleted file mode 100644 index 28fddb1c..00000000 --- a/packages/codegen/src/cosmos/capability/v1beta1/genesis.ts +++ /dev/null @@ -1,146 +0,0 @@ -import { CapabilityOwners, CapabilityOwnersSDKType } from "./capability"; -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** GenesisOwners defines the capability owners with their corresponding index. */ - -export interface GenesisOwners { - /** index is the index of the capability owner. */ - index: Long; - /** index_owners are the owners at the given index. */ - - indexOwners?: CapabilityOwners; -} -/** GenesisOwners defines the capability owners with their corresponding index. */ - -export interface GenesisOwnersSDKType { - index: Long; - index_owners?: CapabilityOwnersSDKType; -} -/** GenesisState defines the capability module's genesis state. */ - -export interface GenesisState { - /** index is the capability global index. */ - index: Long; - /** - * owners represents a map from index to owners of the capability index - * index key is string to allow amino marshalling. - */ - - owners: GenesisOwners[]; -} -/** GenesisState defines the capability module's genesis state. */ - -export interface GenesisStateSDKType { - index: Long; - owners: GenesisOwnersSDKType[]; -} - -function createBaseGenesisOwners(): GenesisOwners { - return { - index: Long.UZERO, - indexOwners: undefined - }; -} - -export const GenesisOwners = { - encode(message: GenesisOwners, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.index.isZero()) { - writer.uint32(8).uint64(message.index); - } - - if (message.indexOwners !== undefined) { - CapabilityOwners.encode(message.indexOwners, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisOwners { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisOwners(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.index = (reader.uint64() as Long); - break; - - case 2: - message.indexOwners = CapabilityOwners.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenesisOwners { - const message = createBaseGenesisOwners(); - message.index = object.index !== undefined && object.index !== null ? Long.fromValue(object.index) : Long.UZERO; - message.indexOwners = object.indexOwners !== undefined && object.indexOwners !== null ? CapabilityOwners.fromPartial(object.indexOwners) : undefined; - return message; - } - -}; - -function createBaseGenesisState(): GenesisState { - return { - index: Long.UZERO, - owners: [] - }; -} - -export const GenesisState = { - encode(message: GenesisState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.index.isZero()) { - writer.uint32(8).uint64(message.index); - } - - for (const v of message.owners) { - GenesisOwners.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.index = (reader.uint64() as Long); - break; - - case 2: - message.owners.push(GenesisOwners.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenesisState { - const message = createBaseGenesisState(); - message.index = object.index !== undefined && object.index !== null ? Long.fromValue(object.index) : Long.UZERO; - message.owners = object.owners?.map(e => GenesisOwners.fromPartial(e)) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/crisis/v1beta1/genesis.ts b/packages/codegen/src/cosmos/crisis/v1beta1/genesis.ts deleted file mode 100644 index 4b2cf5df..00000000 --- a/packages/codegen/src/cosmos/crisis/v1beta1/genesis.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** GenesisState defines the crisis module's genesis state. */ - -export interface GenesisState { - /** - * constant_fee is the fee used to verify the invariant in the crisis - * module. - */ - constantFee?: Coin; -} -/** GenesisState defines the crisis module's genesis state. */ - -export interface GenesisStateSDKType { - constant_fee?: CoinSDKType; -} - -function createBaseGenesisState(): GenesisState { - return { - constantFee: undefined - }; -} - -export const GenesisState = { - encode(message: GenesisState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.constantFee !== undefined) { - Coin.encode(message.constantFee, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 3: - message.constantFee = Coin.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenesisState { - const message = createBaseGenesisState(); - message.constantFee = object.constantFee !== undefined && object.constantFee !== null ? Coin.fromPartial(object.constantFee) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/crisis/v1beta1/tx.rpc.msg.ts b/packages/codegen/src/cosmos/crisis/v1beta1/tx.rpc.msg.ts deleted file mode 100644 index cd2c0387..00000000 --- a/packages/codegen/src/cosmos/crisis/v1beta1/tx.rpc.msg.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { MsgVerifyInvariant, MsgVerifyInvariantResponse } from "./tx"; -/** Msg defines the bank Msg service. */ - -export interface Msg { - /** VerifyInvariant defines a method to verify a particular invariance. */ - verifyInvariant(request: MsgVerifyInvariant): Promise; -} -export class MsgClientImpl implements Msg { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.verifyInvariant = this.verifyInvariant.bind(this); - } - - verifyInvariant(request: MsgVerifyInvariant): Promise { - const data = MsgVerifyInvariant.encode(request).finish(); - const promise = this.rpc.request("cosmos.crisis.v1beta1.Msg", "VerifyInvariant", data); - return promise.then(data => MsgVerifyInvariantResponse.decode(new _m0.Reader(data))); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/crisis/v1beta1/tx.ts b/packages/codegen/src/cosmos/crisis/v1beta1/tx.ts deleted file mode 100644 index 14e3dca6..00000000 --- a/packages/codegen/src/cosmos/crisis/v1beta1/tx.ts +++ /dev/null @@ -1,121 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** MsgVerifyInvariant represents a message to verify a particular invariance. */ - -export interface MsgVerifyInvariant { - sender: string; - invariantModuleName: string; - invariantRoute: string; -} -/** MsgVerifyInvariant represents a message to verify a particular invariance. */ - -export interface MsgVerifyInvariantSDKType { - sender: string; - invariant_module_name: string; - invariant_route: string; -} -/** MsgVerifyInvariantResponse defines the Msg/VerifyInvariant response type. */ - -export interface MsgVerifyInvariantResponse {} -/** MsgVerifyInvariantResponse defines the Msg/VerifyInvariant response type. */ - -export interface MsgVerifyInvariantResponseSDKType {} - -function createBaseMsgVerifyInvariant(): MsgVerifyInvariant { - return { - sender: "", - invariantModuleName: "", - invariantRoute: "" - }; -} - -export const MsgVerifyInvariant = { - encode(message: MsgVerifyInvariant, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.sender !== "") { - writer.uint32(10).string(message.sender); - } - - if (message.invariantModuleName !== "") { - writer.uint32(18).string(message.invariantModuleName); - } - - if (message.invariantRoute !== "") { - writer.uint32(26).string(message.invariantRoute); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgVerifyInvariant { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgVerifyInvariant(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.sender = reader.string(); - break; - - case 2: - message.invariantModuleName = reader.string(); - break; - - case 3: - message.invariantRoute = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgVerifyInvariant { - const message = createBaseMsgVerifyInvariant(); - message.sender = object.sender ?? ""; - message.invariantModuleName = object.invariantModuleName ?? ""; - message.invariantRoute = object.invariantRoute ?? ""; - return message; - } - -}; - -function createBaseMsgVerifyInvariantResponse(): MsgVerifyInvariantResponse { - return {}; -} - -export const MsgVerifyInvariantResponse = { - encode(_: MsgVerifyInvariantResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgVerifyInvariantResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgVerifyInvariantResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgVerifyInvariantResponse { - const message = createBaseMsgVerifyInvariantResponse(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/crypto/ed25519/keys.ts b/packages/codegen/src/cosmos/crypto/ed25519/keys.ts deleted file mode 100644 index cfa59313..00000000 --- a/packages/codegen/src/cosmos/crypto/ed25519/keys.ts +++ /dev/null @@ -1,130 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * 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. - */ - -export interface PubKey { - key: Uint8Array; -} -/** - * 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. - */ - -export interface PubKeySDKType { - key: Uint8Array; -} -/** - * Deprecated: PrivKey defines a ed25519 private key. - * NOTE: ed25519 keys must not be used in SDK apps except in a tendermint validator context. - */ - -export interface PrivKey { - key: Uint8Array; -} -/** - * Deprecated: PrivKey defines a ed25519 private key. - * NOTE: ed25519 keys must not be used in SDK apps except in a tendermint validator context. - */ - -export interface PrivKeySDKType { - key: Uint8Array; -} - -function createBasePubKey(): PubKey { - return { - key: new Uint8Array() - }; -} - -export const PubKey = { - encode(message: PubKey, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PubKey { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePubKey(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.key = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PubKey { - const message = createBasePubKey(); - message.key = object.key ?? new Uint8Array(); - return message; - } - -}; - -function createBasePrivKey(): PrivKey { - return { - key: new Uint8Array() - }; -} - -export const PrivKey = { - encode(message: PrivKey, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PrivKey { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePrivKey(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.key = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PrivKey { - const message = createBasePrivKey(); - message.key = object.key ?? new Uint8Array(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/crypto/hd/v1/hd.ts b/packages/codegen/src/cosmos/crypto/hd/v1/hd.ts deleted file mode 100644 index 5fad0324..00000000 --- a/packages/codegen/src/cosmos/crypto/hd/v1/hd.ts +++ /dev/null @@ -1,117 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** BIP44Params is used as path field in ledger item in Record. */ - -export interface BIP44Params { - /** purpose is a constant set to 44' (or 0x8000002C) following the BIP43 recommendation */ - purpose: number; - /** coin_type is a constant that improves privacy */ - - coinType: number; - /** account splits the key space into independent user identities */ - - account: number; - /** - * change is a constant used for public derivation. Constant 0 is used for external chain and constant 1 for internal - * chain. - */ - - change: boolean; - /** address_index is used as child index in BIP32 derivation */ - - addressIndex: number; -} -/** BIP44Params is used as path field in ledger item in Record. */ - -export interface BIP44ParamsSDKType { - purpose: number; - coin_type: number; - account: number; - change: boolean; - address_index: number; -} - -function createBaseBIP44Params(): BIP44Params { - return { - purpose: 0, - coinType: 0, - account: 0, - change: false, - addressIndex: 0 - }; -} - -export const BIP44Params = { - encode(message: BIP44Params, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.purpose !== 0) { - writer.uint32(8).uint32(message.purpose); - } - - if (message.coinType !== 0) { - writer.uint32(16).uint32(message.coinType); - } - - if (message.account !== 0) { - writer.uint32(24).uint32(message.account); - } - - if (message.change === true) { - writer.uint32(32).bool(message.change); - } - - if (message.addressIndex !== 0) { - writer.uint32(40).uint32(message.addressIndex); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): BIP44Params { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBIP44Params(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.purpose = reader.uint32(); - break; - - case 2: - message.coinType = reader.uint32(); - break; - - case 3: - message.account = reader.uint32(); - break; - - case 4: - message.change = reader.bool(); - break; - - case 5: - message.addressIndex = reader.uint32(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): BIP44Params { - const message = createBaseBIP44Params(); - message.purpose = object.purpose ?? 0; - message.coinType = object.coinType ?? 0; - message.account = object.account ?? 0; - message.change = object.change ?? false; - message.addressIndex = object.addressIndex ?? 0; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/crypto/keyring/v1/record.ts b/packages/codegen/src/cosmos/crypto/keyring/v1/record.ts deleted file mode 100644 index 773df1d6..00000000 --- a/packages/codegen/src/cosmos/crypto/keyring/v1/record.ts +++ /dev/null @@ -1,338 +0,0 @@ -import { Any, AnySDKType } from "../../../../google/protobuf/any"; -import { BIP44Params, BIP44ParamsSDKType } from "../../hd/v1/hd"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** Record is used for representing a key in the keyring. */ - -export interface Record { - /** name represents a name of Record */ - name: string; - /** pub_key represents a public key in any format */ - - pubKey?: Any; - /** local stores the public information about a locally stored key */ - - local?: Record_Local; - /** ledger stores the public information about a Ledger key */ - - ledger?: Record_Ledger; - /** Multi does not store any information. */ - - multi?: Record_Multi; - /** Offline does not store any information. */ - - offline?: Record_Offline; -} -/** Record is used for representing a key in the keyring. */ - -export interface RecordSDKType { - name: string; - pub_key?: AnySDKType; - local?: Record_LocalSDKType; - ledger?: Record_LedgerSDKType; - multi?: Record_MultiSDKType; - offline?: Record_OfflineSDKType; -} -/** - * Item is a keyring item stored in a keyring backend. - * Local item - */ - -export interface Record_Local { - privKey?: Any; - privKeyType: string; -} -/** - * Item is a keyring item stored in a keyring backend. - * Local item - */ - -export interface Record_LocalSDKType { - priv_key?: AnySDKType; - priv_key_type: string; -} -/** Ledger item */ - -export interface Record_Ledger { - path?: BIP44Params; -} -/** Ledger item */ - -export interface Record_LedgerSDKType { - path?: BIP44ParamsSDKType; -} -/** Multi item */ - -export interface Record_Multi {} -/** Multi item */ - -export interface Record_MultiSDKType {} -/** Offline item */ - -export interface Record_Offline {} -/** Offline item */ - -export interface Record_OfflineSDKType {} - -function createBaseRecord(): Record { - return { - name: "", - pubKey: undefined, - local: undefined, - ledger: undefined, - multi: undefined, - offline: undefined - }; -} - -export const Record = { - encode(message: Record, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.name !== "") { - writer.uint32(10).string(message.name); - } - - if (message.pubKey !== undefined) { - Any.encode(message.pubKey, writer.uint32(18).fork()).ldelim(); - } - - if (message.local !== undefined) { - Record_Local.encode(message.local, writer.uint32(26).fork()).ldelim(); - } - - if (message.ledger !== undefined) { - Record_Ledger.encode(message.ledger, writer.uint32(34).fork()).ldelim(); - } - - if (message.multi !== undefined) { - Record_Multi.encode(message.multi, writer.uint32(42).fork()).ldelim(); - } - - if (message.offline !== undefined) { - Record_Offline.encode(message.offline, writer.uint32(50).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Record { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRecord(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - - case 2: - message.pubKey = Any.decode(reader, reader.uint32()); - break; - - case 3: - message.local = Record_Local.decode(reader, reader.uint32()); - break; - - case 4: - message.ledger = Record_Ledger.decode(reader, reader.uint32()); - break; - - case 5: - message.multi = Record_Multi.decode(reader, reader.uint32()); - break; - - case 6: - message.offline = Record_Offline.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Record { - const message = createBaseRecord(); - message.name = object.name ?? ""; - message.pubKey = object.pubKey !== undefined && object.pubKey !== null ? Any.fromPartial(object.pubKey) : undefined; - message.local = object.local !== undefined && object.local !== null ? Record_Local.fromPartial(object.local) : undefined; - message.ledger = object.ledger !== undefined && object.ledger !== null ? Record_Ledger.fromPartial(object.ledger) : undefined; - message.multi = object.multi !== undefined && object.multi !== null ? Record_Multi.fromPartial(object.multi) : undefined; - message.offline = object.offline !== undefined && object.offline !== null ? Record_Offline.fromPartial(object.offline) : undefined; - return message; - } - -}; - -function createBaseRecord_Local(): Record_Local { - return { - privKey: undefined, - privKeyType: "" - }; -} - -export const Record_Local = { - encode(message: Record_Local, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.privKey !== undefined) { - Any.encode(message.privKey, writer.uint32(10).fork()).ldelim(); - } - - if (message.privKeyType !== "") { - writer.uint32(18).string(message.privKeyType); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Record_Local { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRecord_Local(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.privKey = Any.decode(reader, reader.uint32()); - break; - - case 2: - message.privKeyType = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Record_Local { - const message = createBaseRecord_Local(); - message.privKey = object.privKey !== undefined && object.privKey !== null ? Any.fromPartial(object.privKey) : undefined; - message.privKeyType = object.privKeyType ?? ""; - return message; - } - -}; - -function createBaseRecord_Ledger(): Record_Ledger { - return { - path: undefined - }; -} - -export const Record_Ledger = { - encode(message: Record_Ledger, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.path !== undefined) { - BIP44Params.encode(message.path, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Record_Ledger { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRecord_Ledger(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.path = BIP44Params.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Record_Ledger { - const message = createBaseRecord_Ledger(); - message.path = object.path !== undefined && object.path !== null ? BIP44Params.fromPartial(object.path) : undefined; - return message; - } - -}; - -function createBaseRecord_Multi(): Record_Multi { - return {}; -} - -export const Record_Multi = { - encode(_: Record_Multi, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Record_Multi { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRecord_Multi(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): Record_Multi { - const message = createBaseRecord_Multi(); - return message; - } - -}; - -function createBaseRecord_Offline(): Record_Offline { - return {}; -} - -export const Record_Offline = { - encode(_: Record_Offline, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Record_Offline { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRecord_Offline(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): Record_Offline { - const message = createBaseRecord_Offline(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/crypto/multisig/keys.ts b/packages/codegen/src/cosmos/crypto/multisig/keys.ts deleted file mode 100644 index 7a63e069..00000000 --- a/packages/codegen/src/cosmos/crypto/multisig/keys.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * LegacyAminoPubKey specifies a public key type - * which nests multiple public keys and a threshold, - * it uses legacy amino address rules. - */ - -export interface LegacyAminoPubKey { - threshold: number; - publicKeys: Any[]; -} -/** - * LegacyAminoPubKey specifies a public key type - * which nests multiple public keys and a threshold, - * it uses legacy amino address rules. - */ - -export interface LegacyAminoPubKeySDKType { - threshold: number; - public_keys: AnySDKType[]; -} - -function createBaseLegacyAminoPubKey(): LegacyAminoPubKey { - return { - threshold: 0, - publicKeys: [] - }; -} - -export const LegacyAminoPubKey = { - encode(message: LegacyAminoPubKey, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.threshold !== 0) { - writer.uint32(8).uint32(message.threshold); - } - - for (const v of message.publicKeys) { - Any.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): LegacyAminoPubKey { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseLegacyAminoPubKey(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.threshold = reader.uint32(); - break; - - case 2: - message.publicKeys.push(Any.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): LegacyAminoPubKey { - const message = createBaseLegacyAminoPubKey(); - message.threshold = object.threshold ?? 0; - message.publicKeys = object.publicKeys?.map(e => Any.fromPartial(e)) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/crypto/multisig/v1beta1/multisig.ts b/packages/codegen/src/cosmos/crypto/multisig/v1beta1/multisig.ts deleted file mode 100644 index 3a6e570c..00000000 --- a/packages/codegen/src/cosmos/crypto/multisig/v1beta1/multisig.ts +++ /dev/null @@ -1,142 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** - * 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. - */ - -export interface MultiSignature { - signatures: Uint8Array[]; -} -/** - * 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. - */ - -export interface MultiSignatureSDKType { - signatures: Uint8Array[]; -} -/** - * 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. - */ - -export interface CompactBitArray { - extraBitsStored: number; - elems: Uint8Array; -} -/** - * 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. - */ - -export interface CompactBitArraySDKType { - extra_bits_stored: number; - elems: Uint8Array; -} - -function createBaseMultiSignature(): MultiSignature { - return { - signatures: [] - }; -} - -export const MultiSignature = { - encode(message: MultiSignature, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.signatures) { - writer.uint32(10).bytes(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MultiSignature { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMultiSignature(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.signatures.push(reader.bytes()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MultiSignature { - const message = createBaseMultiSignature(); - message.signatures = object.signatures?.map(e => e) || []; - return message; - } - -}; - -function createBaseCompactBitArray(): CompactBitArray { - return { - extraBitsStored: 0, - elems: new Uint8Array() - }; -} - -export const CompactBitArray = { - encode(message: CompactBitArray, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.extraBitsStored !== 0) { - writer.uint32(8).uint32(message.extraBitsStored); - } - - if (message.elems.length !== 0) { - writer.uint32(18).bytes(message.elems); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): CompactBitArray { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCompactBitArray(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.extraBitsStored = reader.uint32(); - break; - - case 2: - message.elems = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): CompactBitArray { - const message = createBaseCompactBitArray(); - message.extraBitsStored = object.extraBitsStored ?? 0; - message.elems = object.elems ?? new Uint8Array(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/crypto/secp256k1/keys.ts b/packages/codegen/src/cosmos/crypto/secp256k1/keys.ts deleted file mode 100644 index 576b262f..00000000 --- a/packages/codegen/src/cosmos/crypto/secp256k1/keys.ts +++ /dev/null @@ -1,124 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * 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. - */ - -export interface PubKey { - key: Uint8Array; -} -/** - * 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. - */ - -export interface PubKeySDKType { - key: Uint8Array; -} -/** PrivKey defines a secp256k1 private key. */ - -export interface PrivKey { - key: Uint8Array; -} -/** PrivKey defines a secp256k1 private key. */ - -export interface PrivKeySDKType { - key: Uint8Array; -} - -function createBasePubKey(): PubKey { - return { - key: new Uint8Array() - }; -} - -export const PubKey = { - encode(message: PubKey, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PubKey { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePubKey(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.key = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PubKey { - const message = createBasePubKey(); - message.key = object.key ?? new Uint8Array(); - return message; - } - -}; - -function createBasePrivKey(): PrivKey { - return { - key: new Uint8Array() - }; -} - -export const PrivKey = { - encode(message: PrivKey, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PrivKey { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePrivKey(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.key = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PrivKey { - const message = createBasePrivKey(); - message.key = object.key ?? new Uint8Array(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/crypto/secp256r1/keys.ts b/packages/codegen/src/cosmos/crypto/secp256r1/keys.ts deleted file mode 100644 index ffb3240e..00000000 --- a/packages/codegen/src/cosmos/crypto/secp256r1/keys.ts +++ /dev/null @@ -1,117 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** PubKey defines a secp256r1 ECDSA public key. */ - -export interface 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 - */ - key: Uint8Array; -} -/** PubKey defines a secp256r1 ECDSA public key. */ - -export interface PubKeySDKType { - key: Uint8Array; -} -/** PrivKey defines a secp256r1 ECDSA private key. */ - -export interface PrivKey { - /** secret number serialized using big-endian encoding */ - secret: Uint8Array; -} -/** PrivKey defines a secp256r1 ECDSA private key. */ - -export interface PrivKeySDKType { - secret: Uint8Array; -} - -function createBasePubKey(): PubKey { - return { - key: new Uint8Array() - }; -} - -export const PubKey = { - encode(message: PubKey, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PubKey { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePubKey(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.key = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PubKey { - const message = createBasePubKey(); - message.key = object.key ?? new Uint8Array(); - return message; - } - -}; - -function createBasePrivKey(): PrivKey { - return { - secret: new Uint8Array() - }; -} - -export const PrivKey = { - encode(message: PrivKey, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.secret.length !== 0) { - writer.uint32(10).bytes(message.secret); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PrivKey { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePrivKey(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.secret = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PrivKey { - const message = createBasePrivKey(); - message.secret = object.secret ?? new Uint8Array(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/distribution/v1beta1/distribution.ts b/packages/codegen/src/cosmos/distribution/v1beta1/distribution.ts deleted file mode 100644 index 8cdec795..00000000 --- a/packages/codegen/src/cosmos/distribution/v1beta1/distribution.ts +++ /dev/null @@ -1,945 +0,0 @@ -import { DecCoin, DecCoinSDKType, Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** Params defines the set of params for the distribution module. */ - -export interface Params { - communityTax: string; - baseProposerReward: string; - bonusProposerReward: string; - withdrawAddrEnabled: boolean; -} -/** Params defines the set of params for the distribution module. */ - -export interface ParamsSDKType { - community_tax: string; - base_proposer_reward: string; - bonus_proposer_reward: string; - withdraw_addr_enabled: boolean; -} -/** - * 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 - */ - -export interface ValidatorHistoricalRewards { - cumulativeRewardRatio: DecCoin[]; - referenceCount: number; -} -/** - * 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 - */ - -export interface ValidatorHistoricalRewardsSDKType { - cumulative_reward_ratio: DecCoinSDKType[]; - reference_count: number; -} -/** - * 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. - */ - -export interface ValidatorCurrentRewards { - rewards: DecCoin[]; - period: Long; -} -/** - * 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. - */ - -export interface ValidatorCurrentRewardsSDKType { - rewards: DecCoinSDKType[]; - period: Long; -} -/** - * ValidatorAccumulatedCommission represents accumulated commission - * for a validator kept as a running counter, can be withdrawn at any time. - */ - -export interface ValidatorAccumulatedCommission { - commission: DecCoin[]; -} -/** - * ValidatorAccumulatedCommission represents accumulated commission - * for a validator kept as a running counter, can be withdrawn at any time. - */ - -export interface ValidatorAccumulatedCommissionSDKType { - commission: DecCoinSDKType[]; -} -/** - * ValidatorOutstandingRewards represents outstanding (un-withdrawn) rewards - * for a validator inexpensive to track, allows simple sanity checks. - */ - -export interface ValidatorOutstandingRewards { - rewards: DecCoin[]; -} -/** - * ValidatorOutstandingRewards represents outstanding (un-withdrawn) rewards - * for a validator inexpensive to track, allows simple sanity checks. - */ - -export interface ValidatorOutstandingRewardsSDKType { - rewards: DecCoinSDKType[]; -} -/** - * 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. - */ - -export interface ValidatorSlashEvent { - validatorPeriod: Long; - fraction: string; -} -/** - * 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. - */ - -export interface ValidatorSlashEventSDKType { - validator_period: Long; - fraction: string; -} -/** ValidatorSlashEvents is a collection of ValidatorSlashEvent messages. */ - -export interface ValidatorSlashEvents { - validatorSlashEvents: ValidatorSlashEvent[]; -} -/** ValidatorSlashEvents is a collection of ValidatorSlashEvent messages. */ - -export interface ValidatorSlashEventsSDKType { - validator_slash_events: ValidatorSlashEventSDKType[]; -} -/** FeePool is the global fee pool for distribution. */ - -export interface FeePool { - communityPool: DecCoin[]; -} -/** FeePool is the global fee pool for distribution. */ - -export interface FeePoolSDKType { - community_pool: DecCoinSDKType[]; -} -/** - * CommunityPoolSpendProposal details a proposal for use of community funds, - * together with how many coins are proposed to be spent, and to which - * recipient account. - */ - -export interface CommunityPoolSpendProposal { - title: string; - description: string; - recipient: string; - amount: Coin[]; -} -/** - * CommunityPoolSpendProposal details a proposal for use of community funds, - * together with how many coins are proposed to be spent, and to which - * recipient account. - */ - -export interface CommunityPoolSpendProposalSDKType { - title: string; - description: string; - recipient: string; - amount: CoinSDKType[]; -} -/** - * 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. - */ - -export interface DelegatorStartingInfo { - previousPeriod: Long; - stake: string; - height: Long; -} -/** - * 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. - */ - -export interface DelegatorStartingInfoSDKType { - previous_period: Long; - stake: string; - height: Long; -} -/** - * DelegationDelegatorReward represents the properties - * of a delegator's delegation reward. - */ - -export interface DelegationDelegatorReward { - validatorAddress: string; - reward: DecCoin[]; -} -/** - * DelegationDelegatorReward represents the properties - * of a delegator's delegation reward. - */ - -export interface DelegationDelegatorRewardSDKType { - validator_address: string; - reward: DecCoinSDKType[]; -} -/** - * CommunityPoolSpendProposalWithDeposit defines a CommunityPoolSpendProposal - * with a deposit - */ - -export interface CommunityPoolSpendProposalWithDeposit { - title: string; - description: string; - recipient: string; - amount: string; - deposit: string; -} -/** - * CommunityPoolSpendProposalWithDeposit defines a CommunityPoolSpendProposal - * with a deposit - */ - -export interface CommunityPoolSpendProposalWithDepositSDKType { - title: string; - description: string; - recipient: string; - amount: string; - deposit: string; -} - -function createBaseParams(): Params { - return { - communityTax: "", - baseProposerReward: "", - bonusProposerReward: "", - withdrawAddrEnabled: false - }; -} - -export const Params = { - encode(message: Params, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.communityTax !== "") { - writer.uint32(10).string(message.communityTax); - } - - if (message.baseProposerReward !== "") { - writer.uint32(18).string(message.baseProposerReward); - } - - if (message.bonusProposerReward !== "") { - writer.uint32(26).string(message.bonusProposerReward); - } - - if (message.withdrawAddrEnabled === true) { - writer.uint32(32).bool(message.withdrawAddrEnabled); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Params { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseParams(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.communityTax = reader.string(); - break; - - case 2: - message.baseProposerReward = reader.string(); - break; - - case 3: - message.bonusProposerReward = reader.string(); - break; - - case 4: - message.withdrawAddrEnabled = reader.bool(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Params { - const message = createBaseParams(); - message.communityTax = object.communityTax ?? ""; - message.baseProposerReward = object.baseProposerReward ?? ""; - message.bonusProposerReward = object.bonusProposerReward ?? ""; - message.withdrawAddrEnabled = object.withdrawAddrEnabled ?? false; - return message; - } - -}; - -function createBaseValidatorHistoricalRewards(): ValidatorHistoricalRewards { - return { - cumulativeRewardRatio: [], - referenceCount: 0 - }; -} - -export const ValidatorHistoricalRewards = { - encode(message: ValidatorHistoricalRewards, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.cumulativeRewardRatio) { - DecCoin.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.referenceCount !== 0) { - writer.uint32(16).uint32(message.referenceCount); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorHistoricalRewards { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidatorHistoricalRewards(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.cumulativeRewardRatio.push(DecCoin.decode(reader, reader.uint32())); - break; - - case 2: - message.referenceCount = reader.uint32(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ValidatorHistoricalRewards { - const message = createBaseValidatorHistoricalRewards(); - message.cumulativeRewardRatio = object.cumulativeRewardRatio?.map(e => DecCoin.fromPartial(e)) || []; - message.referenceCount = object.referenceCount ?? 0; - return message; - } - -}; - -function createBaseValidatorCurrentRewards(): ValidatorCurrentRewards { - return { - rewards: [], - period: Long.UZERO - }; -} - -export const ValidatorCurrentRewards = { - encode(message: ValidatorCurrentRewards, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.rewards) { - DecCoin.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (!message.period.isZero()) { - writer.uint32(16).uint64(message.period); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorCurrentRewards { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidatorCurrentRewards(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.rewards.push(DecCoin.decode(reader, reader.uint32())); - break; - - case 2: - message.period = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ValidatorCurrentRewards { - const message = createBaseValidatorCurrentRewards(); - message.rewards = object.rewards?.map(e => DecCoin.fromPartial(e)) || []; - message.period = object.period !== undefined && object.period !== null ? Long.fromValue(object.period) : Long.UZERO; - return message; - } - -}; - -function createBaseValidatorAccumulatedCommission(): ValidatorAccumulatedCommission { - return { - commission: [] - }; -} - -export const ValidatorAccumulatedCommission = { - encode(message: ValidatorAccumulatedCommission, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.commission) { - DecCoin.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorAccumulatedCommission { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidatorAccumulatedCommission(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.commission.push(DecCoin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ValidatorAccumulatedCommission { - const message = createBaseValidatorAccumulatedCommission(); - message.commission = object.commission?.map(e => DecCoin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseValidatorOutstandingRewards(): ValidatorOutstandingRewards { - return { - rewards: [] - }; -} - -export const ValidatorOutstandingRewards = { - encode(message: ValidatorOutstandingRewards, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.rewards) { - DecCoin.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorOutstandingRewards { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidatorOutstandingRewards(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.rewards.push(DecCoin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ValidatorOutstandingRewards { - const message = createBaseValidatorOutstandingRewards(); - message.rewards = object.rewards?.map(e => DecCoin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseValidatorSlashEvent(): ValidatorSlashEvent { - return { - validatorPeriod: Long.UZERO, - fraction: "" - }; -} - -export const ValidatorSlashEvent = { - encode(message: ValidatorSlashEvent, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.validatorPeriod.isZero()) { - writer.uint32(8).uint64(message.validatorPeriod); - } - - if (message.fraction !== "") { - writer.uint32(18).string(message.fraction); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorSlashEvent { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidatorSlashEvent(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.validatorPeriod = (reader.uint64() as Long); - break; - - case 2: - message.fraction = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ValidatorSlashEvent { - const message = createBaseValidatorSlashEvent(); - message.validatorPeriod = object.validatorPeriod !== undefined && object.validatorPeriod !== null ? Long.fromValue(object.validatorPeriod) : Long.UZERO; - message.fraction = object.fraction ?? ""; - return message; - } - -}; - -function createBaseValidatorSlashEvents(): ValidatorSlashEvents { - return { - validatorSlashEvents: [] - }; -} - -export const ValidatorSlashEvents = { - encode(message: ValidatorSlashEvents, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.validatorSlashEvents) { - ValidatorSlashEvent.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorSlashEvents { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidatorSlashEvents(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.validatorSlashEvents.push(ValidatorSlashEvent.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ValidatorSlashEvents { - const message = createBaseValidatorSlashEvents(); - message.validatorSlashEvents = object.validatorSlashEvents?.map(e => ValidatorSlashEvent.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseFeePool(): FeePool { - return { - communityPool: [] - }; -} - -export const FeePool = { - encode(message: FeePool, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.communityPool) { - DecCoin.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): FeePool { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseFeePool(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.communityPool.push(DecCoin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): FeePool { - const message = createBaseFeePool(); - message.communityPool = object.communityPool?.map(e => DecCoin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseCommunityPoolSpendProposal(): CommunityPoolSpendProposal { - return { - title: "", - description: "", - recipient: "", - amount: [] - }; -} - -export const CommunityPoolSpendProposal = { - encode(message: CommunityPoolSpendProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.title !== "") { - writer.uint32(10).string(message.title); - } - - if (message.description !== "") { - writer.uint32(18).string(message.description); - } - - if (message.recipient !== "") { - writer.uint32(26).string(message.recipient); - } - - for (const v of message.amount) { - Coin.encode(v!, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): CommunityPoolSpendProposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCommunityPoolSpendProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.title = reader.string(); - break; - - case 2: - message.description = reader.string(); - break; - - case 3: - message.recipient = reader.string(); - break; - - case 4: - message.amount.push(Coin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): CommunityPoolSpendProposal { - const message = createBaseCommunityPoolSpendProposal(); - message.title = object.title ?? ""; - message.description = object.description ?? ""; - message.recipient = object.recipient ?? ""; - message.amount = object.amount?.map(e => Coin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseDelegatorStartingInfo(): DelegatorStartingInfo { - return { - previousPeriod: Long.UZERO, - stake: "", - height: Long.UZERO - }; -} - -export const DelegatorStartingInfo = { - encode(message: DelegatorStartingInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.previousPeriod.isZero()) { - writer.uint32(8).uint64(message.previousPeriod); - } - - if (message.stake !== "") { - writer.uint32(18).string(message.stake); - } - - if (!message.height.isZero()) { - writer.uint32(24).uint64(message.height); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): DelegatorStartingInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDelegatorStartingInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.previousPeriod = (reader.uint64() as Long); - break; - - case 2: - message.stake = reader.string(); - break; - - case 3: - message.height = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): DelegatorStartingInfo { - const message = createBaseDelegatorStartingInfo(); - message.previousPeriod = object.previousPeriod !== undefined && object.previousPeriod !== null ? Long.fromValue(object.previousPeriod) : Long.UZERO; - message.stake = object.stake ?? ""; - message.height = object.height !== undefined && object.height !== null ? Long.fromValue(object.height) : Long.UZERO; - return message; - } - -}; - -function createBaseDelegationDelegatorReward(): DelegationDelegatorReward { - return { - validatorAddress: "", - reward: [] - }; -} - -export const DelegationDelegatorReward = { - encode(message: DelegationDelegatorReward, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.validatorAddress !== "") { - writer.uint32(10).string(message.validatorAddress); - } - - for (const v of message.reward) { - DecCoin.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): DelegationDelegatorReward { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDelegationDelegatorReward(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.validatorAddress = reader.string(); - break; - - case 2: - message.reward.push(DecCoin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): DelegationDelegatorReward { - const message = createBaseDelegationDelegatorReward(); - message.validatorAddress = object.validatorAddress ?? ""; - message.reward = object.reward?.map(e => DecCoin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseCommunityPoolSpendProposalWithDeposit(): CommunityPoolSpendProposalWithDeposit { - return { - title: "", - description: "", - recipient: "", - amount: "", - deposit: "" - }; -} - -export const CommunityPoolSpendProposalWithDeposit = { - encode(message: CommunityPoolSpendProposalWithDeposit, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.title !== "") { - writer.uint32(10).string(message.title); - } - - if (message.description !== "") { - writer.uint32(18).string(message.description); - } - - if (message.recipient !== "") { - writer.uint32(26).string(message.recipient); - } - - if (message.amount !== "") { - writer.uint32(34).string(message.amount); - } - - if (message.deposit !== "") { - writer.uint32(42).string(message.deposit); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): CommunityPoolSpendProposalWithDeposit { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCommunityPoolSpendProposalWithDeposit(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.title = reader.string(); - break; - - case 2: - message.description = reader.string(); - break; - - case 3: - message.recipient = reader.string(); - break; - - case 4: - message.amount = reader.string(); - break; - - case 5: - message.deposit = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): CommunityPoolSpendProposalWithDeposit { - const message = createBaseCommunityPoolSpendProposalWithDeposit(); - message.title = object.title ?? ""; - message.description = object.description ?? ""; - message.recipient = object.recipient ?? ""; - message.amount = object.amount ?? ""; - message.deposit = object.deposit ?? ""; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/distribution/v1beta1/genesis.ts b/packages/codegen/src/cosmos/distribution/v1beta1/genesis.ts deleted file mode 100644 index 2e911ec1..00000000 --- a/packages/codegen/src/cosmos/distribution/v1beta1/genesis.ts +++ /dev/null @@ -1,752 +0,0 @@ -import { DecCoin, DecCoinSDKType } from "../../base/v1beta1/coin"; -import { ValidatorAccumulatedCommission, ValidatorAccumulatedCommissionSDKType, ValidatorHistoricalRewards, ValidatorHistoricalRewardsSDKType, ValidatorCurrentRewards, ValidatorCurrentRewardsSDKType, DelegatorStartingInfo, DelegatorStartingInfoSDKType, ValidatorSlashEvent, ValidatorSlashEventSDKType, Params, ParamsSDKType, FeePool, FeePoolSDKType } from "./distribution"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** - * 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. - */ - -export interface DelegatorWithdrawInfo { - /** delegator_address is the address of the delegator. */ - delegatorAddress: string; - /** withdraw_address is the address to withdraw the delegation rewards to. */ - - withdrawAddress: string; -} -/** - * 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. - */ - -export interface DelegatorWithdrawInfoSDKType { - delegator_address: string; - withdraw_address: string; -} -/** ValidatorOutstandingRewardsRecord is used for import/export via genesis json. */ - -export interface ValidatorOutstandingRewardsRecord { - /** validator_address is the address of the validator. */ - validatorAddress: string; - /** outstanding_rewards represents the oustanding rewards of a validator. */ - - outstandingRewards: DecCoin[]; -} -/** ValidatorOutstandingRewardsRecord is used for import/export via genesis json. */ - -export interface ValidatorOutstandingRewardsRecordSDKType { - validator_address: string; - outstanding_rewards: DecCoinSDKType[]; -} -/** - * ValidatorAccumulatedCommissionRecord is used for import / export via genesis - * json. - */ - -export interface ValidatorAccumulatedCommissionRecord { - /** validator_address is the address of the validator. */ - validatorAddress: string; - /** accumulated is the accumulated commission of a validator. */ - - accumulated?: ValidatorAccumulatedCommission; -} -/** - * ValidatorAccumulatedCommissionRecord is used for import / export via genesis - * json. - */ - -export interface ValidatorAccumulatedCommissionRecordSDKType { - validator_address: string; - accumulated?: ValidatorAccumulatedCommissionSDKType; -} -/** - * ValidatorHistoricalRewardsRecord is used for import / export via genesis - * json. - */ - -export interface ValidatorHistoricalRewardsRecord { - /** validator_address is the address of the validator. */ - validatorAddress: string; - /** period defines the period the historical rewards apply to. */ - - period: Long; - /** rewards defines the historical rewards of a validator. */ - - rewards?: ValidatorHistoricalRewards; -} -/** - * ValidatorHistoricalRewardsRecord is used for import / export via genesis - * json. - */ - -export interface ValidatorHistoricalRewardsRecordSDKType { - validator_address: string; - period: Long; - rewards?: ValidatorHistoricalRewardsSDKType; -} -/** ValidatorCurrentRewardsRecord is used for import / export via genesis json. */ - -export interface ValidatorCurrentRewardsRecord { - /** validator_address is the address of the validator. */ - validatorAddress: string; - /** rewards defines the current rewards of a validator. */ - - rewards?: ValidatorCurrentRewards; -} -/** ValidatorCurrentRewardsRecord is used for import / export via genesis json. */ - -export interface ValidatorCurrentRewardsRecordSDKType { - validator_address: string; - rewards?: ValidatorCurrentRewardsSDKType; -} -/** DelegatorStartingInfoRecord used for import / export via genesis json. */ - -export interface DelegatorStartingInfoRecord { - /** delegator_address is the address of the delegator. */ - delegatorAddress: string; - /** validator_address is the address of the validator. */ - - validatorAddress: string; - /** starting_info defines the starting info of a delegator. */ - - startingInfo?: DelegatorStartingInfo; -} -/** DelegatorStartingInfoRecord used for import / export via genesis json. */ - -export interface DelegatorStartingInfoRecordSDKType { - delegator_address: string; - validator_address: string; - starting_info?: DelegatorStartingInfoSDKType; -} -/** ValidatorSlashEventRecord is used for import / export via genesis json. */ - -export interface ValidatorSlashEventRecord { - /** validator_address is the address of the validator. */ - validatorAddress: string; - /** height defines the block height at which the slash event occured. */ - - height: Long; - /** period is the period of the slash event. */ - - period: Long; - /** validator_slash_event describes the slash event. */ - - validatorSlashEvent?: ValidatorSlashEvent; -} -/** ValidatorSlashEventRecord is used for import / export via genesis json. */ - -export interface ValidatorSlashEventRecordSDKType { - validator_address: string; - height: Long; - period: Long; - validator_slash_event?: ValidatorSlashEventSDKType; -} -/** GenesisState defines the distribution module's genesis state. */ - -export interface GenesisState { - /** params defines all the paramaters of the module. */ - params?: Params; - /** fee_pool defines the fee pool at genesis. */ - - feePool?: FeePool; - /** fee_pool defines the delegator withdraw infos at genesis. */ - - delegatorWithdrawInfos: DelegatorWithdrawInfo[]; - /** fee_pool defines the previous proposer at genesis. */ - - previousProposer: string; - /** fee_pool defines the outstanding rewards of all validators at genesis. */ - - outstandingRewards: ValidatorOutstandingRewardsRecord[]; - /** fee_pool defines the accumulated commisions of all validators at genesis. */ - - validatorAccumulatedCommissions: ValidatorAccumulatedCommissionRecord[]; - /** fee_pool defines the historical rewards of all validators at genesis. */ - - validatorHistoricalRewards: ValidatorHistoricalRewardsRecord[]; - /** fee_pool defines the current rewards of all validators at genesis. */ - - validatorCurrentRewards: ValidatorCurrentRewardsRecord[]; - /** fee_pool defines the delegator starting infos at genesis. */ - - delegatorStartingInfos: DelegatorStartingInfoRecord[]; - /** fee_pool defines the validator slash events at genesis. */ - - validatorSlashEvents: ValidatorSlashEventRecord[]; -} -/** GenesisState defines the distribution module's genesis state. */ - -export interface GenesisStateSDKType { - params?: ParamsSDKType; - fee_pool?: FeePoolSDKType; - delegator_withdraw_infos: DelegatorWithdrawInfoSDKType[]; - previous_proposer: string; - outstanding_rewards: ValidatorOutstandingRewardsRecordSDKType[]; - validator_accumulated_commissions: ValidatorAccumulatedCommissionRecordSDKType[]; - validator_historical_rewards: ValidatorHistoricalRewardsRecordSDKType[]; - validator_current_rewards: ValidatorCurrentRewardsRecordSDKType[]; - delegator_starting_infos: DelegatorStartingInfoRecordSDKType[]; - validator_slash_events: ValidatorSlashEventRecordSDKType[]; -} - -function createBaseDelegatorWithdrawInfo(): DelegatorWithdrawInfo { - return { - delegatorAddress: "", - withdrawAddress: "" - }; -} - -export const DelegatorWithdrawInfo = { - encode(message: DelegatorWithdrawInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); - } - - if (message.withdrawAddress !== "") { - writer.uint32(18).string(message.withdrawAddress); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): DelegatorWithdrawInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDelegatorWithdrawInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegatorAddress = reader.string(); - break; - - case 2: - message.withdrawAddress = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): DelegatorWithdrawInfo { - const message = createBaseDelegatorWithdrawInfo(); - message.delegatorAddress = object.delegatorAddress ?? ""; - message.withdrawAddress = object.withdrawAddress ?? ""; - return message; - } - -}; - -function createBaseValidatorOutstandingRewardsRecord(): ValidatorOutstandingRewardsRecord { - return { - validatorAddress: "", - outstandingRewards: [] - }; -} - -export const ValidatorOutstandingRewardsRecord = { - encode(message: ValidatorOutstandingRewardsRecord, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.validatorAddress !== "") { - writer.uint32(10).string(message.validatorAddress); - } - - for (const v of message.outstandingRewards) { - DecCoin.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorOutstandingRewardsRecord { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidatorOutstandingRewardsRecord(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.validatorAddress = reader.string(); - break; - - case 2: - message.outstandingRewards.push(DecCoin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ValidatorOutstandingRewardsRecord { - const message = createBaseValidatorOutstandingRewardsRecord(); - message.validatorAddress = object.validatorAddress ?? ""; - message.outstandingRewards = object.outstandingRewards?.map(e => DecCoin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseValidatorAccumulatedCommissionRecord(): ValidatorAccumulatedCommissionRecord { - return { - validatorAddress: "", - accumulated: undefined - }; -} - -export const ValidatorAccumulatedCommissionRecord = { - encode(message: ValidatorAccumulatedCommissionRecord, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.validatorAddress !== "") { - writer.uint32(10).string(message.validatorAddress); - } - - if (message.accumulated !== undefined) { - ValidatorAccumulatedCommission.encode(message.accumulated, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorAccumulatedCommissionRecord { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidatorAccumulatedCommissionRecord(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.validatorAddress = reader.string(); - break; - - case 2: - message.accumulated = ValidatorAccumulatedCommission.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ValidatorAccumulatedCommissionRecord { - const message = createBaseValidatorAccumulatedCommissionRecord(); - message.validatorAddress = object.validatorAddress ?? ""; - message.accumulated = object.accumulated !== undefined && object.accumulated !== null ? ValidatorAccumulatedCommission.fromPartial(object.accumulated) : undefined; - return message; - } - -}; - -function createBaseValidatorHistoricalRewardsRecord(): ValidatorHistoricalRewardsRecord { - return { - validatorAddress: "", - period: Long.UZERO, - rewards: undefined - }; -} - -export const ValidatorHistoricalRewardsRecord = { - encode(message: ValidatorHistoricalRewardsRecord, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.validatorAddress !== "") { - writer.uint32(10).string(message.validatorAddress); - } - - if (!message.period.isZero()) { - writer.uint32(16).uint64(message.period); - } - - if (message.rewards !== undefined) { - ValidatorHistoricalRewards.encode(message.rewards, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorHistoricalRewardsRecord { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidatorHistoricalRewardsRecord(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.validatorAddress = reader.string(); - break; - - case 2: - message.period = (reader.uint64() as Long); - break; - - case 3: - message.rewards = ValidatorHistoricalRewards.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ValidatorHistoricalRewardsRecord { - const message = createBaseValidatorHistoricalRewardsRecord(); - message.validatorAddress = object.validatorAddress ?? ""; - message.period = object.period !== undefined && object.period !== null ? Long.fromValue(object.period) : Long.UZERO; - message.rewards = object.rewards !== undefined && object.rewards !== null ? ValidatorHistoricalRewards.fromPartial(object.rewards) : undefined; - return message; - } - -}; - -function createBaseValidatorCurrentRewardsRecord(): ValidatorCurrentRewardsRecord { - return { - validatorAddress: "", - rewards: undefined - }; -} - -export const ValidatorCurrentRewardsRecord = { - encode(message: ValidatorCurrentRewardsRecord, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.validatorAddress !== "") { - writer.uint32(10).string(message.validatorAddress); - } - - if (message.rewards !== undefined) { - ValidatorCurrentRewards.encode(message.rewards, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorCurrentRewardsRecord { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidatorCurrentRewardsRecord(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.validatorAddress = reader.string(); - break; - - case 2: - message.rewards = ValidatorCurrentRewards.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ValidatorCurrentRewardsRecord { - const message = createBaseValidatorCurrentRewardsRecord(); - message.validatorAddress = object.validatorAddress ?? ""; - message.rewards = object.rewards !== undefined && object.rewards !== null ? ValidatorCurrentRewards.fromPartial(object.rewards) : undefined; - return message; - } - -}; - -function createBaseDelegatorStartingInfoRecord(): DelegatorStartingInfoRecord { - return { - delegatorAddress: "", - validatorAddress: "", - startingInfo: undefined - }; -} - -export const DelegatorStartingInfoRecord = { - encode(message: DelegatorStartingInfoRecord, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); - } - - if (message.validatorAddress !== "") { - writer.uint32(18).string(message.validatorAddress); - } - - if (message.startingInfo !== undefined) { - DelegatorStartingInfo.encode(message.startingInfo, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): DelegatorStartingInfoRecord { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDelegatorStartingInfoRecord(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegatorAddress = reader.string(); - break; - - case 2: - message.validatorAddress = reader.string(); - break; - - case 3: - message.startingInfo = DelegatorStartingInfo.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): DelegatorStartingInfoRecord { - const message = createBaseDelegatorStartingInfoRecord(); - message.delegatorAddress = object.delegatorAddress ?? ""; - message.validatorAddress = object.validatorAddress ?? ""; - message.startingInfo = object.startingInfo !== undefined && object.startingInfo !== null ? DelegatorStartingInfo.fromPartial(object.startingInfo) : undefined; - return message; - } - -}; - -function createBaseValidatorSlashEventRecord(): ValidatorSlashEventRecord { - return { - validatorAddress: "", - height: Long.UZERO, - period: Long.UZERO, - validatorSlashEvent: undefined - }; -} - -export const ValidatorSlashEventRecord = { - encode(message: ValidatorSlashEventRecord, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.validatorAddress !== "") { - writer.uint32(10).string(message.validatorAddress); - } - - if (!message.height.isZero()) { - writer.uint32(16).uint64(message.height); - } - - if (!message.period.isZero()) { - writer.uint32(24).uint64(message.period); - } - - if (message.validatorSlashEvent !== undefined) { - ValidatorSlashEvent.encode(message.validatorSlashEvent, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorSlashEventRecord { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidatorSlashEventRecord(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.validatorAddress = reader.string(); - break; - - case 2: - message.height = (reader.uint64() as Long); - break; - - case 3: - message.period = (reader.uint64() as Long); - break; - - case 4: - message.validatorSlashEvent = ValidatorSlashEvent.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ValidatorSlashEventRecord { - const message = createBaseValidatorSlashEventRecord(); - message.validatorAddress = object.validatorAddress ?? ""; - message.height = object.height !== undefined && object.height !== null ? Long.fromValue(object.height) : Long.UZERO; - message.period = object.period !== undefined && object.period !== null ? Long.fromValue(object.period) : Long.UZERO; - message.validatorSlashEvent = object.validatorSlashEvent !== undefined && object.validatorSlashEvent !== null ? ValidatorSlashEvent.fromPartial(object.validatorSlashEvent) : undefined; - return message; - } - -}; - -function createBaseGenesisState(): GenesisState { - return { - params: undefined, - feePool: undefined, - delegatorWithdrawInfos: [], - previousProposer: "", - outstandingRewards: [], - validatorAccumulatedCommissions: [], - validatorHistoricalRewards: [], - validatorCurrentRewards: [], - delegatorStartingInfos: [], - validatorSlashEvents: [] - }; -} - -export const GenesisState = { - encode(message: GenesisState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.params !== undefined) { - Params.encode(message.params, writer.uint32(10).fork()).ldelim(); - } - - if (message.feePool !== undefined) { - FeePool.encode(message.feePool, writer.uint32(18).fork()).ldelim(); - } - - for (const v of message.delegatorWithdrawInfos) { - DelegatorWithdrawInfo.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - if (message.previousProposer !== "") { - writer.uint32(34).string(message.previousProposer); - } - - for (const v of message.outstandingRewards) { - ValidatorOutstandingRewardsRecord.encode(v!, writer.uint32(42).fork()).ldelim(); - } - - for (const v of message.validatorAccumulatedCommissions) { - ValidatorAccumulatedCommissionRecord.encode(v!, writer.uint32(50).fork()).ldelim(); - } - - for (const v of message.validatorHistoricalRewards) { - ValidatorHistoricalRewardsRecord.encode(v!, writer.uint32(58).fork()).ldelim(); - } - - for (const v of message.validatorCurrentRewards) { - ValidatorCurrentRewardsRecord.encode(v!, writer.uint32(66).fork()).ldelim(); - } - - for (const v of message.delegatorStartingInfos) { - DelegatorStartingInfoRecord.encode(v!, writer.uint32(74).fork()).ldelim(); - } - - for (const v of message.validatorSlashEvents) { - ValidatorSlashEventRecord.encode(v!, writer.uint32(82).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.params = Params.decode(reader, reader.uint32()); - break; - - case 2: - message.feePool = FeePool.decode(reader, reader.uint32()); - break; - - case 3: - message.delegatorWithdrawInfos.push(DelegatorWithdrawInfo.decode(reader, reader.uint32())); - break; - - case 4: - message.previousProposer = reader.string(); - break; - - case 5: - message.outstandingRewards.push(ValidatorOutstandingRewardsRecord.decode(reader, reader.uint32())); - break; - - case 6: - message.validatorAccumulatedCommissions.push(ValidatorAccumulatedCommissionRecord.decode(reader, reader.uint32())); - break; - - case 7: - message.validatorHistoricalRewards.push(ValidatorHistoricalRewardsRecord.decode(reader, reader.uint32())); - break; - - case 8: - message.validatorCurrentRewards.push(ValidatorCurrentRewardsRecord.decode(reader, reader.uint32())); - break; - - case 9: - message.delegatorStartingInfos.push(DelegatorStartingInfoRecord.decode(reader, reader.uint32())); - break; - - case 10: - message.validatorSlashEvents.push(ValidatorSlashEventRecord.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenesisState { - const message = createBaseGenesisState(); - message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined; - message.feePool = object.feePool !== undefined && object.feePool !== null ? FeePool.fromPartial(object.feePool) : undefined; - message.delegatorWithdrawInfos = object.delegatorWithdrawInfos?.map(e => DelegatorWithdrawInfo.fromPartial(e)) || []; - message.previousProposer = object.previousProposer ?? ""; - message.outstandingRewards = object.outstandingRewards?.map(e => ValidatorOutstandingRewardsRecord.fromPartial(e)) || []; - message.validatorAccumulatedCommissions = object.validatorAccumulatedCommissions?.map(e => ValidatorAccumulatedCommissionRecord.fromPartial(e)) || []; - message.validatorHistoricalRewards = object.validatorHistoricalRewards?.map(e => ValidatorHistoricalRewardsRecord.fromPartial(e)) || []; - message.validatorCurrentRewards = object.validatorCurrentRewards?.map(e => ValidatorCurrentRewardsRecord.fromPartial(e)) || []; - message.delegatorStartingInfos = object.delegatorStartingInfos?.map(e => DelegatorStartingInfoRecord.fromPartial(e)) || []; - message.validatorSlashEvents = object.validatorSlashEvents?.map(e => ValidatorSlashEventRecord.fromPartial(e)) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/distribution/v1beta1/query.lcd.ts b/packages/codegen/src/cosmos/distribution/v1beta1/query.lcd.ts deleted file mode 100644 index 2ad66901..00000000 --- a/packages/codegen/src/cosmos/distribution/v1beta1/query.lcd.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { setPaginationParams } from "../../../helpers"; -import { LCDClient } from "@osmonauts/lcd"; -import { QueryParamsRequest, QueryParamsResponseSDKType, QueryValidatorOutstandingRewardsRequest, QueryValidatorOutstandingRewardsResponseSDKType, QueryValidatorCommissionRequest, QueryValidatorCommissionResponseSDKType, QueryValidatorSlashesRequest, QueryValidatorSlashesResponseSDKType, QueryDelegationRewardsRequest, QueryDelegationRewardsResponseSDKType, QueryDelegationTotalRewardsRequest, QueryDelegationTotalRewardsResponseSDKType, QueryDelegatorValidatorsRequest, QueryDelegatorValidatorsResponseSDKType, QueryDelegatorWithdrawAddressRequest, QueryDelegatorWithdrawAddressResponseSDKType, QueryCommunityPoolRequest, QueryCommunityPoolResponseSDKType } from "./query"; -export class LCDQueryClient { - req: LCDClient; - - constructor({ - requestClient - }: { - requestClient: LCDClient; - }) { - this.req = requestClient; - this.params = this.params.bind(this); - this.validatorOutstandingRewards = this.validatorOutstandingRewards.bind(this); - this.validatorCommission = this.validatorCommission.bind(this); - this.validatorSlashes = this.validatorSlashes.bind(this); - this.delegationRewards = this.delegationRewards.bind(this); - this.delegationTotalRewards = this.delegationTotalRewards.bind(this); - this.delegatorValidators = this.delegatorValidators.bind(this); - this.delegatorWithdrawAddress = this.delegatorWithdrawAddress.bind(this); - this.communityPool = this.communityPool.bind(this); - } - /* Params queries params of the distribution module. */ - - - async params(_params: QueryParamsRequest = {}): Promise { - const endpoint = `cosmos/distribution/v1beta1/params`; - return await this.req.get(endpoint); - } - /* ValidatorOutstandingRewards queries rewards of a validator address. */ - - - async validatorOutstandingRewards(params: QueryValidatorOutstandingRewardsRequest): Promise { - const endpoint = `cosmos/distribution/v1beta1/validators/${params.validatorAddress}/outstanding_rewards`; - return await this.req.get(endpoint); - } - /* ValidatorCommission queries accumulated commission for a validator. */ - - - async validatorCommission(params: QueryValidatorCommissionRequest): Promise { - const endpoint = `cosmos/distribution/v1beta1/validators/${params.validatorAddress}/commission`; - return await this.req.get(endpoint); - } - /* ValidatorSlashes queries slash events of a validator. */ - - - async validatorSlashes(params: QueryValidatorSlashesRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.startingHeight !== "undefined") { - options.params.starting_height = params.startingHeight; - } - - if (typeof params?.endingHeight !== "undefined") { - options.params.ending_height = params.endingHeight; - } - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/distribution/v1beta1/validators/${params.validatorAddress}/slashes`; - return await this.req.get(endpoint, options); - } - /* DelegationRewards queries the total rewards accrued by a delegation. */ - - - async delegationRewards(params: QueryDelegationRewardsRequest): Promise { - const endpoint = `cosmos/distribution/v1beta1/delegators/${params.delegatorAddress}/rewards/${params.validatorAddress}`; - return await this.req.get(endpoint); - } - /* DelegationTotalRewards queries the total rewards accrued by a each - validator. */ - - - async delegationTotalRewards(params: QueryDelegationTotalRewardsRequest): Promise { - const endpoint = `cosmos/distribution/v1beta1/delegators/${params.delegatorAddress}/rewards`; - return await this.req.get(endpoint); - } - /* DelegatorValidators queries the validators of a delegator. */ - - - async delegatorValidators(params: QueryDelegatorValidatorsRequest): Promise { - const endpoint = `cosmos/distribution/v1beta1/delegators/${params.delegatorAddress}/validators`; - return await this.req.get(endpoint); - } - /* DelegatorWithdrawAddress queries withdraw address of a delegator. */ - - - async delegatorWithdrawAddress(params: QueryDelegatorWithdrawAddressRequest): Promise { - const endpoint = `cosmos/distribution/v1beta1/delegators/${params.delegatorAddress}/withdraw_address`; - return await this.req.get(endpoint); - } - /* CommunityPool queries the community pool coins. */ - - - async communityPool(_params: QueryCommunityPoolRequest = {}): Promise { - const endpoint = `cosmos/distribution/v1beta1/community_pool`; - return await this.req.get(endpoint); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/distribution/v1beta1/query.rpc.Query.ts b/packages/codegen/src/cosmos/distribution/v1beta1/query.rpc.Query.ts deleted file mode 100644 index 539882a1..00000000 --- a/packages/codegen/src/cosmos/distribution/v1beta1/query.rpc.Query.ts +++ /dev/null @@ -1,150 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { QueryParamsRequest, QueryParamsResponse, QueryValidatorOutstandingRewardsRequest, QueryValidatorOutstandingRewardsResponse, QueryValidatorCommissionRequest, QueryValidatorCommissionResponse, QueryValidatorSlashesRequest, QueryValidatorSlashesResponse, QueryDelegationRewardsRequest, QueryDelegationRewardsResponse, QueryDelegationTotalRewardsRequest, QueryDelegationTotalRewardsResponse, QueryDelegatorValidatorsRequest, QueryDelegatorValidatorsResponse, QueryDelegatorWithdrawAddressRequest, QueryDelegatorWithdrawAddressResponse, QueryCommunityPoolRequest, QueryCommunityPoolResponse } from "./query"; -/** Query defines the gRPC querier service for distribution module. */ - -export interface Query { - /** Params queries params of the distribution module. */ - params(request?: QueryParamsRequest): Promise; - /** ValidatorOutstandingRewards queries rewards of a validator address. */ - - validatorOutstandingRewards(request: QueryValidatorOutstandingRewardsRequest): Promise; - /** ValidatorCommission queries accumulated commission for a validator. */ - - validatorCommission(request: QueryValidatorCommissionRequest): Promise; - /** ValidatorSlashes queries slash events of a validator. */ - - validatorSlashes(request: QueryValidatorSlashesRequest): Promise; - /** DelegationRewards queries the total rewards accrued by a delegation. */ - - delegationRewards(request: QueryDelegationRewardsRequest): Promise; - /** - * DelegationTotalRewards queries the total rewards accrued by a each - * validator. - */ - - delegationTotalRewards(request: QueryDelegationTotalRewardsRequest): Promise; - /** DelegatorValidators queries the validators of a delegator. */ - - delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise; - /** DelegatorWithdrawAddress queries withdraw address of a delegator. */ - - delegatorWithdrawAddress(request: QueryDelegatorWithdrawAddressRequest): Promise; - /** CommunityPool queries the community pool coins. */ - - communityPool(request?: QueryCommunityPoolRequest): Promise; -} -export class QueryClientImpl implements Query { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.params = this.params.bind(this); - this.validatorOutstandingRewards = this.validatorOutstandingRewards.bind(this); - this.validatorCommission = this.validatorCommission.bind(this); - this.validatorSlashes = this.validatorSlashes.bind(this); - this.delegationRewards = this.delegationRewards.bind(this); - this.delegationTotalRewards = this.delegationTotalRewards.bind(this); - this.delegatorValidators = this.delegatorValidators.bind(this); - this.delegatorWithdrawAddress = this.delegatorWithdrawAddress.bind(this); - this.communityPool = this.communityPool.bind(this); - } - - params(request: QueryParamsRequest = {}): Promise { - const data = QueryParamsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "Params", data); - return promise.then(data => QueryParamsResponse.decode(new _m0.Reader(data))); - } - - validatorOutstandingRewards(request: QueryValidatorOutstandingRewardsRequest): Promise { - const data = QueryValidatorOutstandingRewardsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "ValidatorOutstandingRewards", data); - return promise.then(data => QueryValidatorOutstandingRewardsResponse.decode(new _m0.Reader(data))); - } - - validatorCommission(request: QueryValidatorCommissionRequest): Promise { - const data = QueryValidatorCommissionRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "ValidatorCommission", data); - return promise.then(data => QueryValidatorCommissionResponse.decode(new _m0.Reader(data))); - } - - validatorSlashes(request: QueryValidatorSlashesRequest): Promise { - const data = QueryValidatorSlashesRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "ValidatorSlashes", data); - return promise.then(data => QueryValidatorSlashesResponse.decode(new _m0.Reader(data))); - } - - delegationRewards(request: QueryDelegationRewardsRequest): Promise { - const data = QueryDelegationRewardsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "DelegationRewards", data); - return promise.then(data => QueryDelegationRewardsResponse.decode(new _m0.Reader(data))); - } - - delegationTotalRewards(request: QueryDelegationTotalRewardsRequest): Promise { - const data = QueryDelegationTotalRewardsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "DelegationTotalRewards", data); - return promise.then(data => QueryDelegationTotalRewardsResponse.decode(new _m0.Reader(data))); - } - - delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise { - const data = QueryDelegatorValidatorsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "DelegatorValidators", data); - return promise.then(data => QueryDelegatorValidatorsResponse.decode(new _m0.Reader(data))); - } - - delegatorWithdrawAddress(request: QueryDelegatorWithdrawAddressRequest): Promise { - const data = QueryDelegatorWithdrawAddressRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "DelegatorWithdrawAddress", data); - return promise.then(data => QueryDelegatorWithdrawAddressResponse.decode(new _m0.Reader(data))); - } - - communityPool(request: QueryCommunityPoolRequest = {}): Promise { - const data = QueryCommunityPoolRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "CommunityPool", data); - return promise.then(data => QueryCommunityPoolResponse.decode(new _m0.Reader(data))); - } - -} -export const createRpcQueryExtension = (base: QueryClient) => { - const rpc = createProtobufRpcClient(base); - const queryService = new QueryClientImpl(rpc); - return { - params(request?: QueryParamsRequest): Promise { - return queryService.params(request); - }, - - validatorOutstandingRewards(request: QueryValidatorOutstandingRewardsRequest): Promise { - return queryService.validatorOutstandingRewards(request); - }, - - validatorCommission(request: QueryValidatorCommissionRequest): Promise { - return queryService.validatorCommission(request); - }, - - validatorSlashes(request: QueryValidatorSlashesRequest): Promise { - return queryService.validatorSlashes(request); - }, - - delegationRewards(request: QueryDelegationRewardsRequest): Promise { - return queryService.delegationRewards(request); - }, - - delegationTotalRewards(request: QueryDelegationTotalRewardsRequest): Promise { - return queryService.delegationTotalRewards(request); - }, - - delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise { - return queryService.delegatorValidators(request); - }, - - delegatorWithdrawAddress(request: QueryDelegatorWithdrawAddressRequest): Promise { - return queryService.delegatorWithdrawAddress(request); - }, - - communityPool(request?: QueryCommunityPoolRequest): Promise { - return queryService.communityPool(request); - } - - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/distribution/v1beta1/query.ts b/packages/codegen/src/cosmos/distribution/v1beta1/query.ts deleted file mode 100644 index a67d26ea..00000000 --- a/packages/codegen/src/cosmos/distribution/v1beta1/query.ts +++ /dev/null @@ -1,1160 +0,0 @@ -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { Params, ParamsSDKType, ValidatorOutstandingRewards, ValidatorOutstandingRewardsSDKType, ValidatorAccumulatedCommission, ValidatorAccumulatedCommissionSDKType, ValidatorSlashEvent, ValidatorSlashEventSDKType, DelegationDelegatorReward, DelegationDelegatorRewardSDKType } from "./distribution"; -import { DecCoin, DecCoinSDKType } from "../../base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ - -export interface QueryParamsRequest {} -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ - -export interface QueryParamsRequestSDKType {} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ - -export interface QueryParamsResponse { - /** params defines the parameters of the module. */ - params?: Params; -} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ - -export interface QueryParamsResponseSDKType { - params?: ParamsSDKType; -} -/** - * QueryValidatorOutstandingRewardsRequest is the request type for the - * Query/ValidatorOutstandingRewards RPC method. - */ - -export interface QueryValidatorOutstandingRewardsRequest { - /** validator_address defines the validator address to query for. */ - validatorAddress: string; -} -/** - * QueryValidatorOutstandingRewardsRequest is the request type for the - * Query/ValidatorOutstandingRewards RPC method. - */ - -export interface QueryValidatorOutstandingRewardsRequestSDKType { - validator_address: string; -} -/** - * QueryValidatorOutstandingRewardsResponse is the response type for the - * Query/ValidatorOutstandingRewards RPC method. - */ - -export interface QueryValidatorOutstandingRewardsResponse { - rewards?: ValidatorOutstandingRewards; -} -/** - * QueryValidatorOutstandingRewardsResponse is the response type for the - * Query/ValidatorOutstandingRewards RPC method. - */ - -export interface QueryValidatorOutstandingRewardsResponseSDKType { - rewards?: ValidatorOutstandingRewardsSDKType; -} -/** - * QueryValidatorCommissionRequest is the request type for the - * Query/ValidatorCommission RPC method - */ - -export interface QueryValidatorCommissionRequest { - /** validator_address defines the validator address to query for. */ - validatorAddress: string; -} -/** - * QueryValidatorCommissionRequest is the request type for the - * Query/ValidatorCommission RPC method - */ - -export interface QueryValidatorCommissionRequestSDKType { - validator_address: string; -} -/** - * QueryValidatorCommissionResponse is the response type for the - * Query/ValidatorCommission RPC method - */ - -export interface QueryValidatorCommissionResponse { - /** commission defines the commision the validator received. */ - commission?: ValidatorAccumulatedCommission; -} -/** - * QueryValidatorCommissionResponse is the response type for the - * Query/ValidatorCommission RPC method - */ - -export interface QueryValidatorCommissionResponseSDKType { - commission?: ValidatorAccumulatedCommissionSDKType; -} -/** - * QueryValidatorSlashesRequest is the request type for the - * Query/ValidatorSlashes RPC method - */ - -export interface QueryValidatorSlashesRequest { - /** validator_address defines the validator address to query for. */ - validatorAddress: string; - /** starting_height defines the optional starting height to query the slashes. */ - - startingHeight: Long; - /** starting_height defines the optional ending height to query the slashes. */ - - endingHeight: Long; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** - * QueryValidatorSlashesRequest is the request type for the - * Query/ValidatorSlashes RPC method - */ - -export interface QueryValidatorSlashesRequestSDKType { - validator_address: string; - starting_height: Long; - ending_height: Long; - pagination?: PageRequestSDKType; -} -/** - * QueryValidatorSlashesResponse is the response type for the - * Query/ValidatorSlashes RPC method. - */ - -export interface QueryValidatorSlashesResponse { - /** slashes defines the slashes the validator received. */ - slashes: ValidatorSlashEvent[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** - * QueryValidatorSlashesResponse is the response type for the - * Query/ValidatorSlashes RPC method. - */ - -export interface QueryValidatorSlashesResponseSDKType { - slashes: ValidatorSlashEventSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * QueryDelegationRewardsRequest is the request type for the - * Query/DelegationRewards RPC method. - */ - -export interface QueryDelegationRewardsRequest { - /** delegator_address defines the delegator address to query for. */ - delegatorAddress: string; - /** validator_address defines the validator address to query for. */ - - validatorAddress: string; -} -/** - * QueryDelegationRewardsRequest is the request type for the - * Query/DelegationRewards RPC method. - */ - -export interface QueryDelegationRewardsRequestSDKType { - delegator_address: string; - validator_address: string; -} -/** - * QueryDelegationRewardsResponse is the response type for the - * Query/DelegationRewards RPC method. - */ - -export interface QueryDelegationRewardsResponse { - /** rewards defines the rewards accrued by a delegation. */ - rewards: DecCoin[]; -} -/** - * QueryDelegationRewardsResponse is the response type for the - * Query/DelegationRewards RPC method. - */ - -export interface QueryDelegationRewardsResponseSDKType { - rewards: DecCoinSDKType[]; -} -/** - * QueryDelegationTotalRewardsRequest is the request type for the - * Query/DelegationTotalRewards RPC method. - */ - -export interface QueryDelegationTotalRewardsRequest { - /** delegator_address defines the delegator address to query for. */ - delegatorAddress: string; -} -/** - * QueryDelegationTotalRewardsRequest is the request type for the - * Query/DelegationTotalRewards RPC method. - */ - -export interface QueryDelegationTotalRewardsRequestSDKType { - delegator_address: string; -} -/** - * QueryDelegationTotalRewardsResponse is the response type for the - * Query/DelegationTotalRewards RPC method. - */ - -export interface QueryDelegationTotalRewardsResponse { - /** rewards defines all the rewards accrued by a delegator. */ - rewards: DelegationDelegatorReward[]; - /** total defines the sum of all the rewards. */ - - total: DecCoin[]; -} -/** - * QueryDelegationTotalRewardsResponse is the response type for the - * Query/DelegationTotalRewards RPC method. - */ - -export interface QueryDelegationTotalRewardsResponseSDKType { - rewards: DelegationDelegatorRewardSDKType[]; - total: DecCoinSDKType[]; -} -/** - * QueryDelegatorValidatorsRequest is the request type for the - * Query/DelegatorValidators RPC method. - */ - -export interface QueryDelegatorValidatorsRequest { - /** delegator_address defines the delegator address to query for. */ - delegatorAddress: string; -} -/** - * QueryDelegatorValidatorsRequest is the request type for the - * Query/DelegatorValidators RPC method. - */ - -export interface QueryDelegatorValidatorsRequestSDKType { - delegator_address: string; -} -/** - * QueryDelegatorValidatorsResponse is the response type for the - * Query/DelegatorValidators RPC method. - */ - -export interface QueryDelegatorValidatorsResponse { - /** validators defines the validators a delegator is delegating for. */ - validators: string[]; -} -/** - * QueryDelegatorValidatorsResponse is the response type for the - * Query/DelegatorValidators RPC method. - */ - -export interface QueryDelegatorValidatorsResponseSDKType { - validators: string[]; -} -/** - * QueryDelegatorWithdrawAddressRequest is the request type for the - * Query/DelegatorWithdrawAddress RPC method. - */ - -export interface QueryDelegatorWithdrawAddressRequest { - /** delegator_address defines the delegator address to query for. */ - delegatorAddress: string; -} -/** - * QueryDelegatorWithdrawAddressRequest is the request type for the - * Query/DelegatorWithdrawAddress RPC method. - */ - -export interface QueryDelegatorWithdrawAddressRequestSDKType { - delegator_address: string; -} -/** - * QueryDelegatorWithdrawAddressResponse is the response type for the - * Query/DelegatorWithdrawAddress RPC method. - */ - -export interface QueryDelegatorWithdrawAddressResponse { - /** withdraw_address defines the delegator address to query for. */ - withdrawAddress: string; -} -/** - * QueryDelegatorWithdrawAddressResponse is the response type for the - * Query/DelegatorWithdrawAddress RPC method. - */ - -export interface QueryDelegatorWithdrawAddressResponseSDKType { - withdraw_address: string; -} -/** - * QueryCommunityPoolRequest is the request type for the Query/CommunityPool RPC - * method. - */ - -export interface QueryCommunityPoolRequest {} -/** - * QueryCommunityPoolRequest is the request type for the Query/CommunityPool RPC - * method. - */ - -export interface QueryCommunityPoolRequestSDKType {} -/** - * QueryCommunityPoolResponse is the response type for the Query/CommunityPool - * RPC method. - */ - -export interface QueryCommunityPoolResponse { - /** pool defines community pool's coins. */ - pool: DecCoin[]; -} -/** - * QueryCommunityPoolResponse is the response type for the Query/CommunityPool - * RPC method. - */ - -export interface QueryCommunityPoolResponseSDKType { - pool: DecCoinSDKType[]; -} - -function createBaseQueryParamsRequest(): QueryParamsRequest { - return {}; -} - -export const QueryParamsRequest = { - encode(_: QueryParamsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): QueryParamsRequest { - const message = createBaseQueryParamsRequest(); - return message; - } - -}; - -function createBaseQueryParamsResponse(): QueryParamsResponse { - return { - params: undefined - }; -} - -export const QueryParamsResponse = { - encode(message: QueryParamsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.params !== undefined) { - Params.encode(message.params, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.params = Params.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryParamsResponse { - const message = createBaseQueryParamsResponse(); - message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined; - return message; - } - -}; - -function createBaseQueryValidatorOutstandingRewardsRequest(): QueryValidatorOutstandingRewardsRequest { - return { - validatorAddress: "" - }; -} - -export const QueryValidatorOutstandingRewardsRequest = { - encode(message: QueryValidatorOutstandingRewardsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.validatorAddress !== "") { - writer.uint32(10).string(message.validatorAddress); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorOutstandingRewardsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorOutstandingRewardsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.validatorAddress = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryValidatorOutstandingRewardsRequest { - const message = createBaseQueryValidatorOutstandingRewardsRequest(); - message.validatorAddress = object.validatorAddress ?? ""; - return message; - } - -}; - -function createBaseQueryValidatorOutstandingRewardsResponse(): QueryValidatorOutstandingRewardsResponse { - return { - rewards: undefined - }; -} - -export const QueryValidatorOutstandingRewardsResponse = { - encode(message: QueryValidatorOutstandingRewardsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.rewards !== undefined) { - ValidatorOutstandingRewards.encode(message.rewards, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorOutstandingRewardsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorOutstandingRewardsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.rewards = ValidatorOutstandingRewards.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryValidatorOutstandingRewardsResponse { - const message = createBaseQueryValidatorOutstandingRewardsResponse(); - message.rewards = object.rewards !== undefined && object.rewards !== null ? ValidatorOutstandingRewards.fromPartial(object.rewards) : undefined; - return message; - } - -}; - -function createBaseQueryValidatorCommissionRequest(): QueryValidatorCommissionRequest { - return { - validatorAddress: "" - }; -} - -export const QueryValidatorCommissionRequest = { - encode(message: QueryValidatorCommissionRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.validatorAddress !== "") { - writer.uint32(10).string(message.validatorAddress); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorCommissionRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorCommissionRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.validatorAddress = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryValidatorCommissionRequest { - const message = createBaseQueryValidatorCommissionRequest(); - message.validatorAddress = object.validatorAddress ?? ""; - return message; - } - -}; - -function createBaseQueryValidatorCommissionResponse(): QueryValidatorCommissionResponse { - return { - commission: undefined - }; -} - -export const QueryValidatorCommissionResponse = { - encode(message: QueryValidatorCommissionResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.commission !== undefined) { - ValidatorAccumulatedCommission.encode(message.commission, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorCommissionResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorCommissionResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.commission = ValidatorAccumulatedCommission.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryValidatorCommissionResponse { - const message = createBaseQueryValidatorCommissionResponse(); - message.commission = object.commission !== undefined && object.commission !== null ? ValidatorAccumulatedCommission.fromPartial(object.commission) : undefined; - return message; - } - -}; - -function createBaseQueryValidatorSlashesRequest(): QueryValidatorSlashesRequest { - return { - validatorAddress: "", - startingHeight: Long.UZERO, - endingHeight: Long.UZERO, - pagination: undefined - }; -} - -export const QueryValidatorSlashesRequest = { - encode(message: QueryValidatorSlashesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.validatorAddress !== "") { - writer.uint32(10).string(message.validatorAddress); - } - - if (!message.startingHeight.isZero()) { - writer.uint32(16).uint64(message.startingHeight); - } - - if (!message.endingHeight.isZero()) { - writer.uint32(24).uint64(message.endingHeight); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorSlashesRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorSlashesRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.validatorAddress = reader.string(); - break; - - case 2: - message.startingHeight = (reader.uint64() as Long); - break; - - case 3: - message.endingHeight = (reader.uint64() as Long); - break; - - case 4: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryValidatorSlashesRequest { - const message = createBaseQueryValidatorSlashesRequest(); - message.validatorAddress = object.validatorAddress ?? ""; - message.startingHeight = object.startingHeight !== undefined && object.startingHeight !== null ? Long.fromValue(object.startingHeight) : Long.UZERO; - message.endingHeight = object.endingHeight !== undefined && object.endingHeight !== null ? Long.fromValue(object.endingHeight) : Long.UZERO; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryValidatorSlashesResponse(): QueryValidatorSlashesResponse { - return { - slashes: [], - pagination: undefined - }; -} - -export const QueryValidatorSlashesResponse = { - encode(message: QueryValidatorSlashesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.slashes) { - ValidatorSlashEvent.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorSlashesResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorSlashesResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.slashes.push(ValidatorSlashEvent.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryValidatorSlashesResponse { - const message = createBaseQueryValidatorSlashesResponse(); - message.slashes = object.slashes?.map(e => ValidatorSlashEvent.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryDelegationRewardsRequest(): QueryDelegationRewardsRequest { - return { - delegatorAddress: "", - validatorAddress: "" - }; -} - -export const QueryDelegationRewardsRequest = { - encode(message: QueryDelegationRewardsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); - } - - if (message.validatorAddress !== "") { - writer.uint32(18).string(message.validatorAddress); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegationRewardsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegationRewardsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegatorAddress = reader.string(); - break; - - case 2: - message.validatorAddress = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDelegationRewardsRequest { - const message = createBaseQueryDelegationRewardsRequest(); - message.delegatorAddress = object.delegatorAddress ?? ""; - message.validatorAddress = object.validatorAddress ?? ""; - return message; - } - -}; - -function createBaseQueryDelegationRewardsResponse(): QueryDelegationRewardsResponse { - return { - rewards: [] - }; -} - -export const QueryDelegationRewardsResponse = { - encode(message: QueryDelegationRewardsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.rewards) { - DecCoin.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegationRewardsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegationRewardsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.rewards.push(DecCoin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDelegationRewardsResponse { - const message = createBaseQueryDelegationRewardsResponse(); - message.rewards = object.rewards?.map(e => DecCoin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseQueryDelegationTotalRewardsRequest(): QueryDelegationTotalRewardsRequest { - return { - delegatorAddress: "" - }; -} - -export const QueryDelegationTotalRewardsRequest = { - encode(message: QueryDelegationTotalRewardsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegationTotalRewardsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegationTotalRewardsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegatorAddress = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDelegationTotalRewardsRequest { - const message = createBaseQueryDelegationTotalRewardsRequest(); - message.delegatorAddress = object.delegatorAddress ?? ""; - return message; - } - -}; - -function createBaseQueryDelegationTotalRewardsResponse(): QueryDelegationTotalRewardsResponse { - return { - rewards: [], - total: [] - }; -} - -export const QueryDelegationTotalRewardsResponse = { - encode(message: QueryDelegationTotalRewardsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.rewards) { - DelegationDelegatorReward.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - for (const v of message.total) { - DecCoin.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegationTotalRewardsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegationTotalRewardsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.rewards.push(DelegationDelegatorReward.decode(reader, reader.uint32())); - break; - - case 2: - message.total.push(DecCoin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDelegationTotalRewardsResponse { - const message = createBaseQueryDelegationTotalRewardsResponse(); - message.rewards = object.rewards?.map(e => DelegationDelegatorReward.fromPartial(e)) || []; - message.total = object.total?.map(e => DecCoin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseQueryDelegatorValidatorsRequest(): QueryDelegatorValidatorsRequest { - return { - delegatorAddress: "" - }; -} - -export const QueryDelegatorValidatorsRequest = { - encode(message: QueryDelegatorValidatorsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegatorValidatorsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegatorValidatorsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegatorAddress = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDelegatorValidatorsRequest { - const message = createBaseQueryDelegatorValidatorsRequest(); - message.delegatorAddress = object.delegatorAddress ?? ""; - return message; - } - -}; - -function createBaseQueryDelegatorValidatorsResponse(): QueryDelegatorValidatorsResponse { - return { - validators: [] - }; -} - -export const QueryDelegatorValidatorsResponse = { - encode(message: QueryDelegatorValidatorsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.validators) { - writer.uint32(10).string(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegatorValidatorsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegatorValidatorsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.validators.push(reader.string()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDelegatorValidatorsResponse { - const message = createBaseQueryDelegatorValidatorsResponse(); - message.validators = object.validators?.map(e => e) || []; - return message; - } - -}; - -function createBaseQueryDelegatorWithdrawAddressRequest(): QueryDelegatorWithdrawAddressRequest { - return { - delegatorAddress: "" - }; -} - -export const QueryDelegatorWithdrawAddressRequest = { - encode(message: QueryDelegatorWithdrawAddressRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegatorWithdrawAddressRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegatorWithdrawAddressRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegatorAddress = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDelegatorWithdrawAddressRequest { - const message = createBaseQueryDelegatorWithdrawAddressRequest(); - message.delegatorAddress = object.delegatorAddress ?? ""; - return message; - } - -}; - -function createBaseQueryDelegatorWithdrawAddressResponse(): QueryDelegatorWithdrawAddressResponse { - return { - withdrawAddress: "" - }; -} - -export const QueryDelegatorWithdrawAddressResponse = { - encode(message: QueryDelegatorWithdrawAddressResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.withdrawAddress !== "") { - writer.uint32(10).string(message.withdrawAddress); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegatorWithdrawAddressResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegatorWithdrawAddressResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.withdrawAddress = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDelegatorWithdrawAddressResponse { - const message = createBaseQueryDelegatorWithdrawAddressResponse(); - message.withdrawAddress = object.withdrawAddress ?? ""; - return message; - } - -}; - -function createBaseQueryCommunityPoolRequest(): QueryCommunityPoolRequest { - return {}; -} - -export const QueryCommunityPoolRequest = { - encode(_: QueryCommunityPoolRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryCommunityPoolRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryCommunityPoolRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): QueryCommunityPoolRequest { - const message = createBaseQueryCommunityPoolRequest(); - return message; - } - -}; - -function createBaseQueryCommunityPoolResponse(): QueryCommunityPoolResponse { - return { - pool: [] - }; -} - -export const QueryCommunityPoolResponse = { - encode(message: QueryCommunityPoolResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.pool) { - DecCoin.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryCommunityPoolResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryCommunityPoolResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.pool.push(DecCoin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryCommunityPoolResponse { - const message = createBaseQueryCommunityPoolResponse(); - message.pool = object.pool?.map(e => DecCoin.fromPartial(e)) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/distribution/v1beta1/tx.rpc.msg.ts b/packages/codegen/src/cosmos/distribution/v1beta1/tx.rpc.msg.ts deleted file mode 100644 index 64e7e190..00000000 --- a/packages/codegen/src/cosmos/distribution/v1beta1/tx.rpc.msg.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { MsgSetWithdrawAddress, MsgSetWithdrawAddressResponse, MsgWithdrawDelegatorReward, MsgWithdrawDelegatorRewardResponse, MsgWithdrawValidatorCommission, MsgWithdrawValidatorCommissionResponse, MsgFundCommunityPool, MsgFundCommunityPoolResponse } from "./tx"; -/** Msg defines the distribution Msg service. */ - -export interface Msg { - /** - * SetWithdrawAddress defines a method to change the withdraw address - * for a delegator (or validator self-delegation). - */ - setWithdrawAddress(request: MsgSetWithdrawAddress): Promise; - /** - * WithdrawDelegatorReward defines a method to withdraw rewards of delegator - * from a single validator. - */ - - withdrawDelegatorReward(request: MsgWithdrawDelegatorReward): Promise; - /** - * WithdrawValidatorCommission defines a method to withdraw the - * full commission to the validator address. - */ - - withdrawValidatorCommission(request: MsgWithdrawValidatorCommission): Promise; - /** - * FundCommunityPool defines a method to allow an account to directly - * fund the community pool. - */ - - fundCommunityPool(request: MsgFundCommunityPool): Promise; -} -export class MsgClientImpl implements Msg { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.setWithdrawAddress = this.setWithdrawAddress.bind(this); - this.withdrawDelegatorReward = this.withdrawDelegatorReward.bind(this); - this.withdrawValidatorCommission = this.withdrawValidatorCommission.bind(this); - this.fundCommunityPool = this.fundCommunityPool.bind(this); - } - - setWithdrawAddress(request: MsgSetWithdrawAddress): Promise { - const data = MsgSetWithdrawAddress.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Msg", "SetWithdrawAddress", data); - return promise.then(data => MsgSetWithdrawAddressResponse.decode(new _m0.Reader(data))); - } - - withdrawDelegatorReward(request: MsgWithdrawDelegatorReward): Promise { - const data = MsgWithdrawDelegatorReward.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Msg", "WithdrawDelegatorReward", data); - return promise.then(data => MsgWithdrawDelegatorRewardResponse.decode(new _m0.Reader(data))); - } - - withdrawValidatorCommission(request: MsgWithdrawValidatorCommission): Promise { - const data = MsgWithdrawValidatorCommission.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Msg", "WithdrawValidatorCommission", data); - return promise.then(data => MsgWithdrawValidatorCommissionResponse.decode(new _m0.Reader(data))); - } - - fundCommunityPool(request: MsgFundCommunityPool): Promise { - const data = MsgFundCommunityPool.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Msg", "FundCommunityPool", data); - return promise.then(data => MsgFundCommunityPoolResponse.decode(new _m0.Reader(data))); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/distribution/v1beta1/tx.ts b/packages/codegen/src/cosmos/distribution/v1beta1/tx.ts deleted file mode 100644 index 182b5b5d..00000000 --- a/packages/codegen/src/cosmos/distribution/v1beta1/tx.ts +++ /dev/null @@ -1,473 +0,0 @@ -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * MsgSetWithdrawAddress sets the withdraw address for - * a delegator (or validator self-delegation). - */ - -export interface MsgSetWithdrawAddress { - delegatorAddress: string; - withdrawAddress: string; -} -/** - * MsgSetWithdrawAddress sets the withdraw address for - * a delegator (or validator self-delegation). - */ - -export interface MsgSetWithdrawAddressSDKType { - delegator_address: string; - withdraw_address: string; -} -/** MsgSetWithdrawAddressResponse defines the Msg/SetWithdrawAddress response type. */ - -export interface MsgSetWithdrawAddressResponse {} -/** MsgSetWithdrawAddressResponse defines the Msg/SetWithdrawAddress response type. */ - -export interface MsgSetWithdrawAddressResponseSDKType {} -/** - * MsgWithdrawDelegatorReward represents delegation withdrawal to a delegator - * from a single validator. - */ - -export interface MsgWithdrawDelegatorReward { - delegatorAddress: string; - validatorAddress: string; -} -/** - * MsgWithdrawDelegatorReward represents delegation withdrawal to a delegator - * from a single validator. - */ - -export interface MsgWithdrawDelegatorRewardSDKType { - delegator_address: string; - validator_address: string; -} -/** MsgWithdrawDelegatorRewardResponse defines the Msg/WithdrawDelegatorReward response type. */ - -export interface MsgWithdrawDelegatorRewardResponse { - amount: Coin[]; -} -/** MsgWithdrawDelegatorRewardResponse defines the Msg/WithdrawDelegatorReward response type. */ - -export interface MsgWithdrawDelegatorRewardResponseSDKType { - amount: CoinSDKType[]; -} -/** - * MsgWithdrawValidatorCommission withdraws the full commission to the validator - * address. - */ - -export interface MsgWithdrawValidatorCommission { - validatorAddress: string; -} -/** - * MsgWithdrawValidatorCommission withdraws the full commission to the validator - * address. - */ - -export interface MsgWithdrawValidatorCommissionSDKType { - validator_address: string; -} -/** MsgWithdrawValidatorCommissionResponse defines the Msg/WithdrawValidatorCommission response type. */ - -export interface MsgWithdrawValidatorCommissionResponse { - amount: Coin[]; -} -/** MsgWithdrawValidatorCommissionResponse defines the Msg/WithdrawValidatorCommission response type. */ - -export interface MsgWithdrawValidatorCommissionResponseSDKType { - amount: CoinSDKType[]; -} -/** - * MsgFundCommunityPool allows an account to directly - * fund the community pool. - */ - -export interface MsgFundCommunityPool { - amount: Coin[]; - depositor: string; -} -/** - * MsgFundCommunityPool allows an account to directly - * fund the community pool. - */ - -export interface MsgFundCommunityPoolSDKType { - amount: CoinSDKType[]; - depositor: string; -} -/** MsgFundCommunityPoolResponse defines the Msg/FundCommunityPool response type. */ - -export interface MsgFundCommunityPoolResponse {} -/** MsgFundCommunityPoolResponse defines the Msg/FundCommunityPool response type. */ - -export interface MsgFundCommunityPoolResponseSDKType {} - -function createBaseMsgSetWithdrawAddress(): MsgSetWithdrawAddress { - return { - delegatorAddress: "", - withdrawAddress: "" - }; -} - -export const MsgSetWithdrawAddress = { - encode(message: MsgSetWithdrawAddress, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); - } - - if (message.withdrawAddress !== "") { - writer.uint32(18).string(message.withdrawAddress); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSetWithdrawAddress { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgSetWithdrawAddress(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegatorAddress = reader.string(); - break; - - case 2: - message.withdrawAddress = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgSetWithdrawAddress { - const message = createBaseMsgSetWithdrawAddress(); - message.delegatorAddress = object.delegatorAddress ?? ""; - message.withdrawAddress = object.withdrawAddress ?? ""; - return message; - } - -}; - -function createBaseMsgSetWithdrawAddressResponse(): MsgSetWithdrawAddressResponse { - return {}; -} - -export const MsgSetWithdrawAddressResponse = { - encode(_: MsgSetWithdrawAddressResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSetWithdrawAddressResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgSetWithdrawAddressResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgSetWithdrawAddressResponse { - const message = createBaseMsgSetWithdrawAddressResponse(); - return message; - } - -}; - -function createBaseMsgWithdrawDelegatorReward(): MsgWithdrawDelegatorReward { - return { - delegatorAddress: "", - validatorAddress: "" - }; -} - -export const MsgWithdrawDelegatorReward = { - encode(message: MsgWithdrawDelegatorReward, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); - } - - if (message.validatorAddress !== "") { - writer.uint32(18).string(message.validatorAddress); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgWithdrawDelegatorReward { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgWithdrawDelegatorReward(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegatorAddress = reader.string(); - break; - - case 2: - message.validatorAddress = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgWithdrawDelegatorReward { - const message = createBaseMsgWithdrawDelegatorReward(); - message.delegatorAddress = object.delegatorAddress ?? ""; - message.validatorAddress = object.validatorAddress ?? ""; - return message; - } - -}; - -function createBaseMsgWithdrawDelegatorRewardResponse(): MsgWithdrawDelegatorRewardResponse { - return { - amount: [] - }; -} - -export const MsgWithdrawDelegatorRewardResponse = { - encode(message: MsgWithdrawDelegatorRewardResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.amount) { - Coin.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgWithdrawDelegatorRewardResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgWithdrawDelegatorRewardResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.amount.push(Coin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgWithdrawDelegatorRewardResponse { - const message = createBaseMsgWithdrawDelegatorRewardResponse(); - message.amount = object.amount?.map(e => Coin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseMsgWithdrawValidatorCommission(): MsgWithdrawValidatorCommission { - return { - validatorAddress: "" - }; -} - -export const MsgWithdrawValidatorCommission = { - encode(message: MsgWithdrawValidatorCommission, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.validatorAddress !== "") { - writer.uint32(10).string(message.validatorAddress); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgWithdrawValidatorCommission { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgWithdrawValidatorCommission(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.validatorAddress = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgWithdrawValidatorCommission { - const message = createBaseMsgWithdrawValidatorCommission(); - message.validatorAddress = object.validatorAddress ?? ""; - return message; - } - -}; - -function createBaseMsgWithdrawValidatorCommissionResponse(): MsgWithdrawValidatorCommissionResponse { - return { - amount: [] - }; -} - -export const MsgWithdrawValidatorCommissionResponse = { - encode(message: MsgWithdrawValidatorCommissionResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.amount) { - Coin.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgWithdrawValidatorCommissionResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgWithdrawValidatorCommissionResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.amount.push(Coin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgWithdrawValidatorCommissionResponse { - const message = createBaseMsgWithdrawValidatorCommissionResponse(); - message.amount = object.amount?.map(e => Coin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseMsgFundCommunityPool(): MsgFundCommunityPool { - return { - amount: [], - depositor: "" - }; -} - -export const MsgFundCommunityPool = { - encode(message: MsgFundCommunityPool, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.amount) { - Coin.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.depositor !== "") { - writer.uint32(18).string(message.depositor); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgFundCommunityPool { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgFundCommunityPool(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.amount.push(Coin.decode(reader, reader.uint32())); - break; - - case 2: - message.depositor = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgFundCommunityPool { - const message = createBaseMsgFundCommunityPool(); - message.amount = object.amount?.map(e => Coin.fromPartial(e)) || []; - message.depositor = object.depositor ?? ""; - return message; - } - -}; - -function createBaseMsgFundCommunityPoolResponse(): MsgFundCommunityPoolResponse { - return {}; -} - -export const MsgFundCommunityPoolResponse = { - encode(_: MsgFundCommunityPoolResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgFundCommunityPoolResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgFundCommunityPoolResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgFundCommunityPoolResponse { - const message = createBaseMsgFundCommunityPoolResponse(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/evidence/v1beta1/evidence.ts b/packages/codegen/src/cosmos/evidence/v1beta1/evidence.ts deleted file mode 100644 index 7e804c5d..00000000 --- a/packages/codegen/src/cosmos/evidence/v1beta1/evidence.ts +++ /dev/null @@ -1,100 +0,0 @@ -import { Timestamp } from "../../../google/protobuf/timestamp"; -import { Long, toTimestamp, fromTimestamp, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * Equivocation implements the Evidence interface and defines evidence of double - * signing misbehavior. - */ - -export interface Equivocation { - height: Long; - time?: Date; - power: Long; - consensusAddress: string; -} -/** - * Equivocation implements the Evidence interface and defines evidence of double - * signing misbehavior. - */ - -export interface EquivocationSDKType { - height: Long; - time?: Date; - power: Long; - consensus_address: string; -} - -function createBaseEquivocation(): Equivocation { - return { - height: Long.ZERO, - time: undefined, - power: Long.ZERO, - consensusAddress: "" - }; -} - -export const Equivocation = { - encode(message: Equivocation, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.height.isZero()) { - writer.uint32(8).int64(message.height); - } - - if (message.time !== undefined) { - Timestamp.encode(toTimestamp(message.time), writer.uint32(18).fork()).ldelim(); - } - - if (!message.power.isZero()) { - writer.uint32(24).int64(message.power); - } - - if (message.consensusAddress !== "") { - writer.uint32(34).string(message.consensusAddress); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Equivocation { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEquivocation(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.height = (reader.int64() as Long); - break; - - case 2: - message.time = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - case 3: - message.power = (reader.int64() as Long); - break; - - case 4: - message.consensusAddress = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Equivocation { - const message = createBaseEquivocation(); - message.height = object.height !== undefined && object.height !== null ? Long.fromValue(object.height) : Long.ZERO; - message.time = object.time ?? undefined; - message.power = object.power !== undefined && object.power !== null ? Long.fromValue(object.power) : Long.ZERO; - message.consensusAddress = object.consensusAddress ?? ""; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/evidence/v1beta1/genesis.ts b/packages/codegen/src/cosmos/evidence/v1beta1/genesis.ts deleted file mode 100644 index 9409525a..00000000 --- a/packages/codegen/src/cosmos/evidence/v1beta1/genesis.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** GenesisState defines the evidence module's genesis state. */ - -export interface GenesisState { - /** evidence defines all the evidence at genesis. */ - evidence: Any[]; -} -/** GenesisState defines the evidence module's genesis state. */ - -export interface GenesisStateSDKType { - evidence: AnySDKType[]; -} - -function createBaseGenesisState(): GenesisState { - return { - evidence: [] - }; -} - -export const GenesisState = { - encode(message: GenesisState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.evidence) { - Any.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.evidence.push(Any.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenesisState { - const message = createBaseGenesisState(); - message.evidence = object.evidence?.map(e => Any.fromPartial(e)) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/evidence/v1beta1/query.lcd.ts b/packages/codegen/src/cosmos/evidence/v1beta1/query.lcd.ts deleted file mode 100644 index ff67beab..00000000 --- a/packages/codegen/src/cosmos/evidence/v1beta1/query.lcd.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { setPaginationParams } from "../../../helpers"; -import { LCDClient } from "@osmonauts/lcd"; -import { QueryEvidenceRequest, QueryEvidenceResponseSDKType, QueryAllEvidenceRequest, QueryAllEvidenceResponseSDKType } from "./query"; -export class LCDQueryClient { - req: LCDClient; - - constructor({ - requestClient - }: { - requestClient: LCDClient; - }) { - this.req = requestClient; - this.evidence = this.evidence.bind(this); - this.allEvidence = this.allEvidence.bind(this); - } - /* Evidence queries evidence based on evidence hash. */ - - - async evidence(params: QueryEvidenceRequest): Promise { - const endpoint = `cosmos/evidence/v1beta1/evidence/${params.evidenceHash}`; - return await this.req.get(endpoint); - } - /* AllEvidence queries all evidence. */ - - - async allEvidence(params: QueryAllEvidenceRequest = { - pagination: undefined - }): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/evidence/v1beta1/evidence`; - return await this.req.get(endpoint, options); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/evidence/v1beta1/query.rpc.Query.ts b/packages/codegen/src/cosmos/evidence/v1beta1/query.rpc.Query.ts deleted file mode 100644 index f55807bd..00000000 --- a/packages/codegen/src/cosmos/evidence/v1beta1/query.rpc.Query.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { QueryEvidenceRequest, QueryEvidenceResponse, QueryAllEvidenceRequest, QueryAllEvidenceResponse } from "./query"; -/** Query defines the gRPC querier service. */ - -export interface Query { - /** Evidence queries evidence based on evidence hash. */ - evidence(request: QueryEvidenceRequest): Promise; - /** AllEvidence queries all evidence. */ - - allEvidence(request?: QueryAllEvidenceRequest): Promise; -} -export class QueryClientImpl implements Query { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.evidence = this.evidence.bind(this); - this.allEvidence = this.allEvidence.bind(this); - } - - evidence(request: QueryEvidenceRequest): Promise { - const data = QueryEvidenceRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.evidence.v1beta1.Query", "Evidence", data); - return promise.then(data => QueryEvidenceResponse.decode(new _m0.Reader(data))); - } - - allEvidence(request: QueryAllEvidenceRequest = { - pagination: undefined - }): Promise { - const data = QueryAllEvidenceRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.evidence.v1beta1.Query", "AllEvidence", data); - return promise.then(data => QueryAllEvidenceResponse.decode(new _m0.Reader(data))); - } - -} -export const createRpcQueryExtension = (base: QueryClient) => { - const rpc = createProtobufRpcClient(base); - const queryService = new QueryClientImpl(rpc); - return { - evidence(request: QueryEvidenceRequest): Promise { - return queryService.evidence(request); - }, - - allEvidence(request?: QueryAllEvidenceRequest): Promise { - return queryService.allEvidence(request); - } - - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/evidence/v1beta1/query.ts b/packages/codegen/src/cosmos/evidence/v1beta1/query.ts deleted file mode 100644 index e0b9ccae..00000000 --- a/packages/codegen/src/cosmos/evidence/v1beta1/query.ts +++ /dev/null @@ -1,254 +0,0 @@ -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** QueryEvidenceRequest is the request type for the Query/Evidence RPC method. */ - -export interface QueryEvidenceRequest { - /** evidence_hash defines the hash of the requested evidence. */ - evidenceHash: Uint8Array; -} -/** QueryEvidenceRequest is the request type for the Query/Evidence RPC method. */ - -export interface QueryEvidenceRequestSDKType { - evidence_hash: Uint8Array; -} -/** QueryEvidenceResponse is the response type for the Query/Evidence RPC method. */ - -export interface QueryEvidenceResponse { - /** evidence returns the requested evidence. */ - evidence?: Any; -} -/** QueryEvidenceResponse is the response type for the Query/Evidence RPC method. */ - -export interface QueryEvidenceResponseSDKType { - evidence?: AnySDKType; -} -/** - * QueryEvidenceRequest is the request type for the Query/AllEvidence RPC - * method. - */ - -export interface QueryAllEvidenceRequest { - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** - * QueryEvidenceRequest is the request type for the Query/AllEvidence RPC - * method. - */ - -export interface QueryAllEvidenceRequestSDKType { - pagination?: PageRequestSDKType; -} -/** - * QueryAllEvidenceResponse is the response type for the Query/AllEvidence RPC - * method. - */ - -export interface QueryAllEvidenceResponse { - /** evidence returns all evidences. */ - evidence: Any[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** - * QueryAllEvidenceResponse is the response type for the Query/AllEvidence RPC - * method. - */ - -export interface QueryAllEvidenceResponseSDKType { - evidence: AnySDKType[]; - pagination?: PageResponseSDKType; -} - -function createBaseQueryEvidenceRequest(): QueryEvidenceRequest { - return { - evidenceHash: new Uint8Array() - }; -} - -export const QueryEvidenceRequest = { - encode(message: QueryEvidenceRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.evidenceHash.length !== 0) { - writer.uint32(10).bytes(message.evidenceHash); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryEvidenceRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryEvidenceRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.evidenceHash = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryEvidenceRequest { - const message = createBaseQueryEvidenceRequest(); - message.evidenceHash = object.evidenceHash ?? new Uint8Array(); - return message; - } - -}; - -function createBaseQueryEvidenceResponse(): QueryEvidenceResponse { - return { - evidence: undefined - }; -} - -export const QueryEvidenceResponse = { - encode(message: QueryEvidenceResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.evidence !== undefined) { - Any.encode(message.evidence, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryEvidenceResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryEvidenceResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.evidence = Any.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryEvidenceResponse { - const message = createBaseQueryEvidenceResponse(); - message.evidence = object.evidence !== undefined && object.evidence !== null ? Any.fromPartial(object.evidence) : undefined; - return message; - } - -}; - -function createBaseQueryAllEvidenceRequest(): QueryAllEvidenceRequest { - return { - pagination: undefined - }; -} - -export const QueryAllEvidenceRequest = { - encode(message: QueryAllEvidenceRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllEvidenceRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllEvidenceRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryAllEvidenceRequest { - const message = createBaseQueryAllEvidenceRequest(); - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryAllEvidenceResponse(): QueryAllEvidenceResponse { - return { - evidence: [], - pagination: undefined - }; -} - -export const QueryAllEvidenceResponse = { - encode(message: QueryAllEvidenceResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.evidence) { - Any.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllEvidenceResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllEvidenceResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.evidence.push(Any.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryAllEvidenceResponse { - const message = createBaseQueryAllEvidenceResponse(); - message.evidence = object.evidence?.map(e => Any.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/evidence/v1beta1/tx.rpc.msg.ts b/packages/codegen/src/cosmos/evidence/v1beta1/tx.rpc.msg.ts deleted file mode 100644 index afd22359..00000000 --- a/packages/codegen/src/cosmos/evidence/v1beta1/tx.rpc.msg.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { MsgSubmitEvidence, MsgSubmitEvidenceResponse } from "./tx"; -/** Msg defines the evidence Msg service. */ - -export interface Msg { - /** - * SubmitEvidence submits an arbitrary Evidence of misbehavior such as equivocation or - * counterfactual signing. - */ - submitEvidence(request: MsgSubmitEvidence): Promise; -} -export class MsgClientImpl implements Msg { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.submitEvidence = this.submitEvidence.bind(this); - } - - submitEvidence(request: MsgSubmitEvidence): Promise { - const data = MsgSubmitEvidence.encode(request).finish(); - const promise = this.rpc.request("cosmos.evidence.v1beta1.Msg", "SubmitEvidence", data); - return promise.then(data => MsgSubmitEvidenceResponse.decode(new _m0.Reader(data))); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/evidence/v1beta1/tx.ts b/packages/codegen/src/cosmos/evidence/v1beta1/tx.ts deleted file mode 100644 index 91e09764..00000000 --- a/packages/codegen/src/cosmos/evidence/v1beta1/tx.ts +++ /dev/null @@ -1,132 +0,0 @@ -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * MsgSubmitEvidence represents a message that supports submitting arbitrary - * Evidence of misbehavior such as equivocation or counterfactual signing. - */ - -export interface MsgSubmitEvidence { - submitter: string; - evidence?: Any; -} -/** - * MsgSubmitEvidence represents a message that supports submitting arbitrary - * Evidence of misbehavior such as equivocation or counterfactual signing. - */ - -export interface MsgSubmitEvidenceSDKType { - submitter: string; - evidence?: AnySDKType; -} -/** MsgSubmitEvidenceResponse defines the Msg/SubmitEvidence response type. */ - -export interface MsgSubmitEvidenceResponse { - /** hash defines the hash of the evidence. */ - hash: Uint8Array; -} -/** MsgSubmitEvidenceResponse defines the Msg/SubmitEvidence response type. */ - -export interface MsgSubmitEvidenceResponseSDKType { - hash: Uint8Array; -} - -function createBaseMsgSubmitEvidence(): MsgSubmitEvidence { - return { - submitter: "", - evidence: undefined - }; -} - -export const MsgSubmitEvidence = { - encode(message: MsgSubmitEvidence, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.submitter !== "") { - writer.uint32(10).string(message.submitter); - } - - if (message.evidence !== undefined) { - Any.encode(message.evidence, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSubmitEvidence { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgSubmitEvidence(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.submitter = reader.string(); - break; - - case 2: - message.evidence = Any.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgSubmitEvidence { - const message = createBaseMsgSubmitEvidence(); - message.submitter = object.submitter ?? ""; - message.evidence = object.evidence !== undefined && object.evidence !== null ? Any.fromPartial(object.evidence) : undefined; - return message; - } - -}; - -function createBaseMsgSubmitEvidenceResponse(): MsgSubmitEvidenceResponse { - return { - hash: new Uint8Array() - }; -} - -export const MsgSubmitEvidenceResponse = { - encode(message: MsgSubmitEvidenceResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.hash.length !== 0) { - writer.uint32(34).bytes(message.hash); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSubmitEvidenceResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgSubmitEvidenceResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 4: - message.hash = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgSubmitEvidenceResponse { - const message = createBaseMsgSubmitEvidenceResponse(); - message.hash = object.hash ?? new Uint8Array(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/feegrant/v1beta1/feegrant.ts b/packages/codegen/src/cosmos/feegrant/v1beta1/feegrant.ts deleted file mode 100644 index 1b41f358..00000000 --- a/packages/codegen/src/cosmos/feegrant/v1beta1/feegrant.ts +++ /dev/null @@ -1,368 +0,0 @@ -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import { Timestamp } from "../../../google/protobuf/timestamp"; -import { Duration, DurationSDKType } from "../../../google/protobuf/duration"; -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { toTimestamp, fromTimestamp, DeepPartial } from "../../../helpers"; -/** - * BasicAllowance implements Allowance with a one-time grant of tokens - * that optionally expires. The grantee can use up to SpendLimit to cover fees. - */ - -export interface BasicAllowance { - /** - * spend_limit specifies the maximum amount of tokens that can be spent - * by this allowance and will be updated as tokens are spent. If it is - * empty, there is no spend limit and any amount of coins can be spent. - */ - spendLimit: Coin[]; - /** expiration specifies an optional time when this allowance expires */ - - expiration?: Date; -} -/** - * BasicAllowance implements Allowance with a one-time grant of tokens - * that optionally expires. The grantee can use up to SpendLimit to cover fees. - */ - -export interface BasicAllowanceSDKType { - spend_limit: CoinSDKType[]; - expiration?: Date; -} -/** - * PeriodicAllowance extends Allowance to allow for both a maximum cap, - * as well as a limit per time period. - */ - -export interface PeriodicAllowance { - /** basic specifies a struct of `BasicAllowance` */ - basic?: BasicAllowance; - /** - * period specifies the time duration in which period_spend_limit coins can - * be spent before that allowance is reset - */ - - period?: Duration; - /** - * period_spend_limit specifies the maximum number of coins that can be spent - * in the period - */ - - periodSpendLimit: Coin[]; - /** period_can_spend is the number of coins left to be spent before the period_reset time */ - - periodCanSpend: Coin[]; - /** - * 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 - */ - - periodReset?: Date; -} -/** - * PeriodicAllowance extends Allowance to allow for both a maximum cap, - * as well as a limit per time period. - */ - -export interface PeriodicAllowanceSDKType { - basic?: BasicAllowanceSDKType; - period?: DurationSDKType; - period_spend_limit: CoinSDKType[]; - period_can_spend: CoinSDKType[]; - period_reset?: Date; -} -/** AllowedMsgAllowance creates allowance only for specified message types. */ - -export interface AllowedMsgAllowance { - /** allowance can be any of basic and periodic fee allowance. */ - allowance?: Any; - /** allowed_messages are the messages for which the grantee has the access. */ - - allowedMessages: string[]; -} -/** AllowedMsgAllowance creates allowance only for specified message types. */ - -export interface AllowedMsgAllowanceSDKType { - allowance?: AnySDKType; - allowed_messages: string[]; -} -/** Grant is stored in the KVStore to record a grant with full context */ - -export interface Grant { - /** granter is the address of the user granting an allowance of their funds. */ - granter: string; - /** grantee is the address of the user being granted an allowance of another user's funds. */ - - grantee: string; - /** allowance can be any of basic, periodic, allowed fee allowance. */ - - allowance?: Any; -} -/** Grant is stored in the KVStore to record a grant with full context */ - -export interface GrantSDKType { - granter: string; - grantee: string; - allowance?: AnySDKType; -} - -function createBaseBasicAllowance(): BasicAllowance { - return { - spendLimit: [], - expiration: undefined - }; -} - -export const BasicAllowance = { - encode(message: BasicAllowance, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.spendLimit) { - Coin.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.expiration !== undefined) { - Timestamp.encode(toTimestamp(message.expiration), writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): BasicAllowance { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBasicAllowance(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.spendLimit.push(Coin.decode(reader, reader.uint32())); - break; - - case 2: - message.expiration = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): BasicAllowance { - const message = createBaseBasicAllowance(); - message.spendLimit = object.spendLimit?.map(e => Coin.fromPartial(e)) || []; - message.expiration = object.expiration ?? undefined; - return message; - } - -}; - -function createBasePeriodicAllowance(): PeriodicAllowance { - return { - basic: undefined, - period: undefined, - periodSpendLimit: [], - periodCanSpend: [], - periodReset: undefined - }; -} - -export const PeriodicAllowance = { - encode(message: PeriodicAllowance, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.basic !== undefined) { - BasicAllowance.encode(message.basic, writer.uint32(10).fork()).ldelim(); - } - - if (message.period !== undefined) { - Duration.encode(message.period, writer.uint32(18).fork()).ldelim(); - } - - for (const v of message.periodSpendLimit) { - Coin.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - for (const v of message.periodCanSpend) { - Coin.encode(v!, writer.uint32(34).fork()).ldelim(); - } - - if (message.periodReset !== undefined) { - Timestamp.encode(toTimestamp(message.periodReset), writer.uint32(42).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PeriodicAllowance { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePeriodicAllowance(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.basic = BasicAllowance.decode(reader, reader.uint32()); - break; - - case 2: - message.period = Duration.decode(reader, reader.uint32()); - break; - - case 3: - message.periodSpendLimit.push(Coin.decode(reader, reader.uint32())); - break; - - case 4: - message.periodCanSpend.push(Coin.decode(reader, reader.uint32())); - break; - - case 5: - message.periodReset = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PeriodicAllowance { - const message = createBasePeriodicAllowance(); - message.basic = object.basic !== undefined && object.basic !== null ? BasicAllowance.fromPartial(object.basic) : undefined; - message.period = object.period !== undefined && object.period !== null ? Duration.fromPartial(object.period) : undefined; - message.periodSpendLimit = object.periodSpendLimit?.map(e => Coin.fromPartial(e)) || []; - message.periodCanSpend = object.periodCanSpend?.map(e => Coin.fromPartial(e)) || []; - message.periodReset = object.periodReset ?? undefined; - return message; - } - -}; - -function createBaseAllowedMsgAllowance(): AllowedMsgAllowance { - return { - allowance: undefined, - allowedMessages: [] - }; -} - -export const AllowedMsgAllowance = { - encode(message: AllowedMsgAllowance, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.allowance !== undefined) { - Any.encode(message.allowance, writer.uint32(10).fork()).ldelim(); - } - - for (const v of message.allowedMessages) { - writer.uint32(18).string(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): AllowedMsgAllowance { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAllowedMsgAllowance(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.allowance = Any.decode(reader, reader.uint32()); - break; - - case 2: - message.allowedMessages.push(reader.string()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): AllowedMsgAllowance { - const message = createBaseAllowedMsgAllowance(); - message.allowance = object.allowance !== undefined && object.allowance !== null ? Any.fromPartial(object.allowance) : undefined; - message.allowedMessages = object.allowedMessages?.map(e => e) || []; - return message; - } - -}; - -function createBaseGrant(): Grant { - return { - granter: "", - grantee: "", - allowance: undefined - }; -} - -export const Grant = { - encode(message: Grant, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.granter !== "") { - writer.uint32(10).string(message.granter); - } - - if (message.grantee !== "") { - writer.uint32(18).string(message.grantee); - } - - if (message.allowance !== undefined) { - Any.encode(message.allowance, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Grant { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGrant(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.granter = reader.string(); - break; - - case 2: - message.grantee = reader.string(); - break; - - case 3: - message.allowance = Any.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Grant { - const message = createBaseGrant(); - message.granter = object.granter ?? ""; - message.grantee = object.grantee ?? ""; - message.allowance = object.allowance !== undefined && object.allowance !== null ? Any.fromPartial(object.allowance) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/feegrant/v1beta1/genesis.ts b/packages/codegen/src/cosmos/feegrant/v1beta1/genesis.ts deleted file mode 100644 index 2a4eecde..00000000 --- a/packages/codegen/src/cosmos/feegrant/v1beta1/genesis.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { Grant, GrantSDKType } from "./feegrant"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** GenesisState contains a set of fee allowances, persisted from the store */ - -export interface GenesisState { - allowances: Grant[]; -} -/** GenesisState contains a set of fee allowances, persisted from the store */ - -export interface GenesisStateSDKType { - allowances: GrantSDKType[]; -} - -function createBaseGenesisState(): GenesisState { - return { - allowances: [] - }; -} - -export const GenesisState = { - encode(message: GenesisState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.allowances) { - Grant.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.allowances.push(Grant.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenesisState { - const message = createBaseGenesisState(); - message.allowances = object.allowances?.map(e => Grant.fromPartial(e)) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/feegrant/v1beta1/query.lcd.ts b/packages/codegen/src/cosmos/feegrant/v1beta1/query.lcd.ts deleted file mode 100644 index c486edb7..00000000 --- a/packages/codegen/src/cosmos/feegrant/v1beta1/query.lcd.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { setPaginationParams } from "../../../helpers"; -import { LCDClient } from "@osmonauts/lcd"; -import { QueryAllowanceRequest, QueryAllowanceResponseSDKType, QueryAllowancesRequest, QueryAllowancesResponseSDKType, QueryAllowancesByGranterRequest, QueryAllowancesByGranterResponseSDKType } from "./query"; -export class LCDQueryClient { - req: LCDClient; - - constructor({ - requestClient - }: { - requestClient: LCDClient; - }) { - this.req = requestClient; - this.allowance = this.allowance.bind(this); - this.allowances = this.allowances.bind(this); - this.allowancesByGranter = this.allowancesByGranter.bind(this); - } - /* Allowance returns fee granted to the grantee by the granter. */ - - - async allowance(params: QueryAllowanceRequest): Promise { - const endpoint = `cosmos/feegrant/v1beta1/allowance/${params.granter}/${params.grantee}`; - return await this.req.get(endpoint); - } - /* Allowances returns all the grants for address. */ - - - async allowances(params: QueryAllowancesRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/feegrant/v1beta1/allowances/${params.grantee}`; - return await this.req.get(endpoint, options); - } - /* AllowancesByGranter returns all the grants given by an address - Since v0.46 */ - - - async allowancesByGranter(params: QueryAllowancesByGranterRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/feegrant/v1beta1/issued/${params.granter}`; - return await this.req.get(endpoint, options); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/feegrant/v1beta1/query.rpc.Query.ts b/packages/codegen/src/cosmos/feegrant/v1beta1/query.rpc.Query.ts deleted file mode 100644 index a23808dc..00000000 --- a/packages/codegen/src/cosmos/feegrant/v1beta1/query.rpc.Query.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { QueryAllowanceRequest, QueryAllowanceResponse, QueryAllowancesRequest, QueryAllowancesResponse, QueryAllowancesByGranterRequest, QueryAllowancesByGranterResponse } from "./query"; -/** Query defines the gRPC querier service. */ - -export interface Query { - /** Allowance returns fee granted to the grantee by the granter. */ - allowance(request: QueryAllowanceRequest): Promise; - /** Allowances returns all the grants for address. */ - - allowances(request: QueryAllowancesRequest): Promise; - /** - * AllowancesByGranter returns all the grants given by an address - * Since v0.46 - */ - - allowancesByGranter(request: QueryAllowancesByGranterRequest): Promise; -} -export class QueryClientImpl implements Query { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.allowance = this.allowance.bind(this); - this.allowances = this.allowances.bind(this); - this.allowancesByGranter = this.allowancesByGranter.bind(this); - } - - allowance(request: QueryAllowanceRequest): Promise { - const data = QueryAllowanceRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.feegrant.v1beta1.Query", "Allowance", data); - return promise.then(data => QueryAllowanceResponse.decode(new _m0.Reader(data))); - } - - allowances(request: QueryAllowancesRequest): Promise { - const data = QueryAllowancesRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.feegrant.v1beta1.Query", "Allowances", data); - return promise.then(data => QueryAllowancesResponse.decode(new _m0.Reader(data))); - } - - allowancesByGranter(request: QueryAllowancesByGranterRequest): Promise { - const data = QueryAllowancesByGranterRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.feegrant.v1beta1.Query", "AllowancesByGranter", data); - return promise.then(data => QueryAllowancesByGranterResponse.decode(new _m0.Reader(data))); - } - -} -export const createRpcQueryExtension = (base: QueryClient) => { - const rpc = createProtobufRpcClient(base); - const queryService = new QueryClientImpl(rpc); - return { - allowance(request: QueryAllowanceRequest): Promise { - return queryService.allowance(request); - }, - - allowances(request: QueryAllowancesRequest): Promise { - return queryService.allowances(request); - }, - - allowancesByGranter(request: QueryAllowancesByGranterRequest): Promise { - return queryService.allowancesByGranter(request); - } - - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/feegrant/v1beta1/query.ts b/packages/codegen/src/cosmos/feegrant/v1beta1/query.ts deleted file mode 100644 index 8566eec8..00000000 --- a/packages/codegen/src/cosmos/feegrant/v1beta1/query.ts +++ /dev/null @@ -1,408 +0,0 @@ -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { Grant, GrantSDKType } from "./feegrant"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** QueryAllowanceRequest is the request type for the Query/Allowance RPC method. */ - -export interface QueryAllowanceRequest { - /** granter is the address of the user granting an allowance of their funds. */ - granter: string; - /** grantee is the address of the user being granted an allowance of another user's funds. */ - - grantee: string; -} -/** QueryAllowanceRequest is the request type for the Query/Allowance RPC method. */ - -export interface QueryAllowanceRequestSDKType { - granter: string; - grantee: string; -} -/** QueryAllowanceResponse is the response type for the Query/Allowance RPC method. */ - -export interface QueryAllowanceResponse { - /** allowance is a allowance granted for grantee by granter. */ - allowance?: Grant; -} -/** QueryAllowanceResponse is the response type for the Query/Allowance RPC method. */ - -export interface QueryAllowanceResponseSDKType { - allowance?: GrantSDKType; -} -/** QueryAllowancesRequest is the request type for the Query/Allowances RPC method. */ - -export interface QueryAllowancesRequest { - grantee: string; - /** pagination defines an pagination for the request. */ - - pagination?: PageRequest; -} -/** QueryAllowancesRequest is the request type for the Query/Allowances RPC method. */ - -export interface QueryAllowancesRequestSDKType { - grantee: string; - pagination?: PageRequestSDKType; -} -/** QueryAllowancesResponse is the response type for the Query/Allowances RPC method. */ - -export interface QueryAllowancesResponse { - /** allowances are allowance's granted for grantee by granter. */ - allowances: Grant[]; - /** pagination defines an pagination for the response. */ - - pagination?: PageResponse; -} -/** QueryAllowancesResponse is the response type for the Query/Allowances RPC method. */ - -export interface QueryAllowancesResponseSDKType { - allowances: GrantSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryAllowancesByGranterRequest is the request type for the Query/AllowancesByGranter RPC method. */ - -export interface QueryAllowancesByGranterRequest { - granter: string; - /** pagination defines an pagination for the request. */ - - pagination?: PageRequest; -} -/** QueryAllowancesByGranterRequest is the request type for the Query/AllowancesByGranter RPC method. */ - -export interface QueryAllowancesByGranterRequestSDKType { - granter: string; - pagination?: PageRequestSDKType; -} -/** QueryAllowancesByGranterResponse is the response type for the Query/AllowancesByGranter RPC method. */ - -export interface QueryAllowancesByGranterResponse { - /** allowances that have been issued by the granter. */ - allowances: Grant[]; - /** pagination defines an pagination for the response. */ - - pagination?: PageResponse; -} -/** QueryAllowancesByGranterResponse is the response type for the Query/AllowancesByGranter RPC method. */ - -export interface QueryAllowancesByGranterResponseSDKType { - allowances: GrantSDKType[]; - pagination?: PageResponseSDKType; -} - -function createBaseQueryAllowanceRequest(): QueryAllowanceRequest { - return { - granter: "", - grantee: "" - }; -} - -export const QueryAllowanceRequest = { - encode(message: QueryAllowanceRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.granter !== "") { - writer.uint32(10).string(message.granter); - } - - if (message.grantee !== "") { - writer.uint32(18).string(message.grantee); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllowanceRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllowanceRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.granter = reader.string(); - break; - - case 2: - message.grantee = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryAllowanceRequest { - const message = createBaseQueryAllowanceRequest(); - message.granter = object.granter ?? ""; - message.grantee = object.grantee ?? ""; - return message; - } - -}; - -function createBaseQueryAllowanceResponse(): QueryAllowanceResponse { - return { - allowance: undefined - }; -} - -export const QueryAllowanceResponse = { - encode(message: QueryAllowanceResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.allowance !== undefined) { - Grant.encode(message.allowance, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllowanceResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllowanceResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.allowance = Grant.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryAllowanceResponse { - const message = createBaseQueryAllowanceResponse(); - message.allowance = object.allowance !== undefined && object.allowance !== null ? Grant.fromPartial(object.allowance) : undefined; - return message; - } - -}; - -function createBaseQueryAllowancesRequest(): QueryAllowancesRequest { - return { - grantee: "", - pagination: undefined - }; -} - -export const QueryAllowancesRequest = { - encode(message: QueryAllowancesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.grantee !== "") { - writer.uint32(10).string(message.grantee); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllowancesRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllowancesRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.grantee = reader.string(); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryAllowancesRequest { - const message = createBaseQueryAllowancesRequest(); - message.grantee = object.grantee ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryAllowancesResponse(): QueryAllowancesResponse { - return { - allowances: [], - pagination: undefined - }; -} - -export const QueryAllowancesResponse = { - encode(message: QueryAllowancesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.allowances) { - Grant.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllowancesResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllowancesResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.allowances.push(Grant.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryAllowancesResponse { - const message = createBaseQueryAllowancesResponse(); - message.allowances = object.allowances?.map(e => Grant.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryAllowancesByGranterRequest(): QueryAllowancesByGranterRequest { - return { - granter: "", - pagination: undefined - }; -} - -export const QueryAllowancesByGranterRequest = { - encode(message: QueryAllowancesByGranterRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.granter !== "") { - writer.uint32(10).string(message.granter); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllowancesByGranterRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllowancesByGranterRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.granter = reader.string(); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryAllowancesByGranterRequest { - const message = createBaseQueryAllowancesByGranterRequest(); - message.granter = object.granter ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryAllowancesByGranterResponse(): QueryAllowancesByGranterResponse { - return { - allowances: [], - pagination: undefined - }; -} - -export const QueryAllowancesByGranterResponse = { - encode(message: QueryAllowancesByGranterResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.allowances) { - Grant.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllowancesByGranterResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllowancesByGranterResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.allowances.push(Grant.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryAllowancesByGranterResponse { - const message = createBaseQueryAllowancesByGranterResponse(); - message.allowances = object.allowances?.map(e => Grant.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/feegrant/v1beta1/tx.rpc.msg.ts b/packages/codegen/src/cosmos/feegrant/v1beta1/tx.rpc.msg.ts deleted file mode 100644 index 1bc315e3..00000000 --- a/packages/codegen/src/cosmos/feegrant/v1beta1/tx.rpc.msg.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { MsgGrantAllowance, MsgGrantAllowanceResponse, MsgRevokeAllowance, MsgRevokeAllowanceResponse } from "./tx"; -/** Msg defines the feegrant msg service. */ - -export interface Msg { - /** - * GrantAllowance grants fee allowance to the grantee on the granter's - * account with the provided expiration time. - */ - grantAllowance(request: MsgGrantAllowance): Promise; - /** - * RevokeAllowance revokes any fee allowance of granter's account that - * has been granted to the grantee. - */ - - revokeAllowance(request: MsgRevokeAllowance): Promise; -} -export class MsgClientImpl implements Msg { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.grantAllowance = this.grantAllowance.bind(this); - this.revokeAllowance = this.revokeAllowance.bind(this); - } - - grantAllowance(request: MsgGrantAllowance): Promise { - const data = MsgGrantAllowance.encode(request).finish(); - const promise = this.rpc.request("cosmos.feegrant.v1beta1.Msg", "GrantAllowance", data); - return promise.then(data => MsgGrantAllowanceResponse.decode(new _m0.Reader(data))); - } - - revokeAllowance(request: MsgRevokeAllowance): Promise { - const data = MsgRevokeAllowance.encode(request).finish(); - const promise = this.rpc.request("cosmos.feegrant.v1beta1.Msg", "RevokeAllowance", data); - return promise.then(data => MsgRevokeAllowanceResponse.decode(new _m0.Reader(data))); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/feegrant/v1beta1/tx.ts b/packages/codegen/src/cosmos/feegrant/v1beta1/tx.ts deleted file mode 100644 index 36b1e000..00000000 --- a/packages/codegen/src/cosmos/feegrant/v1beta1/tx.ts +++ /dev/null @@ -1,243 +0,0 @@ -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * MsgGrantAllowance adds permission for Grantee to spend up to Allowance - * of fees from the account of Granter. - */ - -export interface MsgGrantAllowance { - /** granter is the address of the user granting an allowance of their funds. */ - granter: string; - /** grantee is the address of the user being granted an allowance of another user's funds. */ - - grantee: string; - /** allowance can be any of basic, periodic, allowed fee allowance. */ - - allowance?: Any; -} -/** - * MsgGrantAllowance adds permission for Grantee to spend up to Allowance - * of fees from the account of Granter. - */ - -export interface MsgGrantAllowanceSDKType { - granter: string; - grantee: string; - allowance?: AnySDKType; -} -/** MsgGrantAllowanceResponse defines the Msg/GrantAllowanceResponse response type. */ - -export interface MsgGrantAllowanceResponse {} -/** MsgGrantAllowanceResponse defines the Msg/GrantAllowanceResponse response type. */ - -export interface MsgGrantAllowanceResponseSDKType {} -/** MsgRevokeAllowance removes any existing Allowance from Granter to Grantee. */ - -export interface MsgRevokeAllowance { - /** granter is the address of the user granting an allowance of their funds. */ - granter: string; - /** grantee is the address of the user being granted an allowance of another user's funds. */ - - grantee: string; -} -/** MsgRevokeAllowance removes any existing Allowance from Granter to Grantee. */ - -export interface MsgRevokeAllowanceSDKType { - granter: string; - grantee: string; -} -/** MsgRevokeAllowanceResponse defines the Msg/RevokeAllowanceResponse response type. */ - -export interface MsgRevokeAllowanceResponse {} -/** MsgRevokeAllowanceResponse defines the Msg/RevokeAllowanceResponse response type. */ - -export interface MsgRevokeAllowanceResponseSDKType {} - -function createBaseMsgGrantAllowance(): MsgGrantAllowance { - return { - granter: "", - grantee: "", - allowance: undefined - }; -} - -export const MsgGrantAllowance = { - encode(message: MsgGrantAllowance, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.granter !== "") { - writer.uint32(10).string(message.granter); - } - - if (message.grantee !== "") { - writer.uint32(18).string(message.grantee); - } - - if (message.allowance !== undefined) { - Any.encode(message.allowance, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgGrantAllowance { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgGrantAllowance(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.granter = reader.string(); - break; - - case 2: - message.grantee = reader.string(); - break; - - case 3: - message.allowance = Any.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgGrantAllowance { - const message = createBaseMsgGrantAllowance(); - message.granter = object.granter ?? ""; - message.grantee = object.grantee ?? ""; - message.allowance = object.allowance !== undefined && object.allowance !== null ? Any.fromPartial(object.allowance) : undefined; - return message; - } - -}; - -function createBaseMsgGrantAllowanceResponse(): MsgGrantAllowanceResponse { - return {}; -} - -export const MsgGrantAllowanceResponse = { - encode(_: MsgGrantAllowanceResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgGrantAllowanceResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgGrantAllowanceResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgGrantAllowanceResponse { - const message = createBaseMsgGrantAllowanceResponse(); - return message; - } - -}; - -function createBaseMsgRevokeAllowance(): MsgRevokeAllowance { - return { - granter: "", - grantee: "" - }; -} - -export const MsgRevokeAllowance = { - encode(message: MsgRevokeAllowance, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.granter !== "") { - writer.uint32(10).string(message.granter); - } - - if (message.grantee !== "") { - writer.uint32(18).string(message.grantee); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgRevokeAllowance { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgRevokeAllowance(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.granter = reader.string(); - break; - - case 2: - message.grantee = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgRevokeAllowance { - const message = createBaseMsgRevokeAllowance(); - message.granter = object.granter ?? ""; - message.grantee = object.grantee ?? ""; - return message; - } - -}; - -function createBaseMsgRevokeAllowanceResponse(): MsgRevokeAllowanceResponse { - return {}; -} - -export const MsgRevokeAllowanceResponse = { - encode(_: MsgRevokeAllowanceResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgRevokeAllowanceResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgRevokeAllowanceResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgRevokeAllowanceResponse { - const message = createBaseMsgRevokeAllowanceResponse(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/genutil/v1beta1/genesis.ts b/packages/codegen/src/cosmos/genutil/v1beta1/genesis.ts deleted file mode 100644 index f6926d17..00000000 --- a/packages/codegen/src/cosmos/genutil/v1beta1/genesis.ts +++ /dev/null @@ -1,58 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** GenesisState defines the raw genesis transaction in JSON. */ - -export interface GenesisState { - /** gen_txs defines the genesis transactions. */ - genTxs: Uint8Array[]; -} -/** GenesisState defines the raw genesis transaction in JSON. */ - -export interface GenesisStateSDKType { - gen_txs: Uint8Array[]; -} - -function createBaseGenesisState(): GenesisState { - return { - genTxs: [] - }; -} - -export const GenesisState = { - encode(message: GenesisState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.genTxs) { - writer.uint32(10).bytes(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.genTxs.push(reader.bytes()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenesisState { - const message = createBaseGenesisState(); - message.genTxs = object.genTxs?.map(e => e) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/gov/v1/genesis.ts b/packages/codegen/src/cosmos/gov/v1/genesis.ts deleted file mode 100644 index 101340fc..00000000 --- a/packages/codegen/src/cosmos/gov/v1/genesis.ts +++ /dev/null @@ -1,143 +0,0 @@ -import { Deposit, DepositSDKType, Vote, VoteSDKType, Proposal, ProposalSDKType, DepositParams, DepositParamsSDKType, VotingParams, VotingParamsSDKType, TallyParams, TallyParamsSDKType } from "./gov"; -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** GenesisState defines the gov module's genesis state. */ - -export interface GenesisState { - /** starting_proposal_id is the ID of the starting proposal. */ - startingProposalId: Long; - /** deposits defines all the deposits present at genesis. */ - - deposits: Deposit[]; - /** votes defines all the votes present at genesis. */ - - votes: Vote[]; - /** proposals defines all the proposals present at genesis. */ - - proposals: Proposal[]; - /** params defines all the paramaters of related to deposit. */ - - depositParams?: DepositParams; - /** params defines all the paramaters of related to voting. */ - - votingParams?: VotingParams; - /** params defines all the paramaters of related to tally. */ - - tallyParams?: TallyParams; -} -/** GenesisState defines the gov module's genesis state. */ - -export interface GenesisStateSDKType { - starting_proposal_id: Long; - deposits: DepositSDKType[]; - votes: VoteSDKType[]; - proposals: ProposalSDKType[]; - deposit_params?: DepositParamsSDKType; - voting_params?: VotingParamsSDKType; - tally_params?: TallyParamsSDKType; -} - -function createBaseGenesisState(): GenesisState { - return { - startingProposalId: Long.UZERO, - deposits: [], - votes: [], - proposals: [], - depositParams: undefined, - votingParams: undefined, - tallyParams: undefined - }; -} - -export const GenesisState = { - encode(message: GenesisState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.startingProposalId.isZero()) { - writer.uint32(8).uint64(message.startingProposalId); - } - - for (const v of message.deposits) { - Deposit.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - for (const v of message.votes) { - Vote.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - for (const v of message.proposals) { - Proposal.encode(v!, writer.uint32(34).fork()).ldelim(); - } - - if (message.depositParams !== undefined) { - DepositParams.encode(message.depositParams, writer.uint32(42).fork()).ldelim(); - } - - if (message.votingParams !== undefined) { - VotingParams.encode(message.votingParams, writer.uint32(50).fork()).ldelim(); - } - - if (message.tallyParams !== undefined) { - TallyParams.encode(message.tallyParams, writer.uint32(58).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.startingProposalId = (reader.uint64() as Long); - break; - - case 2: - message.deposits.push(Deposit.decode(reader, reader.uint32())); - break; - - case 3: - message.votes.push(Vote.decode(reader, reader.uint32())); - break; - - case 4: - message.proposals.push(Proposal.decode(reader, reader.uint32())); - break; - - case 5: - message.depositParams = DepositParams.decode(reader, reader.uint32()); - break; - - case 6: - message.votingParams = VotingParams.decode(reader, reader.uint32()); - break; - - case 7: - message.tallyParams = TallyParams.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenesisState { - const message = createBaseGenesisState(); - message.startingProposalId = object.startingProposalId !== undefined && object.startingProposalId !== null ? Long.fromValue(object.startingProposalId) : Long.UZERO; - message.deposits = object.deposits?.map(e => Deposit.fromPartial(e)) || []; - message.votes = object.votes?.map(e => Vote.fromPartial(e)) || []; - message.proposals = object.proposals?.map(e => Proposal.fromPartial(e)) || []; - message.depositParams = object.depositParams !== undefined && object.depositParams !== null ? DepositParams.fromPartial(object.depositParams) : undefined; - message.votingParams = object.votingParams !== undefined && object.votingParams !== null ? VotingParams.fromPartial(object.votingParams) : undefined; - message.tallyParams = object.tallyParams !== undefined && object.tallyParams !== null ? TallyParams.fromPartial(object.tallyParams) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/gov/v1/gov.ts b/packages/codegen/src/cosmos/gov/v1/gov.ts deleted file mode 100644 index 5d9f109d..00000000 --- a/packages/codegen/src/cosmos/gov/v1/gov.ts +++ /dev/null @@ -1,903 +0,0 @@ -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import { Timestamp } from "../../../google/protobuf/timestamp"; -import { Duration, DurationSDKType } from "../../../google/protobuf/duration"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long, toTimestamp, fromTimestamp } from "../../../helpers"; -/** VoteOption enumerates the valid vote options for a given governance proposal. */ - -export enum VoteOption { - /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */ - VOTE_OPTION_UNSPECIFIED = 0, - - /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */ - VOTE_OPTION_YES = 1, - - /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */ - VOTE_OPTION_ABSTAIN = 2, - - /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */ - VOTE_OPTION_NO = 3, - - /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */ - VOTE_OPTION_NO_WITH_VETO = 4, - UNRECOGNIZED = -1, -} -export const VoteOptionSDKType = VoteOption; -export function voteOptionFromJSON(object: any): VoteOption { - switch (object) { - case 0: - case "VOTE_OPTION_UNSPECIFIED": - return VoteOption.VOTE_OPTION_UNSPECIFIED; - - case 1: - case "VOTE_OPTION_YES": - return VoteOption.VOTE_OPTION_YES; - - case 2: - case "VOTE_OPTION_ABSTAIN": - return VoteOption.VOTE_OPTION_ABSTAIN; - - case 3: - case "VOTE_OPTION_NO": - return VoteOption.VOTE_OPTION_NO; - - case 4: - case "VOTE_OPTION_NO_WITH_VETO": - return VoteOption.VOTE_OPTION_NO_WITH_VETO; - - case -1: - case "UNRECOGNIZED": - default: - return VoteOption.UNRECOGNIZED; - } -} -export function voteOptionToJSON(object: VoteOption): string { - switch (object) { - case VoteOption.VOTE_OPTION_UNSPECIFIED: - return "VOTE_OPTION_UNSPECIFIED"; - - case VoteOption.VOTE_OPTION_YES: - return "VOTE_OPTION_YES"; - - case VoteOption.VOTE_OPTION_ABSTAIN: - return "VOTE_OPTION_ABSTAIN"; - - case VoteOption.VOTE_OPTION_NO: - return "VOTE_OPTION_NO"; - - case VoteOption.VOTE_OPTION_NO_WITH_VETO: - return "VOTE_OPTION_NO_WITH_VETO"; - - case VoteOption.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** ProposalStatus enumerates the valid statuses of a proposal. */ - -export enum ProposalStatus { - /** PROPOSAL_STATUS_UNSPECIFIED - PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. */ - PROPOSAL_STATUS_UNSPECIFIED = 0, - - /** - * PROPOSAL_STATUS_DEPOSIT_PERIOD - PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit - * period. - */ - PROPOSAL_STATUS_DEPOSIT_PERIOD = 1, - - /** - * PROPOSAL_STATUS_VOTING_PERIOD - PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting - * period. - */ - PROPOSAL_STATUS_VOTING_PERIOD = 2, - - /** - * PROPOSAL_STATUS_PASSED - PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has - * passed. - */ - PROPOSAL_STATUS_PASSED = 3, - - /** - * PROPOSAL_STATUS_REJECTED - PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has - * been rejected. - */ - PROPOSAL_STATUS_REJECTED = 4, - - /** - * PROPOSAL_STATUS_FAILED - PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has - * failed. - */ - PROPOSAL_STATUS_FAILED = 5, - UNRECOGNIZED = -1, -} -export const ProposalStatusSDKType = ProposalStatus; -export function proposalStatusFromJSON(object: any): ProposalStatus { - switch (object) { - case 0: - case "PROPOSAL_STATUS_UNSPECIFIED": - return ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED; - - case 1: - case "PROPOSAL_STATUS_DEPOSIT_PERIOD": - return ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD; - - case 2: - case "PROPOSAL_STATUS_VOTING_PERIOD": - return ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD; - - case 3: - case "PROPOSAL_STATUS_PASSED": - return ProposalStatus.PROPOSAL_STATUS_PASSED; - - case 4: - case "PROPOSAL_STATUS_REJECTED": - return ProposalStatus.PROPOSAL_STATUS_REJECTED; - - case 5: - case "PROPOSAL_STATUS_FAILED": - return ProposalStatus.PROPOSAL_STATUS_FAILED; - - case -1: - case "UNRECOGNIZED": - default: - return ProposalStatus.UNRECOGNIZED; - } -} -export function proposalStatusToJSON(object: ProposalStatus): string { - switch (object) { - case ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED: - return "PROPOSAL_STATUS_UNSPECIFIED"; - - case ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD: - return "PROPOSAL_STATUS_DEPOSIT_PERIOD"; - - case ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD: - return "PROPOSAL_STATUS_VOTING_PERIOD"; - - case ProposalStatus.PROPOSAL_STATUS_PASSED: - return "PROPOSAL_STATUS_PASSED"; - - case ProposalStatus.PROPOSAL_STATUS_REJECTED: - return "PROPOSAL_STATUS_REJECTED"; - - case ProposalStatus.PROPOSAL_STATUS_FAILED: - return "PROPOSAL_STATUS_FAILED"; - - case ProposalStatus.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** WeightedVoteOption defines a unit of vote for vote split. */ - -export interface WeightedVoteOption { - option: VoteOption; - weight: string; -} -/** WeightedVoteOption defines a unit of vote for vote split. */ - -export interface WeightedVoteOptionSDKType { - option: VoteOption; - weight: string; -} -/** - * Deposit defines an amount deposited by an account address to an active - * proposal. - */ - -export interface Deposit { - proposalId: Long; - depositor: string; - amount: Coin[]; -} -/** - * Deposit defines an amount deposited by an account address to an active - * proposal. - */ - -export interface DepositSDKType { - proposal_id: Long; - depositor: string; - amount: CoinSDKType[]; -} -/** Proposal defines the core field members of a governance proposal. */ - -export interface Proposal { - id: Long; - messages: Any[]; - status: ProposalStatus; - /** - * 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. - */ - - finalTallyResult?: TallyResult; - submitTime?: Date; - depositEndTime?: Date; - totalDeposit: Coin[]; - votingStartTime?: Date; - votingEndTime?: Date; - /** metadata is any arbitrary metadata attached to the proposal. */ - - metadata: string; -} -/** Proposal defines the core field members of a governance proposal. */ - -export interface ProposalSDKType { - id: Long; - messages: AnySDKType[]; - status: ProposalStatus; - final_tally_result?: TallyResultSDKType; - submit_time?: Date; - deposit_end_time?: Date; - total_deposit: CoinSDKType[]; - voting_start_time?: Date; - voting_end_time?: Date; - metadata: string; -} -/** TallyResult defines a standard tally for a governance proposal. */ - -export interface TallyResult { - yesCount: string; - abstainCount: string; - noCount: string; - noWithVetoCount: string; -} -/** TallyResult defines a standard tally for a governance proposal. */ - -export interface TallyResultSDKType { - yes_count: string; - abstain_count: string; - no_count: string; - no_with_veto_count: string; -} -/** - * Vote defines a vote on a governance proposal. - * A Vote consists of a proposal ID, the voter, and the vote option. - */ - -export interface Vote { - proposalId: Long; - voter: string; - options: WeightedVoteOption[]; - /** metadata is any arbitrary metadata to attached to the vote. */ - - metadata: string; -} -/** - * Vote defines a vote on a governance proposal. - * A Vote consists of a proposal ID, the voter, and the vote option. - */ - -export interface VoteSDKType { - proposal_id: Long; - voter: string; - options: WeightedVoteOptionSDKType[]; - metadata: string; -} -/** DepositParams defines the params for deposits on governance proposals. */ - -export interface DepositParams { - /** Minimum deposit for a proposal to enter voting period. */ - minDeposit: Coin[]; - /** - * Maximum period for Atom holders to deposit on a proposal. Initial value: 2 - * months. - */ - - maxDepositPeriod?: Duration; -} -/** DepositParams defines the params for deposits on governance proposals. */ - -export interface DepositParamsSDKType { - min_deposit: CoinSDKType[]; - max_deposit_period?: DurationSDKType; -} -/** VotingParams defines the params for voting on governance proposals. */ - -export interface VotingParams { - /** Length of the voting period. */ - votingPeriod?: Duration; -} -/** VotingParams defines the params for voting on governance proposals. */ - -export interface VotingParamsSDKType { - voting_period?: DurationSDKType; -} -/** TallyParams defines the params for tallying votes on governance proposals. */ - -export interface TallyParams { - /** - * Minimum percentage of total stake needed to vote for a result to be - * considered valid. - */ - quorum: string; - /** Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. */ - - threshold: string; - /** - * Minimum value of Veto votes to Total votes ratio for proposal to be - * vetoed. Default value: 1/3. - */ - - vetoThreshold: string; -} -/** TallyParams defines the params for tallying votes on governance proposals. */ - -export interface TallyParamsSDKType { - quorum: string; - threshold: string; - veto_threshold: string; -} - -function createBaseWeightedVoteOption(): WeightedVoteOption { - return { - option: 0, - weight: "" - }; -} - -export const WeightedVoteOption = { - encode(message: WeightedVoteOption, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.option !== 0) { - writer.uint32(8).int32(message.option); - } - - if (message.weight !== "") { - writer.uint32(18).string(message.weight); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): WeightedVoteOption { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseWeightedVoteOption(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.option = (reader.int32() as any); - break; - - case 2: - message.weight = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): WeightedVoteOption { - const message = createBaseWeightedVoteOption(); - message.option = object.option ?? 0; - message.weight = object.weight ?? ""; - return message; - } - -}; - -function createBaseDeposit(): Deposit { - return { - proposalId: Long.UZERO, - depositor: "", - amount: [] - }; -} - -export const Deposit = { - encode(message: Deposit, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.depositor !== "") { - writer.uint32(18).string(message.depositor); - } - - for (const v of message.amount) { - Coin.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Deposit { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDeposit(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.depositor = reader.string(); - break; - - case 3: - message.amount.push(Coin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Deposit { - const message = createBaseDeposit(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.depositor = object.depositor ?? ""; - message.amount = object.amount?.map(e => Coin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseProposal(): Proposal { - return { - id: Long.UZERO, - messages: [], - status: 0, - finalTallyResult: undefined, - submitTime: undefined, - depositEndTime: undefined, - totalDeposit: [], - votingStartTime: undefined, - votingEndTime: undefined, - metadata: "" - }; -} - -export const Proposal = { - encode(message: Proposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.id.isZero()) { - writer.uint32(8).uint64(message.id); - } - - for (const v of message.messages) { - Any.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - if (message.status !== 0) { - writer.uint32(24).int32(message.status); - } - - if (message.finalTallyResult !== undefined) { - TallyResult.encode(message.finalTallyResult, writer.uint32(34).fork()).ldelim(); - } - - if (message.submitTime !== undefined) { - Timestamp.encode(toTimestamp(message.submitTime), writer.uint32(42).fork()).ldelim(); - } - - if (message.depositEndTime !== undefined) { - Timestamp.encode(toTimestamp(message.depositEndTime), writer.uint32(50).fork()).ldelim(); - } - - for (const v of message.totalDeposit) { - Coin.encode(v!, writer.uint32(58).fork()).ldelim(); - } - - if (message.votingStartTime !== undefined) { - Timestamp.encode(toTimestamp(message.votingStartTime), writer.uint32(66).fork()).ldelim(); - } - - if (message.votingEndTime !== undefined) { - Timestamp.encode(toTimestamp(message.votingEndTime), writer.uint32(74).fork()).ldelim(); - } - - if (message.metadata !== "") { - writer.uint32(82).string(message.metadata); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Proposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.id = (reader.uint64() as Long); - break; - - case 2: - message.messages.push(Any.decode(reader, reader.uint32())); - break; - - case 3: - message.status = (reader.int32() as any); - break; - - case 4: - message.finalTallyResult = TallyResult.decode(reader, reader.uint32()); - break; - - case 5: - message.submitTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - case 6: - message.depositEndTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - case 7: - message.totalDeposit.push(Coin.decode(reader, reader.uint32())); - break; - - case 8: - message.votingStartTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - case 9: - message.votingEndTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - case 10: - message.metadata = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Proposal { - const message = createBaseProposal(); - message.id = object.id !== undefined && object.id !== null ? Long.fromValue(object.id) : Long.UZERO; - message.messages = object.messages?.map(e => Any.fromPartial(e)) || []; - message.status = object.status ?? 0; - message.finalTallyResult = object.finalTallyResult !== undefined && object.finalTallyResult !== null ? TallyResult.fromPartial(object.finalTallyResult) : undefined; - message.submitTime = object.submitTime ?? undefined; - message.depositEndTime = object.depositEndTime ?? undefined; - message.totalDeposit = object.totalDeposit?.map(e => Coin.fromPartial(e)) || []; - message.votingStartTime = object.votingStartTime ?? undefined; - message.votingEndTime = object.votingEndTime ?? undefined; - message.metadata = object.metadata ?? ""; - return message; - } - -}; - -function createBaseTallyResult(): TallyResult { - return { - yesCount: "", - abstainCount: "", - noCount: "", - noWithVetoCount: "" - }; -} - -export const TallyResult = { - encode(message: TallyResult, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.yesCount !== "") { - writer.uint32(10).string(message.yesCount); - } - - if (message.abstainCount !== "") { - writer.uint32(18).string(message.abstainCount); - } - - if (message.noCount !== "") { - writer.uint32(26).string(message.noCount); - } - - if (message.noWithVetoCount !== "") { - writer.uint32(34).string(message.noWithVetoCount); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): TallyResult { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTallyResult(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.yesCount = reader.string(); - break; - - case 2: - message.abstainCount = reader.string(); - break; - - case 3: - message.noCount = reader.string(); - break; - - case 4: - message.noWithVetoCount = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): TallyResult { - const message = createBaseTallyResult(); - message.yesCount = object.yesCount ?? ""; - message.abstainCount = object.abstainCount ?? ""; - message.noCount = object.noCount ?? ""; - message.noWithVetoCount = object.noWithVetoCount ?? ""; - return message; - } - -}; - -function createBaseVote(): Vote { - return { - proposalId: Long.UZERO, - voter: "", - options: [], - metadata: "" - }; -} - -export const Vote = { - encode(message: Vote, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.voter !== "") { - writer.uint32(18).string(message.voter); - } - - for (const v of message.options) { - WeightedVoteOption.encode(v!, writer.uint32(34).fork()).ldelim(); - } - - if (message.metadata !== "") { - writer.uint32(42).string(message.metadata); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Vote { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseVote(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.voter = reader.string(); - break; - - case 4: - message.options.push(WeightedVoteOption.decode(reader, reader.uint32())); - break; - - case 5: - message.metadata = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Vote { - const message = createBaseVote(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.voter = object.voter ?? ""; - message.options = object.options?.map(e => WeightedVoteOption.fromPartial(e)) || []; - message.metadata = object.metadata ?? ""; - return message; - } - -}; - -function createBaseDepositParams(): DepositParams { - return { - minDeposit: [], - maxDepositPeriod: undefined - }; -} - -export const DepositParams = { - encode(message: DepositParams, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.minDeposit) { - Coin.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.maxDepositPeriod !== undefined) { - Duration.encode(message.maxDepositPeriod, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): DepositParams { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDepositParams(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.minDeposit.push(Coin.decode(reader, reader.uint32())); - break; - - case 2: - message.maxDepositPeriod = Duration.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): DepositParams { - const message = createBaseDepositParams(); - message.minDeposit = object.minDeposit?.map(e => Coin.fromPartial(e)) || []; - message.maxDepositPeriod = object.maxDepositPeriod !== undefined && object.maxDepositPeriod !== null ? Duration.fromPartial(object.maxDepositPeriod) : undefined; - return message; - } - -}; - -function createBaseVotingParams(): VotingParams { - return { - votingPeriod: undefined - }; -} - -export const VotingParams = { - encode(message: VotingParams, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.votingPeriod !== undefined) { - Duration.encode(message.votingPeriod, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): VotingParams { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseVotingParams(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.votingPeriod = Duration.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): VotingParams { - const message = createBaseVotingParams(); - message.votingPeriod = object.votingPeriod !== undefined && object.votingPeriod !== null ? Duration.fromPartial(object.votingPeriod) : undefined; - return message; - } - -}; - -function createBaseTallyParams(): TallyParams { - return { - quorum: "", - threshold: "", - vetoThreshold: "" - }; -} - -export const TallyParams = { - encode(message: TallyParams, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.quorum !== "") { - writer.uint32(10).string(message.quorum); - } - - if (message.threshold !== "") { - writer.uint32(18).string(message.threshold); - } - - if (message.vetoThreshold !== "") { - writer.uint32(26).string(message.vetoThreshold); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): TallyParams { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTallyParams(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.quorum = reader.string(); - break; - - case 2: - message.threshold = reader.string(); - break; - - case 3: - message.vetoThreshold = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): TallyParams { - const message = createBaseTallyParams(); - message.quorum = object.quorum ?? ""; - message.threshold = object.threshold ?? ""; - message.vetoThreshold = object.vetoThreshold ?? ""; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/gov/v1/query.lcd.ts b/packages/codegen/src/cosmos/gov/v1/query.lcd.ts deleted file mode 100644 index c9d07eb7..00000000 --- a/packages/codegen/src/cosmos/gov/v1/query.lcd.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { setPaginationParams } from "../../../helpers"; -import { LCDClient } from "@osmonauts/lcd"; -import { QueryProposalRequest, QueryProposalResponseSDKType, QueryProposalsRequest, QueryProposalsResponseSDKType, QueryVoteRequest, QueryVoteResponseSDKType, QueryVotesRequest, QueryVotesResponseSDKType, QueryParamsRequest, QueryParamsResponseSDKType, QueryDepositRequest, QueryDepositResponseSDKType, QueryDepositsRequest, QueryDepositsResponseSDKType, QueryTallyResultRequest, QueryTallyResultResponseSDKType } from "./query"; -export class LCDQueryClient { - req: LCDClient; - - constructor({ - requestClient - }: { - requestClient: LCDClient; - }) { - this.req = requestClient; - this.proposal = this.proposal.bind(this); - this.proposals = this.proposals.bind(this); - this.vote = this.vote.bind(this); - this.votes = this.votes.bind(this); - this.params = this.params.bind(this); - this.deposit = this.deposit.bind(this); - this.deposits = this.deposits.bind(this); - this.tallyResult = this.tallyResult.bind(this); - } - /* Proposal queries proposal details based on ProposalID. */ - - - async proposal(params: QueryProposalRequest): Promise { - const endpoint = `cosmos/gov/v1/proposals/${params.proposalId}`; - return await this.req.get(endpoint); - } - /* Proposals queries all proposals based on given status. */ - - - async proposals(params: QueryProposalsRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.proposalStatus !== "undefined") { - options.params.proposal_status = params.proposalStatus; - } - - if (typeof params?.voter !== "undefined") { - options.params.voter = params.voter; - } - - if (typeof params?.depositor !== "undefined") { - options.params.depositor = params.depositor; - } - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/gov/v1/proposals`; - return await this.req.get(endpoint, options); - } - /* Vote queries voted information based on proposalID, voterAddr. */ - - - async vote(params: QueryVoteRequest): Promise { - const endpoint = `cosmos/gov/v1/proposals/${params.proposalId}/votes/${params.voter}`; - return await this.req.get(endpoint); - } - /* Votes queries votes of a given proposal. */ - - - async votes(params: QueryVotesRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/gov/v1/proposals/${params.proposalId}/votes`; - return await this.req.get(endpoint, options); - } - /* Params queries all parameters of the gov module. */ - - - async params(params: QueryParamsRequest): Promise { - const endpoint = `cosmos/gov/v1/params/${params.paramsType}`; - return await this.req.get(endpoint); - } - /* Deposit queries single deposit information based proposalID, depositAddr. */ - - - async deposit(params: QueryDepositRequest): Promise { - const endpoint = `cosmos/gov/v1/proposals/${params.proposalId}/deposits/${params.depositor}`; - return await this.req.get(endpoint); - } - /* Deposits queries all deposits of a single proposal. */ - - - async deposits(params: QueryDepositsRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/gov/v1/proposals/${params.proposalId}/deposits`; - return await this.req.get(endpoint, options); - } - /* TallyResult queries the tally of a proposal vote. */ - - - async tallyResult(params: QueryTallyResultRequest): Promise { - const endpoint = `cosmos/gov/v1/proposals/${params.proposalId}/tally`; - return await this.req.get(endpoint); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/gov/v1/query.rpc.Query.ts b/packages/codegen/src/cosmos/gov/v1/query.rpc.Query.ts deleted file mode 100644 index 35784235..00000000 --- a/packages/codegen/src/cosmos/gov/v1/query.rpc.Query.ts +++ /dev/null @@ -1,133 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { QueryProposalRequest, QueryProposalResponse, QueryProposalsRequest, QueryProposalsResponse, QueryVoteRequest, QueryVoteResponse, QueryVotesRequest, QueryVotesResponse, QueryParamsRequest, QueryParamsResponse, QueryDepositRequest, QueryDepositResponse, QueryDepositsRequest, QueryDepositsResponse, QueryTallyResultRequest, QueryTallyResultResponse } from "./query"; -/** Query defines the gRPC querier service for gov module */ - -export interface Query { - /** Proposal queries proposal details based on ProposalID. */ - proposal(request: QueryProposalRequest): Promise; - /** Proposals queries all proposals based on given status. */ - - proposals(request: QueryProposalsRequest): Promise; - /** Vote queries voted information based on proposalID, voterAddr. */ - - vote(request: QueryVoteRequest): Promise; - /** Votes queries votes of a given proposal. */ - - votes(request: QueryVotesRequest): Promise; - /** Params queries all parameters of the gov module. */ - - params(request: QueryParamsRequest): Promise; - /** Deposit queries single deposit information based proposalID, depositAddr. */ - - deposit(request: QueryDepositRequest): Promise; - /** Deposits queries all deposits of a single proposal. */ - - deposits(request: QueryDepositsRequest): Promise; - /** TallyResult queries the tally of a proposal vote. */ - - tallyResult(request: QueryTallyResultRequest): Promise; -} -export class QueryClientImpl implements Query { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.proposal = this.proposal.bind(this); - this.proposals = this.proposals.bind(this); - this.vote = this.vote.bind(this); - this.votes = this.votes.bind(this); - this.params = this.params.bind(this); - this.deposit = this.deposit.bind(this); - this.deposits = this.deposits.bind(this); - this.tallyResult = this.tallyResult.bind(this); - } - - proposal(request: QueryProposalRequest): Promise { - const data = QueryProposalRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1.Query", "Proposal", data); - return promise.then(data => QueryProposalResponse.decode(new _m0.Reader(data))); - } - - proposals(request: QueryProposalsRequest): Promise { - const data = QueryProposalsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1.Query", "Proposals", data); - return promise.then(data => QueryProposalsResponse.decode(new _m0.Reader(data))); - } - - vote(request: QueryVoteRequest): Promise { - const data = QueryVoteRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1.Query", "Vote", data); - return promise.then(data => QueryVoteResponse.decode(new _m0.Reader(data))); - } - - votes(request: QueryVotesRequest): Promise { - const data = QueryVotesRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1.Query", "Votes", data); - return promise.then(data => QueryVotesResponse.decode(new _m0.Reader(data))); - } - - params(request: QueryParamsRequest): Promise { - const data = QueryParamsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1.Query", "Params", data); - return promise.then(data => QueryParamsResponse.decode(new _m0.Reader(data))); - } - - deposit(request: QueryDepositRequest): Promise { - const data = QueryDepositRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1.Query", "Deposit", data); - return promise.then(data => QueryDepositResponse.decode(new _m0.Reader(data))); - } - - deposits(request: QueryDepositsRequest): Promise { - const data = QueryDepositsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1.Query", "Deposits", data); - return promise.then(data => QueryDepositsResponse.decode(new _m0.Reader(data))); - } - - tallyResult(request: QueryTallyResultRequest): Promise { - const data = QueryTallyResultRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1.Query", "TallyResult", data); - return promise.then(data => QueryTallyResultResponse.decode(new _m0.Reader(data))); - } - -} -export const createRpcQueryExtension = (base: QueryClient) => { - const rpc = createProtobufRpcClient(base); - const queryService = new QueryClientImpl(rpc); - return { - proposal(request: QueryProposalRequest): Promise { - return queryService.proposal(request); - }, - - proposals(request: QueryProposalsRequest): Promise { - return queryService.proposals(request); - }, - - vote(request: QueryVoteRequest): Promise { - return queryService.vote(request); - }, - - votes(request: QueryVotesRequest): Promise { - return queryService.votes(request); - }, - - params(request: QueryParamsRequest): Promise { - return queryService.params(request); - }, - - deposit(request: QueryDepositRequest): Promise { - return queryService.deposit(request); - }, - - deposits(request: QueryDepositsRequest): Promise { - return queryService.deposits(request); - }, - - tallyResult(request: QueryTallyResultRequest): Promise { - return queryService.tallyResult(request); - } - - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/gov/v1/query.ts b/packages/codegen/src/cosmos/gov/v1/query.ts deleted file mode 100644 index b1fcdd61..00000000 --- a/packages/codegen/src/cosmos/gov/v1/query.ts +++ /dev/null @@ -1,1074 +0,0 @@ -import { ProposalStatus, Proposal, ProposalSDKType, Vote, VoteSDKType, VotingParams, VotingParamsSDKType, DepositParams, DepositParamsSDKType, TallyParams, TallyParamsSDKType, Deposit, DepositSDKType, TallyResult, TallyResultSDKType } from "./gov"; -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** QueryProposalRequest is the request type for the Query/Proposal RPC method. */ - -export interface QueryProposalRequest { - /** proposal_id defines the unique id of the proposal. */ - proposalId: Long; -} -/** QueryProposalRequest is the request type for the Query/Proposal RPC method. */ - -export interface QueryProposalRequestSDKType { - proposal_id: Long; -} -/** QueryProposalResponse is the response type for the Query/Proposal RPC method. */ - -export interface QueryProposalResponse { - proposal?: Proposal; -} -/** QueryProposalResponse is the response type for the Query/Proposal RPC method. */ - -export interface QueryProposalResponseSDKType { - proposal?: ProposalSDKType; -} -/** QueryProposalsRequest is the request type for the Query/Proposals RPC method. */ - -export interface QueryProposalsRequest { - /** proposal_status defines the status of the proposals. */ - proposalStatus: ProposalStatus; - /** voter defines the voter address for the proposals. */ - - voter: string; - /** depositor defines the deposit addresses from the proposals. */ - - depositor: string; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** QueryProposalsRequest is the request type for the Query/Proposals RPC method. */ - -export interface QueryProposalsRequestSDKType { - proposal_status: ProposalStatus; - voter: string; - depositor: string; - pagination?: PageRequestSDKType; -} -/** - * QueryProposalsResponse is the response type for the Query/Proposals RPC - * method. - */ - -export interface QueryProposalsResponse { - proposals: Proposal[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** - * QueryProposalsResponse is the response type for the Query/Proposals RPC - * method. - */ - -export interface QueryProposalsResponseSDKType { - proposals: ProposalSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryVoteRequest is the request type for the Query/Vote RPC method. */ - -export interface QueryVoteRequest { - /** proposal_id defines the unique id of the proposal. */ - proposalId: Long; - /** voter defines the oter address for the proposals. */ - - voter: string; -} -/** QueryVoteRequest is the request type for the Query/Vote RPC method. */ - -export interface QueryVoteRequestSDKType { - proposal_id: Long; - voter: string; -} -/** QueryVoteResponse is the response type for the Query/Vote RPC method. */ - -export interface QueryVoteResponse { - /** vote defined the queried vote. */ - vote?: Vote; -} -/** QueryVoteResponse is the response type for the Query/Vote RPC method. */ - -export interface QueryVoteResponseSDKType { - vote?: VoteSDKType; -} -/** QueryVotesRequest is the request type for the Query/Votes RPC method. */ - -export interface QueryVotesRequest { - /** proposal_id defines the unique id of the proposal. */ - proposalId: Long; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** QueryVotesRequest is the request type for the Query/Votes RPC method. */ - -export interface QueryVotesRequestSDKType { - proposal_id: Long; - pagination?: PageRequestSDKType; -} -/** QueryVotesResponse is the response type for the Query/Votes RPC method. */ - -export interface QueryVotesResponse { - /** votes defined the queried votes. */ - votes: Vote[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** QueryVotesResponse is the response type for the Query/Votes RPC method. */ - -export interface QueryVotesResponseSDKType { - votes: VoteSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ - -export interface QueryParamsRequest { - /** - * params_type defines which parameters to query for, can be one of "voting", - * "tallying" or "deposit". - */ - paramsType: string; -} -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ - -export interface QueryParamsRequestSDKType { - params_type: string; -} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ - -export interface QueryParamsResponse { - /** voting_params defines the parameters related to voting. */ - votingParams?: VotingParams; - /** deposit_params defines the parameters related to deposit. */ - - depositParams?: DepositParams; - /** tally_params defines the parameters related to tally. */ - - tallyParams?: TallyParams; -} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ - -export interface QueryParamsResponseSDKType { - voting_params?: VotingParamsSDKType; - deposit_params?: DepositParamsSDKType; - tally_params?: TallyParamsSDKType; -} -/** QueryDepositRequest is the request type for the Query/Deposit RPC method. */ - -export interface QueryDepositRequest { - /** proposal_id defines the unique id of the proposal. */ - proposalId: Long; - /** depositor defines the deposit addresses from the proposals. */ - - depositor: string; -} -/** QueryDepositRequest is the request type for the Query/Deposit RPC method. */ - -export interface QueryDepositRequestSDKType { - proposal_id: Long; - depositor: string; -} -/** QueryDepositResponse is the response type for the Query/Deposit RPC method. */ - -export interface QueryDepositResponse { - /** deposit defines the requested deposit. */ - deposit?: Deposit; -} -/** QueryDepositResponse is the response type for the Query/Deposit RPC method. */ - -export interface QueryDepositResponseSDKType { - deposit?: DepositSDKType; -} -/** QueryDepositsRequest is the request type for the Query/Deposits RPC method. */ - -export interface QueryDepositsRequest { - /** proposal_id defines the unique id of the proposal. */ - proposalId: Long; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** QueryDepositsRequest is the request type for the Query/Deposits RPC method. */ - -export interface QueryDepositsRequestSDKType { - proposal_id: Long; - pagination?: PageRequestSDKType; -} -/** QueryDepositsResponse is the response type for the Query/Deposits RPC method. */ - -export interface QueryDepositsResponse { - deposits: Deposit[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** QueryDepositsResponse is the response type for the Query/Deposits RPC method. */ - -export interface QueryDepositsResponseSDKType { - deposits: DepositSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryTallyResultRequest is the request type for the Query/Tally RPC method. */ - -export interface QueryTallyResultRequest { - /** proposal_id defines the unique id of the proposal. */ - proposalId: Long; -} -/** QueryTallyResultRequest is the request type for the Query/Tally RPC method. */ - -export interface QueryTallyResultRequestSDKType { - proposal_id: Long; -} -/** QueryTallyResultResponse is the response type for the Query/Tally RPC method. */ - -export interface QueryTallyResultResponse { - /** tally defines the requested tally. */ - tally?: TallyResult; -} -/** QueryTallyResultResponse is the response type for the Query/Tally RPC method. */ - -export interface QueryTallyResultResponseSDKType { - tally?: TallyResultSDKType; -} - -function createBaseQueryProposalRequest(): QueryProposalRequest { - return { - proposalId: Long.UZERO - }; -} - -export const QueryProposalRequest = { - encode(message: QueryProposalRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryProposalRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryProposalRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryProposalRequest { - const message = createBaseQueryProposalRequest(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - return message; - } - -}; - -function createBaseQueryProposalResponse(): QueryProposalResponse { - return { - proposal: undefined - }; -} - -export const QueryProposalResponse = { - encode(message: QueryProposalResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.proposal !== undefined) { - Proposal.encode(message.proposal, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryProposalResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryProposalResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposal = Proposal.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryProposalResponse { - const message = createBaseQueryProposalResponse(); - message.proposal = object.proposal !== undefined && object.proposal !== null ? Proposal.fromPartial(object.proposal) : undefined; - return message; - } - -}; - -function createBaseQueryProposalsRequest(): QueryProposalsRequest { - return { - proposalStatus: 0, - voter: "", - depositor: "", - pagination: undefined - }; -} - -export const QueryProposalsRequest = { - encode(message: QueryProposalsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.proposalStatus !== 0) { - writer.uint32(8).int32(message.proposalStatus); - } - - if (message.voter !== "") { - writer.uint32(18).string(message.voter); - } - - if (message.depositor !== "") { - writer.uint32(26).string(message.depositor); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryProposalsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryProposalsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalStatus = (reader.int32() as any); - break; - - case 2: - message.voter = reader.string(); - break; - - case 3: - message.depositor = reader.string(); - break; - - case 4: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryProposalsRequest { - const message = createBaseQueryProposalsRequest(); - message.proposalStatus = object.proposalStatus ?? 0; - message.voter = object.voter ?? ""; - message.depositor = object.depositor ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryProposalsResponse(): QueryProposalsResponse { - return { - proposals: [], - pagination: undefined - }; -} - -export const QueryProposalsResponse = { - encode(message: QueryProposalsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.proposals) { - Proposal.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryProposalsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryProposalsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposals.push(Proposal.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryProposalsResponse { - const message = createBaseQueryProposalsResponse(); - message.proposals = object.proposals?.map(e => Proposal.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryVoteRequest(): QueryVoteRequest { - return { - proposalId: Long.UZERO, - voter: "" - }; -} - -export const QueryVoteRequest = { - encode(message: QueryVoteRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.voter !== "") { - writer.uint32(18).string(message.voter); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVoteRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryVoteRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.voter = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryVoteRequest { - const message = createBaseQueryVoteRequest(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.voter = object.voter ?? ""; - return message; - } - -}; - -function createBaseQueryVoteResponse(): QueryVoteResponse { - return { - vote: undefined - }; -} - -export const QueryVoteResponse = { - encode(message: QueryVoteResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.vote !== undefined) { - Vote.encode(message.vote, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVoteResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryVoteResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.vote = Vote.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryVoteResponse { - const message = createBaseQueryVoteResponse(); - message.vote = object.vote !== undefined && object.vote !== null ? Vote.fromPartial(object.vote) : undefined; - return message; - } - -}; - -function createBaseQueryVotesRequest(): QueryVotesRequest { - return { - proposalId: Long.UZERO, - pagination: undefined - }; -} - -export const QueryVotesRequest = { - encode(message: QueryVotesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVotesRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryVotesRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryVotesRequest { - const message = createBaseQueryVotesRequest(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryVotesResponse(): QueryVotesResponse { - return { - votes: [], - pagination: undefined - }; -} - -export const QueryVotesResponse = { - encode(message: QueryVotesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.votes) { - Vote.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVotesResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryVotesResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.votes.push(Vote.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryVotesResponse { - const message = createBaseQueryVotesResponse(); - message.votes = object.votes?.map(e => Vote.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryParamsRequest(): QueryParamsRequest { - return { - paramsType: "" - }; -} - -export const QueryParamsRequest = { - encode(message: QueryParamsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.paramsType !== "") { - writer.uint32(10).string(message.paramsType); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.paramsType = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryParamsRequest { - const message = createBaseQueryParamsRequest(); - message.paramsType = object.paramsType ?? ""; - return message; - } - -}; - -function createBaseQueryParamsResponse(): QueryParamsResponse { - return { - votingParams: undefined, - depositParams: undefined, - tallyParams: undefined - }; -} - -export const QueryParamsResponse = { - encode(message: QueryParamsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.votingParams !== undefined) { - VotingParams.encode(message.votingParams, writer.uint32(10).fork()).ldelim(); - } - - if (message.depositParams !== undefined) { - DepositParams.encode(message.depositParams, writer.uint32(18).fork()).ldelim(); - } - - if (message.tallyParams !== undefined) { - TallyParams.encode(message.tallyParams, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.votingParams = VotingParams.decode(reader, reader.uint32()); - break; - - case 2: - message.depositParams = DepositParams.decode(reader, reader.uint32()); - break; - - case 3: - message.tallyParams = TallyParams.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryParamsResponse { - const message = createBaseQueryParamsResponse(); - message.votingParams = object.votingParams !== undefined && object.votingParams !== null ? VotingParams.fromPartial(object.votingParams) : undefined; - message.depositParams = object.depositParams !== undefined && object.depositParams !== null ? DepositParams.fromPartial(object.depositParams) : undefined; - message.tallyParams = object.tallyParams !== undefined && object.tallyParams !== null ? TallyParams.fromPartial(object.tallyParams) : undefined; - return message; - } - -}; - -function createBaseQueryDepositRequest(): QueryDepositRequest { - return { - proposalId: Long.UZERO, - depositor: "" - }; -} - -export const QueryDepositRequest = { - encode(message: QueryDepositRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.depositor !== "") { - writer.uint32(18).string(message.depositor); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDepositRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDepositRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.depositor = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDepositRequest { - const message = createBaseQueryDepositRequest(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.depositor = object.depositor ?? ""; - return message; - } - -}; - -function createBaseQueryDepositResponse(): QueryDepositResponse { - return { - deposit: undefined - }; -} - -export const QueryDepositResponse = { - encode(message: QueryDepositResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.deposit !== undefined) { - Deposit.encode(message.deposit, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDepositResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDepositResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.deposit = Deposit.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDepositResponse { - const message = createBaseQueryDepositResponse(); - message.deposit = object.deposit !== undefined && object.deposit !== null ? Deposit.fromPartial(object.deposit) : undefined; - return message; - } - -}; - -function createBaseQueryDepositsRequest(): QueryDepositsRequest { - return { - proposalId: Long.UZERO, - pagination: undefined - }; -} - -export const QueryDepositsRequest = { - encode(message: QueryDepositsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDepositsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDepositsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDepositsRequest { - const message = createBaseQueryDepositsRequest(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryDepositsResponse(): QueryDepositsResponse { - return { - deposits: [], - pagination: undefined - }; -} - -export const QueryDepositsResponse = { - encode(message: QueryDepositsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.deposits) { - Deposit.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDepositsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDepositsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.deposits.push(Deposit.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDepositsResponse { - const message = createBaseQueryDepositsResponse(); - message.deposits = object.deposits?.map(e => Deposit.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryTallyResultRequest(): QueryTallyResultRequest { - return { - proposalId: Long.UZERO - }; -} - -export const QueryTallyResultRequest = { - encode(message: QueryTallyResultRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryTallyResultRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryTallyResultRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryTallyResultRequest { - const message = createBaseQueryTallyResultRequest(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - return message; - } - -}; - -function createBaseQueryTallyResultResponse(): QueryTallyResultResponse { - return { - tally: undefined - }; -} - -export const QueryTallyResultResponse = { - encode(message: QueryTallyResultResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.tally !== undefined) { - TallyResult.encode(message.tally, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryTallyResultResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryTallyResultResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.tally = TallyResult.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryTallyResultResponse { - const message = createBaseQueryTallyResultResponse(); - message.tally = object.tally !== undefined && object.tally !== null ? TallyResult.fromPartial(object.tally) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/gov/v1/tx.rpc.msg.ts b/packages/codegen/src/cosmos/gov/v1/tx.rpc.msg.ts deleted file mode 100644 index 2bd32ee2..00000000 --- a/packages/codegen/src/cosmos/gov/v1/tx.rpc.msg.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { MsgSubmitProposal, MsgSubmitProposalResponse, MsgExecLegacyContent, MsgExecLegacyContentResponse, MsgVote, MsgVoteResponse, MsgVoteWeighted, MsgVoteWeightedResponse, MsgDeposit, MsgDepositResponse } from "./tx"; -/** Msg defines the gov Msg service. */ - -export interface Msg { - /** SubmitProposal defines a method to create new proposal given a content. */ - submitProposal(request: MsgSubmitProposal): Promise; - /** - * ExecLegacyContent defines a Msg to be in included in a MsgSubmitProposal - * to execute a legacy content-based proposal. - */ - - execLegacyContent(request: MsgExecLegacyContent): Promise; - /** Vote defines a method to add a vote on a specific proposal. */ - - vote(request: MsgVote): Promise; - /** VoteWeighted defines a method to add a weighted vote on a specific proposal. */ - - voteWeighted(request: MsgVoteWeighted): Promise; - /** Deposit defines a method to add deposit on a specific proposal. */ - - deposit(request: MsgDeposit): Promise; -} -export class MsgClientImpl implements Msg { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.submitProposal = this.submitProposal.bind(this); - this.execLegacyContent = this.execLegacyContent.bind(this); - this.vote = this.vote.bind(this); - this.voteWeighted = this.voteWeighted.bind(this); - this.deposit = this.deposit.bind(this); - } - - submitProposal(request: MsgSubmitProposal): Promise { - const data = MsgSubmitProposal.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1.Msg", "SubmitProposal", data); - return promise.then(data => MsgSubmitProposalResponse.decode(new _m0.Reader(data))); - } - - execLegacyContent(request: MsgExecLegacyContent): Promise { - const data = MsgExecLegacyContent.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1.Msg", "ExecLegacyContent", data); - return promise.then(data => MsgExecLegacyContentResponse.decode(new _m0.Reader(data))); - } - - vote(request: MsgVote): Promise { - const data = MsgVote.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1.Msg", "Vote", data); - return promise.then(data => MsgVoteResponse.decode(new _m0.Reader(data))); - } - - voteWeighted(request: MsgVoteWeighted): Promise { - const data = MsgVoteWeighted.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1.Msg", "VoteWeighted", data); - return promise.then(data => MsgVoteWeightedResponse.decode(new _m0.Reader(data))); - } - - deposit(request: MsgDeposit): Promise { - const data = MsgDeposit.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1.Msg", "Deposit", data); - return promise.then(data => MsgDepositResponse.decode(new _m0.Reader(data))); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/gov/v1/tx.ts b/packages/codegen/src/cosmos/gov/v1/tx.ts deleted file mode 100644 index f5f3b511..00000000 --- a/packages/codegen/src/cosmos/gov/v1/tx.ts +++ /dev/null @@ -1,656 +0,0 @@ -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import { VoteOption, WeightedVoteOption, WeightedVoteOptionSDKType } from "./gov"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** - * MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary - * proposal Content. - */ - -export interface MsgSubmitProposal { - messages: Any[]; - initialDeposit: Coin[]; - proposer: string; - /** metadata is any arbitrary metadata attached to the proposal. */ - - metadata: string; -} -/** - * MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary - * proposal Content. - */ - -export interface MsgSubmitProposalSDKType { - messages: AnySDKType[]; - initial_deposit: CoinSDKType[]; - proposer: string; - metadata: string; -} -/** MsgSubmitProposalResponse defines the Msg/SubmitProposal response type. */ - -export interface MsgSubmitProposalResponse { - proposalId: Long; -} -/** MsgSubmitProposalResponse defines the Msg/SubmitProposal response type. */ - -export interface MsgSubmitProposalResponseSDKType { - proposal_id: Long; -} -/** - * MsgExecLegacyContent is used to wrap the legacy content field into a message. - * This ensures backwards compatibility with v1beta1.MsgSubmitProposal. - */ - -export interface MsgExecLegacyContent { - /** content is the proposal's content. */ - content?: Any; - /** authority must be the gov module address. */ - - authority: string; -} -/** - * MsgExecLegacyContent is used to wrap the legacy content field into a message. - * This ensures backwards compatibility with v1beta1.MsgSubmitProposal. - */ - -export interface MsgExecLegacyContentSDKType { - content?: AnySDKType; - authority: string; -} -/** MsgExecLegacyContentResponse defines the Msg/ExecLegacyContent response type. */ - -export interface MsgExecLegacyContentResponse {} -/** MsgExecLegacyContentResponse defines the Msg/ExecLegacyContent response type. */ - -export interface MsgExecLegacyContentResponseSDKType {} -/** MsgVote defines a message to cast a vote. */ - -export interface MsgVote { - proposalId: Long; - voter: string; - option: VoteOption; - metadata: string; -} -/** MsgVote defines a message to cast a vote. */ - -export interface MsgVoteSDKType { - proposal_id: Long; - voter: string; - option: VoteOption; - metadata: string; -} -/** MsgVoteResponse defines the Msg/Vote response type. */ - -export interface MsgVoteResponse {} -/** MsgVoteResponse defines the Msg/Vote response type. */ - -export interface MsgVoteResponseSDKType {} -/** MsgVoteWeighted defines a message to cast a vote. */ - -export interface MsgVoteWeighted { - proposalId: Long; - voter: string; - options: WeightedVoteOption[]; - metadata: string; -} -/** MsgVoteWeighted defines a message to cast a vote. */ - -export interface MsgVoteWeightedSDKType { - proposal_id: Long; - voter: string; - options: WeightedVoteOptionSDKType[]; - metadata: string; -} -/** MsgVoteWeightedResponse defines the Msg/VoteWeighted response type. */ - -export interface MsgVoteWeightedResponse {} -/** MsgVoteWeightedResponse defines the Msg/VoteWeighted response type. */ - -export interface MsgVoteWeightedResponseSDKType {} -/** MsgDeposit defines a message to submit a deposit to an existing proposal. */ - -export interface MsgDeposit { - proposalId: Long; - depositor: string; - amount: Coin[]; -} -/** MsgDeposit defines a message to submit a deposit to an existing proposal. */ - -export interface MsgDepositSDKType { - proposal_id: Long; - depositor: string; - amount: CoinSDKType[]; -} -/** MsgDepositResponse defines the Msg/Deposit response type. */ - -export interface MsgDepositResponse {} -/** MsgDepositResponse defines the Msg/Deposit response type. */ - -export interface MsgDepositResponseSDKType {} - -function createBaseMsgSubmitProposal(): MsgSubmitProposal { - return { - messages: [], - initialDeposit: [], - proposer: "", - metadata: "" - }; -} - -export const MsgSubmitProposal = { - encode(message: MsgSubmitProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.messages) { - Any.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - for (const v of message.initialDeposit) { - Coin.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - if (message.proposer !== "") { - writer.uint32(26).string(message.proposer); - } - - if (message.metadata !== "") { - writer.uint32(34).string(message.metadata); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSubmitProposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgSubmitProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.messages.push(Any.decode(reader, reader.uint32())); - break; - - case 2: - message.initialDeposit.push(Coin.decode(reader, reader.uint32())); - break; - - case 3: - message.proposer = reader.string(); - break; - - case 4: - message.metadata = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgSubmitProposal { - const message = createBaseMsgSubmitProposal(); - message.messages = object.messages?.map(e => Any.fromPartial(e)) || []; - message.initialDeposit = object.initialDeposit?.map(e => Coin.fromPartial(e)) || []; - message.proposer = object.proposer ?? ""; - message.metadata = object.metadata ?? ""; - return message; - } - -}; - -function createBaseMsgSubmitProposalResponse(): MsgSubmitProposalResponse { - return { - proposalId: Long.UZERO - }; -} - -export const MsgSubmitProposalResponse = { - encode(message: MsgSubmitProposalResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSubmitProposalResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgSubmitProposalResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgSubmitProposalResponse { - const message = createBaseMsgSubmitProposalResponse(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - return message; - } - -}; - -function createBaseMsgExecLegacyContent(): MsgExecLegacyContent { - return { - content: undefined, - authority: "" - }; -} - -export const MsgExecLegacyContent = { - encode(message: MsgExecLegacyContent, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.content !== undefined) { - Any.encode(message.content, writer.uint32(10).fork()).ldelim(); - } - - if (message.authority !== "") { - writer.uint32(18).string(message.authority); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgExecLegacyContent { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgExecLegacyContent(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.content = Any.decode(reader, reader.uint32()); - break; - - case 2: - message.authority = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgExecLegacyContent { - const message = createBaseMsgExecLegacyContent(); - message.content = object.content !== undefined && object.content !== null ? Any.fromPartial(object.content) : undefined; - message.authority = object.authority ?? ""; - return message; - } - -}; - -function createBaseMsgExecLegacyContentResponse(): MsgExecLegacyContentResponse { - return {}; -} - -export const MsgExecLegacyContentResponse = { - encode(_: MsgExecLegacyContentResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgExecLegacyContentResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgExecLegacyContentResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgExecLegacyContentResponse { - const message = createBaseMsgExecLegacyContentResponse(); - return message; - } - -}; - -function createBaseMsgVote(): MsgVote { - return { - proposalId: Long.UZERO, - voter: "", - option: 0, - metadata: "" - }; -} - -export const MsgVote = { - encode(message: MsgVote, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.voter !== "") { - writer.uint32(18).string(message.voter); - } - - if (message.option !== 0) { - writer.uint32(24).int32(message.option); - } - - if (message.metadata !== "") { - writer.uint32(34).string(message.metadata); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgVote { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgVote(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.voter = reader.string(); - break; - - case 3: - message.option = (reader.int32() as any); - break; - - case 4: - message.metadata = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgVote { - const message = createBaseMsgVote(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.voter = object.voter ?? ""; - message.option = object.option ?? 0; - message.metadata = object.metadata ?? ""; - return message; - } - -}; - -function createBaseMsgVoteResponse(): MsgVoteResponse { - return {}; -} - -export const MsgVoteResponse = { - encode(_: MsgVoteResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgVoteResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgVoteResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgVoteResponse { - const message = createBaseMsgVoteResponse(); - return message; - } - -}; - -function createBaseMsgVoteWeighted(): MsgVoteWeighted { - return { - proposalId: Long.UZERO, - voter: "", - options: [], - metadata: "" - }; -} - -export const MsgVoteWeighted = { - encode(message: MsgVoteWeighted, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.voter !== "") { - writer.uint32(18).string(message.voter); - } - - for (const v of message.options) { - WeightedVoteOption.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - if (message.metadata !== "") { - writer.uint32(34).string(message.metadata); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgVoteWeighted { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgVoteWeighted(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.voter = reader.string(); - break; - - case 3: - message.options.push(WeightedVoteOption.decode(reader, reader.uint32())); - break; - - case 4: - message.metadata = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgVoteWeighted { - const message = createBaseMsgVoteWeighted(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.voter = object.voter ?? ""; - message.options = object.options?.map(e => WeightedVoteOption.fromPartial(e)) || []; - message.metadata = object.metadata ?? ""; - return message; - } - -}; - -function createBaseMsgVoteWeightedResponse(): MsgVoteWeightedResponse { - return {}; -} - -export const MsgVoteWeightedResponse = { - encode(_: MsgVoteWeightedResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgVoteWeightedResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgVoteWeightedResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgVoteWeightedResponse { - const message = createBaseMsgVoteWeightedResponse(); - return message; - } - -}; - -function createBaseMsgDeposit(): MsgDeposit { - return { - proposalId: Long.UZERO, - depositor: "", - amount: [] - }; -} - -export const MsgDeposit = { - encode(message: MsgDeposit, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.depositor !== "") { - writer.uint32(18).string(message.depositor); - } - - for (const v of message.amount) { - Coin.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgDeposit { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgDeposit(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.depositor = reader.string(); - break; - - case 3: - message.amount.push(Coin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgDeposit { - const message = createBaseMsgDeposit(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.depositor = object.depositor ?? ""; - message.amount = object.amount?.map(e => Coin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseMsgDepositResponse(): MsgDepositResponse { - return {}; -} - -export const MsgDepositResponse = { - encode(_: MsgDepositResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgDepositResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgDepositResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgDepositResponse { - const message = createBaseMsgDepositResponse(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/gov/v1beta1/genesis.ts b/packages/codegen/src/cosmos/gov/v1beta1/genesis.ts deleted file mode 100644 index 101340fc..00000000 --- a/packages/codegen/src/cosmos/gov/v1beta1/genesis.ts +++ /dev/null @@ -1,143 +0,0 @@ -import { Deposit, DepositSDKType, Vote, VoteSDKType, Proposal, ProposalSDKType, DepositParams, DepositParamsSDKType, VotingParams, VotingParamsSDKType, TallyParams, TallyParamsSDKType } from "./gov"; -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** GenesisState defines the gov module's genesis state. */ - -export interface GenesisState { - /** starting_proposal_id is the ID of the starting proposal. */ - startingProposalId: Long; - /** deposits defines all the deposits present at genesis. */ - - deposits: Deposit[]; - /** votes defines all the votes present at genesis. */ - - votes: Vote[]; - /** proposals defines all the proposals present at genesis. */ - - proposals: Proposal[]; - /** params defines all the paramaters of related to deposit. */ - - depositParams?: DepositParams; - /** params defines all the paramaters of related to voting. */ - - votingParams?: VotingParams; - /** params defines all the paramaters of related to tally. */ - - tallyParams?: TallyParams; -} -/** GenesisState defines the gov module's genesis state. */ - -export interface GenesisStateSDKType { - starting_proposal_id: Long; - deposits: DepositSDKType[]; - votes: VoteSDKType[]; - proposals: ProposalSDKType[]; - deposit_params?: DepositParamsSDKType; - voting_params?: VotingParamsSDKType; - tally_params?: TallyParamsSDKType; -} - -function createBaseGenesisState(): GenesisState { - return { - startingProposalId: Long.UZERO, - deposits: [], - votes: [], - proposals: [], - depositParams: undefined, - votingParams: undefined, - tallyParams: undefined - }; -} - -export const GenesisState = { - encode(message: GenesisState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.startingProposalId.isZero()) { - writer.uint32(8).uint64(message.startingProposalId); - } - - for (const v of message.deposits) { - Deposit.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - for (const v of message.votes) { - Vote.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - for (const v of message.proposals) { - Proposal.encode(v!, writer.uint32(34).fork()).ldelim(); - } - - if (message.depositParams !== undefined) { - DepositParams.encode(message.depositParams, writer.uint32(42).fork()).ldelim(); - } - - if (message.votingParams !== undefined) { - VotingParams.encode(message.votingParams, writer.uint32(50).fork()).ldelim(); - } - - if (message.tallyParams !== undefined) { - TallyParams.encode(message.tallyParams, writer.uint32(58).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.startingProposalId = (reader.uint64() as Long); - break; - - case 2: - message.deposits.push(Deposit.decode(reader, reader.uint32())); - break; - - case 3: - message.votes.push(Vote.decode(reader, reader.uint32())); - break; - - case 4: - message.proposals.push(Proposal.decode(reader, reader.uint32())); - break; - - case 5: - message.depositParams = DepositParams.decode(reader, reader.uint32()); - break; - - case 6: - message.votingParams = VotingParams.decode(reader, reader.uint32()); - break; - - case 7: - message.tallyParams = TallyParams.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenesisState { - const message = createBaseGenesisState(); - message.startingProposalId = object.startingProposalId !== undefined && object.startingProposalId !== null ? Long.fromValue(object.startingProposalId) : Long.UZERO; - message.deposits = object.deposits?.map(e => Deposit.fromPartial(e)) || []; - message.votes = object.votes?.map(e => Vote.fromPartial(e)) || []; - message.proposals = object.proposals?.map(e => Proposal.fromPartial(e)) || []; - message.depositParams = object.depositParams !== undefined && object.depositParams !== null ? DepositParams.fromPartial(object.depositParams) : undefined; - message.votingParams = object.votingParams !== undefined && object.votingParams !== null ? VotingParams.fromPartial(object.votingParams) : undefined; - message.tallyParams = object.tallyParams !== undefined && object.tallyParams !== null ? TallyParams.fromPartial(object.tallyParams) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/gov/v1beta1/gov.ts b/packages/codegen/src/cosmos/gov/v1beta1/gov.ts deleted file mode 100644 index ef121c80..00000000 --- a/packages/codegen/src/cosmos/gov/v1beta1/gov.ts +++ /dev/null @@ -1,980 +0,0 @@ -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import { Timestamp } from "../../../google/protobuf/timestamp"; -import { Duration, DurationSDKType } from "../../../google/protobuf/duration"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long, toTimestamp, fromTimestamp } from "../../../helpers"; -/** VoteOption enumerates the valid vote options for a given governance proposal. */ - -export enum VoteOption { - /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */ - VOTE_OPTION_UNSPECIFIED = 0, - - /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */ - VOTE_OPTION_YES = 1, - - /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */ - VOTE_OPTION_ABSTAIN = 2, - - /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */ - VOTE_OPTION_NO = 3, - - /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */ - VOTE_OPTION_NO_WITH_VETO = 4, - UNRECOGNIZED = -1, -} -export const VoteOptionSDKType = VoteOption; -export function voteOptionFromJSON(object: any): VoteOption { - switch (object) { - case 0: - case "VOTE_OPTION_UNSPECIFIED": - return VoteOption.VOTE_OPTION_UNSPECIFIED; - - case 1: - case "VOTE_OPTION_YES": - return VoteOption.VOTE_OPTION_YES; - - case 2: - case "VOTE_OPTION_ABSTAIN": - return VoteOption.VOTE_OPTION_ABSTAIN; - - case 3: - case "VOTE_OPTION_NO": - return VoteOption.VOTE_OPTION_NO; - - case 4: - case "VOTE_OPTION_NO_WITH_VETO": - return VoteOption.VOTE_OPTION_NO_WITH_VETO; - - case -1: - case "UNRECOGNIZED": - default: - return VoteOption.UNRECOGNIZED; - } -} -export function voteOptionToJSON(object: VoteOption): string { - switch (object) { - case VoteOption.VOTE_OPTION_UNSPECIFIED: - return "VOTE_OPTION_UNSPECIFIED"; - - case VoteOption.VOTE_OPTION_YES: - return "VOTE_OPTION_YES"; - - case VoteOption.VOTE_OPTION_ABSTAIN: - return "VOTE_OPTION_ABSTAIN"; - - case VoteOption.VOTE_OPTION_NO: - return "VOTE_OPTION_NO"; - - case VoteOption.VOTE_OPTION_NO_WITH_VETO: - return "VOTE_OPTION_NO_WITH_VETO"; - - case VoteOption.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** ProposalStatus enumerates the valid statuses of a proposal. */ - -export enum ProposalStatus { - /** PROPOSAL_STATUS_UNSPECIFIED - PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. */ - PROPOSAL_STATUS_UNSPECIFIED = 0, - - /** - * PROPOSAL_STATUS_DEPOSIT_PERIOD - PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit - * period. - */ - PROPOSAL_STATUS_DEPOSIT_PERIOD = 1, - - /** - * PROPOSAL_STATUS_VOTING_PERIOD - PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting - * period. - */ - PROPOSAL_STATUS_VOTING_PERIOD = 2, - - /** - * PROPOSAL_STATUS_PASSED - PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has - * passed. - */ - PROPOSAL_STATUS_PASSED = 3, - - /** - * PROPOSAL_STATUS_REJECTED - PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has - * been rejected. - */ - PROPOSAL_STATUS_REJECTED = 4, - - /** - * PROPOSAL_STATUS_FAILED - PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has - * failed. - */ - PROPOSAL_STATUS_FAILED = 5, - UNRECOGNIZED = -1, -} -export const ProposalStatusSDKType = ProposalStatus; -export function proposalStatusFromJSON(object: any): ProposalStatus { - switch (object) { - case 0: - case "PROPOSAL_STATUS_UNSPECIFIED": - return ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED; - - case 1: - case "PROPOSAL_STATUS_DEPOSIT_PERIOD": - return ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD; - - case 2: - case "PROPOSAL_STATUS_VOTING_PERIOD": - return ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD; - - case 3: - case "PROPOSAL_STATUS_PASSED": - return ProposalStatus.PROPOSAL_STATUS_PASSED; - - case 4: - case "PROPOSAL_STATUS_REJECTED": - return ProposalStatus.PROPOSAL_STATUS_REJECTED; - - case 5: - case "PROPOSAL_STATUS_FAILED": - return ProposalStatus.PROPOSAL_STATUS_FAILED; - - case -1: - case "UNRECOGNIZED": - default: - return ProposalStatus.UNRECOGNIZED; - } -} -export function proposalStatusToJSON(object: ProposalStatus): string { - switch (object) { - case ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED: - return "PROPOSAL_STATUS_UNSPECIFIED"; - - case ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD: - return "PROPOSAL_STATUS_DEPOSIT_PERIOD"; - - case ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD: - return "PROPOSAL_STATUS_VOTING_PERIOD"; - - case ProposalStatus.PROPOSAL_STATUS_PASSED: - return "PROPOSAL_STATUS_PASSED"; - - case ProposalStatus.PROPOSAL_STATUS_REJECTED: - return "PROPOSAL_STATUS_REJECTED"; - - case ProposalStatus.PROPOSAL_STATUS_FAILED: - return "PROPOSAL_STATUS_FAILED"; - - case ProposalStatus.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** - * WeightedVoteOption defines a unit of vote for vote split. - * - * Since: cosmos-sdk 0.43 - */ - -export interface WeightedVoteOption { - option: VoteOption; - weight: string; -} -/** - * WeightedVoteOption defines a unit of vote for vote split. - * - * Since: cosmos-sdk 0.43 - */ - -export interface WeightedVoteOptionSDKType { - option: VoteOption; - weight: string; -} -/** - * TextProposal defines a standard text proposal whose changes need to be - * manually updated in case of approval. - */ - -export interface TextProposal { - title: string; - description: string; -} -/** - * TextProposal defines a standard text proposal whose changes need to be - * manually updated in case of approval. - */ - -export interface TextProposalSDKType { - title: string; - description: string; -} -/** - * Deposit defines an amount deposited by an account address to an active - * proposal. - */ - -export interface Deposit { - proposalId: Long; - depositor: string; - amount: Coin[]; -} -/** - * Deposit defines an amount deposited by an account address to an active - * proposal. - */ - -export interface DepositSDKType { - proposal_id: Long; - depositor: string; - amount: CoinSDKType[]; -} -/** Proposal defines the core field members of a governance proposal. */ - -export interface Proposal { - proposalId: Long; - content?: Any; - status: ProposalStatus; - /** - * 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. - */ - - finalTallyResult?: TallyResult; - submitTime?: Date; - depositEndTime?: Date; - totalDeposit: Coin[]; - votingStartTime?: Date; - votingEndTime?: Date; -} -/** Proposal defines the core field members of a governance proposal. */ - -export interface ProposalSDKType { - proposal_id: Long; - content?: AnySDKType; - status: ProposalStatus; - final_tally_result?: TallyResultSDKType; - submit_time?: Date; - deposit_end_time?: Date; - total_deposit: CoinSDKType[]; - voting_start_time?: Date; - voting_end_time?: Date; -} -/** TallyResult defines a standard tally for a governance proposal. */ - -export interface TallyResult { - yes: string; - abstain: string; - no: string; - noWithVeto: string; -} -/** TallyResult defines a standard tally for a governance proposal. */ - -export interface TallyResultSDKType { - yes: string; - abstain: string; - no: string; - no_with_veto: string; -} -/** - * Vote defines a vote on a governance proposal. - * A Vote consists of a proposal ID, the voter, and the vote option. - */ - -export interface Vote { - proposalId: Long; - voter: string; - /** - * 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. - */ - - /** @deprecated */ - - option: VoteOption; - /** Since: cosmos-sdk 0.43 */ - - options: WeightedVoteOption[]; -} -/** - * Vote defines a vote on a governance proposal. - * A Vote consists of a proposal ID, the voter, and the vote option. - */ - -export interface VoteSDKType { - proposal_id: Long; - voter: string; - /** @deprecated */ - - option: VoteOption; - options: WeightedVoteOptionSDKType[]; -} -/** DepositParams defines the params for deposits on governance proposals. */ - -export interface DepositParams { - /** Minimum deposit for a proposal to enter voting period. */ - minDeposit: Coin[]; - /** - * Maximum period for Atom holders to deposit on a proposal. Initial value: 2 - * months. - */ - - maxDepositPeriod?: Duration; -} -/** DepositParams defines the params for deposits on governance proposals. */ - -export interface DepositParamsSDKType { - min_deposit: CoinSDKType[]; - max_deposit_period?: DurationSDKType; -} -/** VotingParams defines the params for voting on governance proposals. */ - -export interface VotingParams { - /** Length of the voting period. */ - votingPeriod?: Duration; -} -/** VotingParams defines the params for voting on governance proposals. */ - -export interface VotingParamsSDKType { - voting_period?: DurationSDKType; -} -/** TallyParams defines the params for tallying votes on governance proposals. */ - -export interface TallyParams { - /** - * Minimum percentage of total stake needed to vote for a result to be - * considered valid. - */ - quorum: Uint8Array; - /** Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. */ - - threshold: Uint8Array; - /** - * Minimum value of Veto votes to Total votes ratio for proposal to be - * vetoed. Default value: 1/3. - */ - - vetoThreshold: Uint8Array; -} -/** TallyParams defines the params for tallying votes on governance proposals. */ - -export interface TallyParamsSDKType { - quorum: Uint8Array; - threshold: Uint8Array; - veto_threshold: Uint8Array; -} - -function createBaseWeightedVoteOption(): WeightedVoteOption { - return { - option: 0, - weight: "" - }; -} - -export const WeightedVoteOption = { - encode(message: WeightedVoteOption, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.option !== 0) { - writer.uint32(8).int32(message.option); - } - - if (message.weight !== "") { - writer.uint32(18).string(message.weight); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): WeightedVoteOption { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseWeightedVoteOption(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.option = (reader.int32() as any); - break; - - case 2: - message.weight = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): WeightedVoteOption { - const message = createBaseWeightedVoteOption(); - message.option = object.option ?? 0; - message.weight = object.weight ?? ""; - return message; - } - -}; - -function createBaseTextProposal(): TextProposal { - return { - title: "", - description: "" - }; -} - -export const TextProposal = { - encode(message: TextProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.title !== "") { - writer.uint32(10).string(message.title); - } - - if (message.description !== "") { - writer.uint32(18).string(message.description); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): TextProposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTextProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.title = reader.string(); - break; - - case 2: - message.description = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): TextProposal { - const message = createBaseTextProposal(); - message.title = object.title ?? ""; - message.description = object.description ?? ""; - return message; - } - -}; - -function createBaseDeposit(): Deposit { - return { - proposalId: Long.UZERO, - depositor: "", - amount: [] - }; -} - -export const Deposit = { - encode(message: Deposit, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.depositor !== "") { - writer.uint32(18).string(message.depositor); - } - - for (const v of message.amount) { - Coin.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Deposit { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDeposit(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.depositor = reader.string(); - break; - - case 3: - message.amount.push(Coin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Deposit { - const message = createBaseDeposit(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.depositor = object.depositor ?? ""; - message.amount = object.amount?.map(e => Coin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseProposal(): Proposal { - return { - proposalId: Long.UZERO, - content: undefined, - status: 0, - finalTallyResult: undefined, - submitTime: undefined, - depositEndTime: undefined, - totalDeposit: [], - votingStartTime: undefined, - votingEndTime: undefined - }; -} - -export const Proposal = { - encode(message: Proposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.content !== undefined) { - Any.encode(message.content, writer.uint32(18).fork()).ldelim(); - } - - if (message.status !== 0) { - writer.uint32(24).int32(message.status); - } - - if (message.finalTallyResult !== undefined) { - TallyResult.encode(message.finalTallyResult, writer.uint32(34).fork()).ldelim(); - } - - if (message.submitTime !== undefined) { - Timestamp.encode(toTimestamp(message.submitTime), writer.uint32(42).fork()).ldelim(); - } - - if (message.depositEndTime !== undefined) { - Timestamp.encode(toTimestamp(message.depositEndTime), writer.uint32(50).fork()).ldelim(); - } - - for (const v of message.totalDeposit) { - Coin.encode(v!, writer.uint32(58).fork()).ldelim(); - } - - if (message.votingStartTime !== undefined) { - Timestamp.encode(toTimestamp(message.votingStartTime), writer.uint32(66).fork()).ldelim(); - } - - if (message.votingEndTime !== undefined) { - Timestamp.encode(toTimestamp(message.votingEndTime), writer.uint32(74).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Proposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.content = Any.decode(reader, reader.uint32()); - break; - - case 3: - message.status = (reader.int32() as any); - break; - - case 4: - message.finalTallyResult = TallyResult.decode(reader, reader.uint32()); - break; - - case 5: - message.submitTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - case 6: - message.depositEndTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - case 7: - message.totalDeposit.push(Coin.decode(reader, reader.uint32())); - break; - - case 8: - message.votingStartTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - case 9: - message.votingEndTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Proposal { - const message = createBaseProposal(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.content = object.content !== undefined && object.content !== null ? Any.fromPartial(object.content) : undefined; - message.status = object.status ?? 0; - message.finalTallyResult = object.finalTallyResult !== undefined && object.finalTallyResult !== null ? TallyResult.fromPartial(object.finalTallyResult) : undefined; - message.submitTime = object.submitTime ?? undefined; - message.depositEndTime = object.depositEndTime ?? undefined; - message.totalDeposit = object.totalDeposit?.map(e => Coin.fromPartial(e)) || []; - message.votingStartTime = object.votingStartTime ?? undefined; - message.votingEndTime = object.votingEndTime ?? undefined; - return message; - } - -}; - -function createBaseTallyResult(): TallyResult { - return { - yes: "", - abstain: "", - no: "", - noWithVeto: "" - }; -} - -export const TallyResult = { - encode(message: TallyResult, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.yes !== "") { - writer.uint32(10).string(message.yes); - } - - if (message.abstain !== "") { - writer.uint32(18).string(message.abstain); - } - - if (message.no !== "") { - writer.uint32(26).string(message.no); - } - - if (message.noWithVeto !== "") { - writer.uint32(34).string(message.noWithVeto); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): TallyResult { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTallyResult(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.yes = reader.string(); - break; - - case 2: - message.abstain = reader.string(); - break; - - case 3: - message.no = reader.string(); - break; - - case 4: - message.noWithVeto = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): TallyResult { - const message = createBaseTallyResult(); - message.yes = object.yes ?? ""; - message.abstain = object.abstain ?? ""; - message.no = object.no ?? ""; - message.noWithVeto = object.noWithVeto ?? ""; - return message; - } - -}; - -function createBaseVote(): Vote { - return { - proposalId: Long.UZERO, - voter: "", - option: 0, - options: [] - }; -} - -export const Vote = { - encode(message: Vote, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.voter !== "") { - writer.uint32(18).string(message.voter); - } - - if (message.option !== 0) { - writer.uint32(24).int32(message.option); - } - - for (const v of message.options) { - WeightedVoteOption.encode(v!, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Vote { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseVote(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.voter = reader.string(); - break; - - case 3: - message.option = (reader.int32() as any); - break; - - case 4: - message.options.push(WeightedVoteOption.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Vote { - const message = createBaseVote(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.voter = object.voter ?? ""; - message.option = object.option ?? 0; - message.options = object.options?.map(e => WeightedVoteOption.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseDepositParams(): DepositParams { - return { - minDeposit: [], - maxDepositPeriod: undefined - }; -} - -export const DepositParams = { - encode(message: DepositParams, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.minDeposit) { - Coin.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.maxDepositPeriod !== undefined) { - Duration.encode(message.maxDepositPeriod, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): DepositParams { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDepositParams(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.minDeposit.push(Coin.decode(reader, reader.uint32())); - break; - - case 2: - message.maxDepositPeriod = Duration.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): DepositParams { - const message = createBaseDepositParams(); - message.minDeposit = object.minDeposit?.map(e => Coin.fromPartial(e)) || []; - message.maxDepositPeriod = object.maxDepositPeriod !== undefined && object.maxDepositPeriod !== null ? Duration.fromPartial(object.maxDepositPeriod) : undefined; - return message; - } - -}; - -function createBaseVotingParams(): VotingParams { - return { - votingPeriod: undefined - }; -} - -export const VotingParams = { - encode(message: VotingParams, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.votingPeriod !== undefined) { - Duration.encode(message.votingPeriod, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): VotingParams { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseVotingParams(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.votingPeriod = Duration.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): VotingParams { - const message = createBaseVotingParams(); - message.votingPeriod = object.votingPeriod !== undefined && object.votingPeriod !== null ? Duration.fromPartial(object.votingPeriod) : undefined; - return message; - } - -}; - -function createBaseTallyParams(): TallyParams { - return { - quorum: new Uint8Array(), - threshold: new Uint8Array(), - vetoThreshold: new Uint8Array() - }; -} - -export const TallyParams = { - encode(message: TallyParams, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.quorum.length !== 0) { - writer.uint32(10).bytes(message.quorum); - } - - if (message.threshold.length !== 0) { - writer.uint32(18).bytes(message.threshold); - } - - if (message.vetoThreshold.length !== 0) { - writer.uint32(26).bytes(message.vetoThreshold); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): TallyParams { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTallyParams(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.quorum = reader.bytes(); - break; - - case 2: - message.threshold = reader.bytes(); - break; - - case 3: - message.vetoThreshold = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): TallyParams { - const message = createBaseTallyParams(); - message.quorum = object.quorum ?? new Uint8Array(); - message.threshold = object.threshold ?? new Uint8Array(); - message.vetoThreshold = object.vetoThreshold ?? new Uint8Array(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/gov/v1beta1/query.lcd.ts b/packages/codegen/src/cosmos/gov/v1beta1/query.lcd.ts deleted file mode 100644 index 1210dbdd..00000000 --- a/packages/codegen/src/cosmos/gov/v1beta1/query.lcd.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { setPaginationParams } from "../../../helpers"; -import { LCDClient } from "@osmonauts/lcd"; -import { QueryProposalRequest, QueryProposalResponseSDKType, QueryProposalsRequest, QueryProposalsResponseSDKType, QueryVoteRequest, QueryVoteResponseSDKType, QueryVotesRequest, QueryVotesResponseSDKType, QueryParamsRequest, QueryParamsResponseSDKType, QueryDepositRequest, QueryDepositResponseSDKType, QueryDepositsRequest, QueryDepositsResponseSDKType, QueryTallyResultRequest, QueryTallyResultResponseSDKType } from "./query"; -export class LCDQueryClient { - req: LCDClient; - - constructor({ - requestClient - }: { - requestClient: LCDClient; - }) { - this.req = requestClient; - this.proposal = this.proposal.bind(this); - this.proposals = this.proposals.bind(this); - this.vote = this.vote.bind(this); - this.votes = this.votes.bind(this); - this.params = this.params.bind(this); - this.deposit = this.deposit.bind(this); - this.deposits = this.deposits.bind(this); - this.tallyResult = this.tallyResult.bind(this); - } - /* Proposal queries proposal details based on ProposalID. */ - - - async proposal(params: QueryProposalRequest): Promise { - const endpoint = `cosmos/gov/v1beta1/proposals/${params.proposalId}`; - return await this.req.get(endpoint); - } - /* Proposals queries all proposals based on given status. */ - - - async proposals(params: QueryProposalsRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.proposalStatus !== "undefined") { - options.params.proposal_status = params.proposalStatus; - } - - if (typeof params?.voter !== "undefined") { - options.params.voter = params.voter; - } - - if (typeof params?.depositor !== "undefined") { - options.params.depositor = params.depositor; - } - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/gov/v1beta1/proposals`; - return await this.req.get(endpoint, options); - } - /* Vote queries voted information based on proposalID, voterAddr. */ - - - async vote(params: QueryVoteRequest): Promise { - const endpoint = `cosmos/gov/v1beta1/proposals/${params.proposalId}/votes/${params.voter}`; - return await this.req.get(endpoint); - } - /* Votes queries votes of a given proposal. */ - - - async votes(params: QueryVotesRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/gov/v1beta1/proposals/${params.proposalId}/votes`; - return await this.req.get(endpoint, options); - } - /* Params queries all parameters of the gov module. */ - - - async params(params: QueryParamsRequest): Promise { - const endpoint = `cosmos/gov/v1beta1/params/${params.paramsType}`; - return await this.req.get(endpoint); - } - /* Deposit queries single deposit information based proposalID, depositAddr. */ - - - async deposit(params: QueryDepositRequest): Promise { - const endpoint = `cosmos/gov/v1beta1/proposals/${params.proposalId}/deposits/${params.depositor}`; - return await this.req.get(endpoint); - } - /* Deposits queries all deposits of a single proposal. */ - - - async deposits(params: QueryDepositsRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/gov/v1beta1/proposals/${params.proposalId}/deposits`; - return await this.req.get(endpoint, options); - } - /* TallyResult queries the tally of a proposal vote. */ - - - async tallyResult(params: QueryTallyResultRequest): Promise { - const endpoint = `cosmos/gov/v1beta1/proposals/${params.proposalId}/tally`; - return await this.req.get(endpoint); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/gov/v1beta1/query.rpc.Query.ts b/packages/codegen/src/cosmos/gov/v1beta1/query.rpc.Query.ts deleted file mode 100644 index 246d7da9..00000000 --- a/packages/codegen/src/cosmos/gov/v1beta1/query.rpc.Query.ts +++ /dev/null @@ -1,133 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { QueryProposalRequest, QueryProposalResponse, QueryProposalsRequest, QueryProposalsResponse, QueryVoteRequest, QueryVoteResponse, QueryVotesRequest, QueryVotesResponse, QueryParamsRequest, QueryParamsResponse, QueryDepositRequest, QueryDepositResponse, QueryDepositsRequest, QueryDepositsResponse, QueryTallyResultRequest, QueryTallyResultResponse } from "./query"; -/** Query defines the gRPC querier service for gov module */ - -export interface Query { - /** Proposal queries proposal details based on ProposalID. */ - proposal(request: QueryProposalRequest): Promise; - /** Proposals queries all proposals based on given status. */ - - proposals(request: QueryProposalsRequest): Promise; - /** Vote queries voted information based on proposalID, voterAddr. */ - - vote(request: QueryVoteRequest): Promise; - /** Votes queries votes of a given proposal. */ - - votes(request: QueryVotesRequest): Promise; - /** Params queries all parameters of the gov module. */ - - params(request: QueryParamsRequest): Promise; - /** Deposit queries single deposit information based proposalID, depositAddr. */ - - deposit(request: QueryDepositRequest): Promise; - /** Deposits queries all deposits of a single proposal. */ - - deposits(request: QueryDepositsRequest): Promise; - /** TallyResult queries the tally of a proposal vote. */ - - tallyResult(request: QueryTallyResultRequest): Promise; -} -export class QueryClientImpl implements Query { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.proposal = this.proposal.bind(this); - this.proposals = this.proposals.bind(this); - this.vote = this.vote.bind(this); - this.votes = this.votes.bind(this); - this.params = this.params.bind(this); - this.deposit = this.deposit.bind(this); - this.deposits = this.deposits.bind(this); - this.tallyResult = this.tallyResult.bind(this); - } - - proposal(request: QueryProposalRequest): Promise { - const data = QueryProposalRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Proposal", data); - return promise.then(data => QueryProposalResponse.decode(new _m0.Reader(data))); - } - - proposals(request: QueryProposalsRequest): Promise { - const data = QueryProposalsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Proposals", data); - return promise.then(data => QueryProposalsResponse.decode(new _m0.Reader(data))); - } - - vote(request: QueryVoteRequest): Promise { - const data = QueryVoteRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Vote", data); - return promise.then(data => QueryVoteResponse.decode(new _m0.Reader(data))); - } - - votes(request: QueryVotesRequest): Promise { - const data = QueryVotesRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Votes", data); - return promise.then(data => QueryVotesResponse.decode(new _m0.Reader(data))); - } - - params(request: QueryParamsRequest): Promise { - const data = QueryParamsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Params", data); - return promise.then(data => QueryParamsResponse.decode(new _m0.Reader(data))); - } - - deposit(request: QueryDepositRequest): Promise { - const data = QueryDepositRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Deposit", data); - return promise.then(data => QueryDepositResponse.decode(new _m0.Reader(data))); - } - - deposits(request: QueryDepositsRequest): Promise { - const data = QueryDepositsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Deposits", data); - return promise.then(data => QueryDepositsResponse.decode(new _m0.Reader(data))); - } - - tallyResult(request: QueryTallyResultRequest): Promise { - const data = QueryTallyResultRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "TallyResult", data); - return promise.then(data => QueryTallyResultResponse.decode(new _m0.Reader(data))); - } - -} -export const createRpcQueryExtension = (base: QueryClient) => { - const rpc = createProtobufRpcClient(base); - const queryService = new QueryClientImpl(rpc); - return { - proposal(request: QueryProposalRequest): Promise { - return queryService.proposal(request); - }, - - proposals(request: QueryProposalsRequest): Promise { - return queryService.proposals(request); - }, - - vote(request: QueryVoteRequest): Promise { - return queryService.vote(request); - }, - - votes(request: QueryVotesRequest): Promise { - return queryService.votes(request); - }, - - params(request: QueryParamsRequest): Promise { - return queryService.params(request); - }, - - deposit(request: QueryDepositRequest): Promise { - return queryService.deposit(request); - }, - - deposits(request: QueryDepositsRequest): Promise { - return queryService.deposits(request); - }, - - tallyResult(request: QueryTallyResultRequest): Promise { - return queryService.tallyResult(request); - } - - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/gov/v1beta1/query.ts b/packages/codegen/src/cosmos/gov/v1beta1/query.ts deleted file mode 100644 index b1fcdd61..00000000 --- a/packages/codegen/src/cosmos/gov/v1beta1/query.ts +++ /dev/null @@ -1,1074 +0,0 @@ -import { ProposalStatus, Proposal, ProposalSDKType, Vote, VoteSDKType, VotingParams, VotingParamsSDKType, DepositParams, DepositParamsSDKType, TallyParams, TallyParamsSDKType, Deposit, DepositSDKType, TallyResult, TallyResultSDKType } from "./gov"; -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** QueryProposalRequest is the request type for the Query/Proposal RPC method. */ - -export interface QueryProposalRequest { - /** proposal_id defines the unique id of the proposal. */ - proposalId: Long; -} -/** QueryProposalRequest is the request type for the Query/Proposal RPC method. */ - -export interface QueryProposalRequestSDKType { - proposal_id: Long; -} -/** QueryProposalResponse is the response type for the Query/Proposal RPC method. */ - -export interface QueryProposalResponse { - proposal?: Proposal; -} -/** QueryProposalResponse is the response type for the Query/Proposal RPC method. */ - -export interface QueryProposalResponseSDKType { - proposal?: ProposalSDKType; -} -/** QueryProposalsRequest is the request type for the Query/Proposals RPC method. */ - -export interface QueryProposalsRequest { - /** proposal_status defines the status of the proposals. */ - proposalStatus: ProposalStatus; - /** voter defines the voter address for the proposals. */ - - voter: string; - /** depositor defines the deposit addresses from the proposals. */ - - depositor: string; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** QueryProposalsRequest is the request type for the Query/Proposals RPC method. */ - -export interface QueryProposalsRequestSDKType { - proposal_status: ProposalStatus; - voter: string; - depositor: string; - pagination?: PageRequestSDKType; -} -/** - * QueryProposalsResponse is the response type for the Query/Proposals RPC - * method. - */ - -export interface QueryProposalsResponse { - proposals: Proposal[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** - * QueryProposalsResponse is the response type for the Query/Proposals RPC - * method. - */ - -export interface QueryProposalsResponseSDKType { - proposals: ProposalSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryVoteRequest is the request type for the Query/Vote RPC method. */ - -export interface QueryVoteRequest { - /** proposal_id defines the unique id of the proposal. */ - proposalId: Long; - /** voter defines the oter address for the proposals. */ - - voter: string; -} -/** QueryVoteRequest is the request type for the Query/Vote RPC method. */ - -export interface QueryVoteRequestSDKType { - proposal_id: Long; - voter: string; -} -/** QueryVoteResponse is the response type for the Query/Vote RPC method. */ - -export interface QueryVoteResponse { - /** vote defined the queried vote. */ - vote?: Vote; -} -/** QueryVoteResponse is the response type for the Query/Vote RPC method. */ - -export interface QueryVoteResponseSDKType { - vote?: VoteSDKType; -} -/** QueryVotesRequest is the request type for the Query/Votes RPC method. */ - -export interface QueryVotesRequest { - /** proposal_id defines the unique id of the proposal. */ - proposalId: Long; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** QueryVotesRequest is the request type for the Query/Votes RPC method. */ - -export interface QueryVotesRequestSDKType { - proposal_id: Long; - pagination?: PageRequestSDKType; -} -/** QueryVotesResponse is the response type for the Query/Votes RPC method. */ - -export interface QueryVotesResponse { - /** votes defined the queried votes. */ - votes: Vote[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** QueryVotesResponse is the response type for the Query/Votes RPC method. */ - -export interface QueryVotesResponseSDKType { - votes: VoteSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ - -export interface QueryParamsRequest { - /** - * params_type defines which parameters to query for, can be one of "voting", - * "tallying" or "deposit". - */ - paramsType: string; -} -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ - -export interface QueryParamsRequestSDKType { - params_type: string; -} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ - -export interface QueryParamsResponse { - /** voting_params defines the parameters related to voting. */ - votingParams?: VotingParams; - /** deposit_params defines the parameters related to deposit. */ - - depositParams?: DepositParams; - /** tally_params defines the parameters related to tally. */ - - tallyParams?: TallyParams; -} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ - -export interface QueryParamsResponseSDKType { - voting_params?: VotingParamsSDKType; - deposit_params?: DepositParamsSDKType; - tally_params?: TallyParamsSDKType; -} -/** QueryDepositRequest is the request type for the Query/Deposit RPC method. */ - -export interface QueryDepositRequest { - /** proposal_id defines the unique id of the proposal. */ - proposalId: Long; - /** depositor defines the deposit addresses from the proposals. */ - - depositor: string; -} -/** QueryDepositRequest is the request type for the Query/Deposit RPC method. */ - -export interface QueryDepositRequestSDKType { - proposal_id: Long; - depositor: string; -} -/** QueryDepositResponse is the response type for the Query/Deposit RPC method. */ - -export interface QueryDepositResponse { - /** deposit defines the requested deposit. */ - deposit?: Deposit; -} -/** QueryDepositResponse is the response type for the Query/Deposit RPC method. */ - -export interface QueryDepositResponseSDKType { - deposit?: DepositSDKType; -} -/** QueryDepositsRequest is the request type for the Query/Deposits RPC method. */ - -export interface QueryDepositsRequest { - /** proposal_id defines the unique id of the proposal. */ - proposalId: Long; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** QueryDepositsRequest is the request type for the Query/Deposits RPC method. */ - -export interface QueryDepositsRequestSDKType { - proposal_id: Long; - pagination?: PageRequestSDKType; -} -/** QueryDepositsResponse is the response type for the Query/Deposits RPC method. */ - -export interface QueryDepositsResponse { - deposits: Deposit[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** QueryDepositsResponse is the response type for the Query/Deposits RPC method. */ - -export interface QueryDepositsResponseSDKType { - deposits: DepositSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryTallyResultRequest is the request type for the Query/Tally RPC method. */ - -export interface QueryTallyResultRequest { - /** proposal_id defines the unique id of the proposal. */ - proposalId: Long; -} -/** QueryTallyResultRequest is the request type for the Query/Tally RPC method. */ - -export interface QueryTallyResultRequestSDKType { - proposal_id: Long; -} -/** QueryTallyResultResponse is the response type for the Query/Tally RPC method. */ - -export interface QueryTallyResultResponse { - /** tally defines the requested tally. */ - tally?: TallyResult; -} -/** QueryTallyResultResponse is the response type for the Query/Tally RPC method. */ - -export interface QueryTallyResultResponseSDKType { - tally?: TallyResultSDKType; -} - -function createBaseQueryProposalRequest(): QueryProposalRequest { - return { - proposalId: Long.UZERO - }; -} - -export const QueryProposalRequest = { - encode(message: QueryProposalRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryProposalRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryProposalRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryProposalRequest { - const message = createBaseQueryProposalRequest(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - return message; - } - -}; - -function createBaseQueryProposalResponse(): QueryProposalResponse { - return { - proposal: undefined - }; -} - -export const QueryProposalResponse = { - encode(message: QueryProposalResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.proposal !== undefined) { - Proposal.encode(message.proposal, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryProposalResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryProposalResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposal = Proposal.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryProposalResponse { - const message = createBaseQueryProposalResponse(); - message.proposal = object.proposal !== undefined && object.proposal !== null ? Proposal.fromPartial(object.proposal) : undefined; - return message; - } - -}; - -function createBaseQueryProposalsRequest(): QueryProposalsRequest { - return { - proposalStatus: 0, - voter: "", - depositor: "", - pagination: undefined - }; -} - -export const QueryProposalsRequest = { - encode(message: QueryProposalsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.proposalStatus !== 0) { - writer.uint32(8).int32(message.proposalStatus); - } - - if (message.voter !== "") { - writer.uint32(18).string(message.voter); - } - - if (message.depositor !== "") { - writer.uint32(26).string(message.depositor); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryProposalsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryProposalsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalStatus = (reader.int32() as any); - break; - - case 2: - message.voter = reader.string(); - break; - - case 3: - message.depositor = reader.string(); - break; - - case 4: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryProposalsRequest { - const message = createBaseQueryProposalsRequest(); - message.proposalStatus = object.proposalStatus ?? 0; - message.voter = object.voter ?? ""; - message.depositor = object.depositor ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryProposalsResponse(): QueryProposalsResponse { - return { - proposals: [], - pagination: undefined - }; -} - -export const QueryProposalsResponse = { - encode(message: QueryProposalsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.proposals) { - Proposal.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryProposalsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryProposalsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposals.push(Proposal.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryProposalsResponse { - const message = createBaseQueryProposalsResponse(); - message.proposals = object.proposals?.map(e => Proposal.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryVoteRequest(): QueryVoteRequest { - return { - proposalId: Long.UZERO, - voter: "" - }; -} - -export const QueryVoteRequest = { - encode(message: QueryVoteRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.voter !== "") { - writer.uint32(18).string(message.voter); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVoteRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryVoteRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.voter = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryVoteRequest { - const message = createBaseQueryVoteRequest(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.voter = object.voter ?? ""; - return message; - } - -}; - -function createBaseQueryVoteResponse(): QueryVoteResponse { - return { - vote: undefined - }; -} - -export const QueryVoteResponse = { - encode(message: QueryVoteResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.vote !== undefined) { - Vote.encode(message.vote, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVoteResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryVoteResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.vote = Vote.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryVoteResponse { - const message = createBaseQueryVoteResponse(); - message.vote = object.vote !== undefined && object.vote !== null ? Vote.fromPartial(object.vote) : undefined; - return message; - } - -}; - -function createBaseQueryVotesRequest(): QueryVotesRequest { - return { - proposalId: Long.UZERO, - pagination: undefined - }; -} - -export const QueryVotesRequest = { - encode(message: QueryVotesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVotesRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryVotesRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryVotesRequest { - const message = createBaseQueryVotesRequest(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryVotesResponse(): QueryVotesResponse { - return { - votes: [], - pagination: undefined - }; -} - -export const QueryVotesResponse = { - encode(message: QueryVotesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.votes) { - Vote.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVotesResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryVotesResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.votes.push(Vote.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryVotesResponse { - const message = createBaseQueryVotesResponse(); - message.votes = object.votes?.map(e => Vote.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryParamsRequest(): QueryParamsRequest { - return { - paramsType: "" - }; -} - -export const QueryParamsRequest = { - encode(message: QueryParamsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.paramsType !== "") { - writer.uint32(10).string(message.paramsType); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.paramsType = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryParamsRequest { - const message = createBaseQueryParamsRequest(); - message.paramsType = object.paramsType ?? ""; - return message; - } - -}; - -function createBaseQueryParamsResponse(): QueryParamsResponse { - return { - votingParams: undefined, - depositParams: undefined, - tallyParams: undefined - }; -} - -export const QueryParamsResponse = { - encode(message: QueryParamsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.votingParams !== undefined) { - VotingParams.encode(message.votingParams, writer.uint32(10).fork()).ldelim(); - } - - if (message.depositParams !== undefined) { - DepositParams.encode(message.depositParams, writer.uint32(18).fork()).ldelim(); - } - - if (message.tallyParams !== undefined) { - TallyParams.encode(message.tallyParams, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.votingParams = VotingParams.decode(reader, reader.uint32()); - break; - - case 2: - message.depositParams = DepositParams.decode(reader, reader.uint32()); - break; - - case 3: - message.tallyParams = TallyParams.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryParamsResponse { - const message = createBaseQueryParamsResponse(); - message.votingParams = object.votingParams !== undefined && object.votingParams !== null ? VotingParams.fromPartial(object.votingParams) : undefined; - message.depositParams = object.depositParams !== undefined && object.depositParams !== null ? DepositParams.fromPartial(object.depositParams) : undefined; - message.tallyParams = object.tallyParams !== undefined && object.tallyParams !== null ? TallyParams.fromPartial(object.tallyParams) : undefined; - return message; - } - -}; - -function createBaseQueryDepositRequest(): QueryDepositRequest { - return { - proposalId: Long.UZERO, - depositor: "" - }; -} - -export const QueryDepositRequest = { - encode(message: QueryDepositRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.depositor !== "") { - writer.uint32(18).string(message.depositor); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDepositRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDepositRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.depositor = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDepositRequest { - const message = createBaseQueryDepositRequest(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.depositor = object.depositor ?? ""; - return message; - } - -}; - -function createBaseQueryDepositResponse(): QueryDepositResponse { - return { - deposit: undefined - }; -} - -export const QueryDepositResponse = { - encode(message: QueryDepositResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.deposit !== undefined) { - Deposit.encode(message.deposit, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDepositResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDepositResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.deposit = Deposit.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDepositResponse { - const message = createBaseQueryDepositResponse(); - message.deposit = object.deposit !== undefined && object.deposit !== null ? Deposit.fromPartial(object.deposit) : undefined; - return message; - } - -}; - -function createBaseQueryDepositsRequest(): QueryDepositsRequest { - return { - proposalId: Long.UZERO, - pagination: undefined - }; -} - -export const QueryDepositsRequest = { - encode(message: QueryDepositsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDepositsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDepositsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDepositsRequest { - const message = createBaseQueryDepositsRequest(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryDepositsResponse(): QueryDepositsResponse { - return { - deposits: [], - pagination: undefined - }; -} - -export const QueryDepositsResponse = { - encode(message: QueryDepositsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.deposits) { - Deposit.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDepositsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDepositsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.deposits.push(Deposit.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDepositsResponse { - const message = createBaseQueryDepositsResponse(); - message.deposits = object.deposits?.map(e => Deposit.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryTallyResultRequest(): QueryTallyResultRequest { - return { - proposalId: Long.UZERO - }; -} - -export const QueryTallyResultRequest = { - encode(message: QueryTallyResultRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryTallyResultRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryTallyResultRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryTallyResultRequest { - const message = createBaseQueryTallyResultRequest(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - return message; - } - -}; - -function createBaseQueryTallyResultResponse(): QueryTallyResultResponse { - return { - tally: undefined - }; -} - -export const QueryTallyResultResponse = { - encode(message: QueryTallyResultResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.tally !== undefined) { - TallyResult.encode(message.tally, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryTallyResultResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryTallyResultResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.tally = TallyResult.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryTallyResultResponse { - const message = createBaseQueryTallyResultResponse(); - message.tally = object.tally !== undefined && object.tally !== null ? TallyResult.fromPartial(object.tally) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/gov/v1beta1/tx.rpc.msg.ts b/packages/codegen/src/cosmos/gov/v1beta1/tx.rpc.msg.ts deleted file mode 100644 index 4e4cc252..00000000 --- a/packages/codegen/src/cosmos/gov/v1beta1/tx.rpc.msg.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { MsgSubmitProposal, MsgSubmitProposalResponse, MsgVote, MsgVoteResponse, MsgVoteWeighted, MsgVoteWeightedResponse, MsgDeposit, MsgDepositResponse } from "./tx"; -/** Msg defines the bank Msg service. */ - -export interface Msg { - /** SubmitProposal defines a method to create new proposal given a content. */ - submitProposal(request: MsgSubmitProposal): Promise; - /** Vote defines a method to add a vote on a specific proposal. */ - - vote(request: MsgVote): Promise; - /** - * VoteWeighted defines a method to add a weighted vote on a specific proposal. - * - * Since: cosmos-sdk 0.43 - */ - - voteWeighted(request: MsgVoteWeighted): Promise; - /** Deposit defines a method to add deposit on a specific proposal. */ - - deposit(request: MsgDeposit): Promise; -} -export class MsgClientImpl implements Msg { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.submitProposal = this.submitProposal.bind(this); - this.vote = this.vote.bind(this); - this.voteWeighted = this.voteWeighted.bind(this); - this.deposit = this.deposit.bind(this); - } - - submitProposal(request: MsgSubmitProposal): Promise { - const data = MsgSubmitProposal.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1beta1.Msg", "SubmitProposal", data); - return promise.then(data => MsgSubmitProposalResponse.decode(new _m0.Reader(data))); - } - - vote(request: MsgVote): Promise { - const data = MsgVote.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1beta1.Msg", "Vote", data); - return promise.then(data => MsgVoteResponse.decode(new _m0.Reader(data))); - } - - voteWeighted(request: MsgVoteWeighted): Promise { - const data = MsgVoteWeighted.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1beta1.Msg", "VoteWeighted", data); - return promise.then(data => MsgVoteWeightedResponse.decode(new _m0.Reader(data))); - } - - deposit(request: MsgDeposit): Promise { - const data = MsgDeposit.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1beta1.Msg", "Deposit", data); - return promise.then(data => MsgDepositResponse.decode(new _m0.Reader(data))); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/gov/v1beta1/tx.ts b/packages/codegen/src/cosmos/gov/v1beta1/tx.ts deleted file mode 100644 index c89eef26..00000000 --- a/packages/codegen/src/cosmos/gov/v1beta1/tx.ts +++ /dev/null @@ -1,518 +0,0 @@ -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import { VoteOption, WeightedVoteOption, WeightedVoteOptionSDKType } from "./gov"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** - * MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary - * proposal Content. - */ - -export interface MsgSubmitProposal { - content?: Any; - initialDeposit: Coin[]; - proposer: string; -} -/** - * MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary - * proposal Content. - */ - -export interface MsgSubmitProposalSDKType { - content?: AnySDKType; - initial_deposit: CoinSDKType[]; - proposer: string; -} -/** MsgSubmitProposalResponse defines the Msg/SubmitProposal response type. */ - -export interface MsgSubmitProposalResponse { - proposalId: Long; -} -/** MsgSubmitProposalResponse defines the Msg/SubmitProposal response type. */ - -export interface MsgSubmitProposalResponseSDKType { - proposal_id: Long; -} -/** MsgVote defines a message to cast a vote. */ - -export interface MsgVote { - proposalId: Long; - voter: string; - option: VoteOption; -} -/** MsgVote defines a message to cast a vote. */ - -export interface MsgVoteSDKType { - proposal_id: Long; - voter: string; - option: VoteOption; -} -/** MsgVoteResponse defines the Msg/Vote response type. */ - -export interface MsgVoteResponse {} -/** MsgVoteResponse defines the Msg/Vote response type. */ - -export interface MsgVoteResponseSDKType {} -/** - * MsgVoteWeighted defines a message to cast a vote. - * - * Since: cosmos-sdk 0.43 - */ - -export interface MsgVoteWeighted { - proposalId: Long; - voter: string; - options: WeightedVoteOption[]; -} -/** - * MsgVoteWeighted defines a message to cast a vote. - * - * Since: cosmos-sdk 0.43 - */ - -export interface MsgVoteWeightedSDKType { - proposal_id: Long; - voter: string; - options: WeightedVoteOptionSDKType[]; -} -/** - * MsgVoteWeightedResponse defines the Msg/VoteWeighted response type. - * - * Since: cosmos-sdk 0.43 - */ - -export interface MsgVoteWeightedResponse {} -/** - * MsgVoteWeightedResponse defines the Msg/VoteWeighted response type. - * - * Since: cosmos-sdk 0.43 - */ - -export interface MsgVoteWeightedResponseSDKType {} -/** MsgDeposit defines a message to submit a deposit to an existing proposal. */ - -export interface MsgDeposit { - proposalId: Long; - depositor: string; - amount: Coin[]; -} -/** MsgDeposit defines a message to submit a deposit to an existing proposal. */ - -export interface MsgDepositSDKType { - proposal_id: Long; - depositor: string; - amount: CoinSDKType[]; -} -/** MsgDepositResponse defines the Msg/Deposit response type. */ - -export interface MsgDepositResponse {} -/** MsgDepositResponse defines the Msg/Deposit response type. */ - -export interface MsgDepositResponseSDKType {} - -function createBaseMsgSubmitProposal(): MsgSubmitProposal { - return { - content: undefined, - initialDeposit: [], - proposer: "" - }; -} - -export const MsgSubmitProposal = { - encode(message: MsgSubmitProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.content !== undefined) { - Any.encode(message.content, writer.uint32(10).fork()).ldelim(); - } - - for (const v of message.initialDeposit) { - Coin.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - if (message.proposer !== "") { - writer.uint32(26).string(message.proposer); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSubmitProposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgSubmitProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.content = Any.decode(reader, reader.uint32()); - break; - - case 2: - message.initialDeposit.push(Coin.decode(reader, reader.uint32())); - break; - - case 3: - message.proposer = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgSubmitProposal { - const message = createBaseMsgSubmitProposal(); - message.content = object.content !== undefined && object.content !== null ? Any.fromPartial(object.content) : undefined; - message.initialDeposit = object.initialDeposit?.map(e => Coin.fromPartial(e)) || []; - message.proposer = object.proposer ?? ""; - return message; - } - -}; - -function createBaseMsgSubmitProposalResponse(): MsgSubmitProposalResponse { - return { - proposalId: Long.UZERO - }; -} - -export const MsgSubmitProposalResponse = { - encode(message: MsgSubmitProposalResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSubmitProposalResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgSubmitProposalResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgSubmitProposalResponse { - const message = createBaseMsgSubmitProposalResponse(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - return message; - } - -}; - -function createBaseMsgVote(): MsgVote { - return { - proposalId: Long.UZERO, - voter: "", - option: 0 - }; -} - -export const MsgVote = { - encode(message: MsgVote, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.voter !== "") { - writer.uint32(18).string(message.voter); - } - - if (message.option !== 0) { - writer.uint32(24).int32(message.option); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgVote { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgVote(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.voter = reader.string(); - break; - - case 3: - message.option = (reader.int32() as any); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgVote { - const message = createBaseMsgVote(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.voter = object.voter ?? ""; - message.option = object.option ?? 0; - return message; - } - -}; - -function createBaseMsgVoteResponse(): MsgVoteResponse { - return {}; -} - -export const MsgVoteResponse = { - encode(_: MsgVoteResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgVoteResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgVoteResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgVoteResponse { - const message = createBaseMsgVoteResponse(); - return message; - } - -}; - -function createBaseMsgVoteWeighted(): MsgVoteWeighted { - return { - proposalId: Long.UZERO, - voter: "", - options: [] - }; -} - -export const MsgVoteWeighted = { - encode(message: MsgVoteWeighted, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.voter !== "") { - writer.uint32(18).string(message.voter); - } - - for (const v of message.options) { - WeightedVoteOption.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgVoteWeighted { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgVoteWeighted(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.voter = reader.string(); - break; - - case 3: - message.options.push(WeightedVoteOption.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgVoteWeighted { - const message = createBaseMsgVoteWeighted(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.voter = object.voter ?? ""; - message.options = object.options?.map(e => WeightedVoteOption.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseMsgVoteWeightedResponse(): MsgVoteWeightedResponse { - return {}; -} - -export const MsgVoteWeightedResponse = { - encode(_: MsgVoteWeightedResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgVoteWeightedResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgVoteWeightedResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgVoteWeightedResponse { - const message = createBaseMsgVoteWeightedResponse(); - return message; - } - -}; - -function createBaseMsgDeposit(): MsgDeposit { - return { - proposalId: Long.UZERO, - depositor: "", - amount: [] - }; -} - -export const MsgDeposit = { - encode(message: MsgDeposit, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.depositor !== "") { - writer.uint32(18).string(message.depositor); - } - - for (const v of message.amount) { - Coin.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgDeposit { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgDeposit(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.depositor = reader.string(); - break; - - case 3: - message.amount.push(Coin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgDeposit { - const message = createBaseMsgDeposit(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.depositor = object.depositor ?? ""; - message.amount = object.amount?.map(e => Coin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseMsgDepositResponse(): MsgDepositResponse { - return {}; -} - -export const MsgDepositResponse = { - encode(_: MsgDepositResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgDepositResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgDepositResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgDepositResponse { - const message = createBaseMsgDepositResponse(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/group/v1/events.ts b/packages/codegen/src/cosmos/group/v1/events.ts deleted file mode 100644 index 34f5a304..00000000 --- a/packages/codegen/src/cosmos/group/v1/events.ts +++ /dev/null @@ -1,535 +0,0 @@ -import { ProposalExecutorResult } from "./types"; -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** EventCreateGroup is an event emitted when a group is created. */ - -export interface EventCreateGroup { - /** group_id is the unique ID of the group. */ - groupId: Long; -} -/** EventCreateGroup is an event emitted when a group is created. */ - -export interface EventCreateGroupSDKType { - group_id: Long; -} -/** EventUpdateGroup is an event emitted when a group is updated. */ - -export interface EventUpdateGroup { - /** group_id is the unique ID of the group. */ - groupId: Long; -} -/** EventUpdateGroup is an event emitted when a group is updated. */ - -export interface EventUpdateGroupSDKType { - group_id: Long; -} -/** EventCreateGroupPolicy is an event emitted when a group policy is created. */ - -export interface EventCreateGroupPolicy { - /** address is the account address of the group policy. */ - address: string; -} -/** EventCreateGroupPolicy is an event emitted when a group policy is created. */ - -export interface EventCreateGroupPolicySDKType { - address: string; -} -/** EventUpdateGroupPolicy is an event emitted when a group policy is updated. */ - -export interface EventUpdateGroupPolicy { - /** address is the account address of the group policy. */ - address: string; -} -/** EventUpdateGroupPolicy is an event emitted when a group policy is updated. */ - -export interface EventUpdateGroupPolicySDKType { - address: string; -} -/** EventSubmitProposal is an event emitted when a proposal is created. */ - -export interface EventSubmitProposal { - /** proposal_id is the unique ID of the proposal. */ - proposalId: Long; -} -/** EventSubmitProposal is an event emitted when a proposal is created. */ - -export interface EventSubmitProposalSDKType { - proposal_id: Long; -} -/** EventWithdrawProposal is an event emitted when a proposal is withdrawn. */ - -export interface EventWithdrawProposal { - /** proposal_id is the unique ID of the proposal. */ - proposalId: Long; -} -/** EventWithdrawProposal is an event emitted when a proposal is withdrawn. */ - -export interface EventWithdrawProposalSDKType { - proposal_id: Long; -} -/** EventVote is an event emitted when a voter votes on a proposal. */ - -export interface EventVote { - /** proposal_id is the unique ID of the proposal. */ - proposalId: Long; -} -/** EventVote is an event emitted when a voter votes on a proposal. */ - -export interface EventVoteSDKType { - proposal_id: Long; -} -/** EventExec is an event emitted when a proposal is executed. */ - -export interface EventExec { - /** proposal_id is the unique ID of the proposal. */ - proposalId: Long; - /** result is the proposal execution result. */ - - result: ProposalExecutorResult; -} -/** EventExec is an event emitted when a proposal is executed. */ - -export interface EventExecSDKType { - proposal_id: Long; - result: ProposalExecutorResult; -} -/** EventLeaveGroup is an event emitted when group member leaves the group. */ - -export interface EventLeaveGroup { - /** group_id is the unique ID of the group. */ - groupId: Long; - /** address is the account address of the group member. */ - - address: string; -} -/** EventLeaveGroup is an event emitted when group member leaves the group. */ - -export interface EventLeaveGroupSDKType { - group_id: Long; - address: string; -} - -function createBaseEventCreateGroup(): EventCreateGroup { - return { - groupId: Long.UZERO - }; -} - -export const EventCreateGroup = { - encode(message: EventCreateGroup, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.groupId.isZero()) { - writer.uint32(8).uint64(message.groupId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): EventCreateGroup { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEventCreateGroup(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.groupId = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): EventCreateGroup { - const message = createBaseEventCreateGroup(); - message.groupId = object.groupId !== undefined && object.groupId !== null ? Long.fromValue(object.groupId) : Long.UZERO; - return message; - } - -}; - -function createBaseEventUpdateGroup(): EventUpdateGroup { - return { - groupId: Long.UZERO - }; -} - -export const EventUpdateGroup = { - encode(message: EventUpdateGroup, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.groupId.isZero()) { - writer.uint32(8).uint64(message.groupId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): EventUpdateGroup { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEventUpdateGroup(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.groupId = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): EventUpdateGroup { - const message = createBaseEventUpdateGroup(); - message.groupId = object.groupId !== undefined && object.groupId !== null ? Long.fromValue(object.groupId) : Long.UZERO; - return message; - } - -}; - -function createBaseEventCreateGroupPolicy(): EventCreateGroupPolicy { - return { - address: "" - }; -} - -export const EventCreateGroupPolicy = { - encode(message: EventCreateGroupPolicy, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): EventCreateGroupPolicy { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEventCreateGroupPolicy(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): EventCreateGroupPolicy { - const message = createBaseEventCreateGroupPolicy(); - message.address = object.address ?? ""; - return message; - } - -}; - -function createBaseEventUpdateGroupPolicy(): EventUpdateGroupPolicy { - return { - address: "" - }; -} - -export const EventUpdateGroupPolicy = { - encode(message: EventUpdateGroupPolicy, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): EventUpdateGroupPolicy { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEventUpdateGroupPolicy(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): EventUpdateGroupPolicy { - const message = createBaseEventUpdateGroupPolicy(); - message.address = object.address ?? ""; - return message; - } - -}; - -function createBaseEventSubmitProposal(): EventSubmitProposal { - return { - proposalId: Long.UZERO - }; -} - -export const EventSubmitProposal = { - encode(message: EventSubmitProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): EventSubmitProposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEventSubmitProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): EventSubmitProposal { - const message = createBaseEventSubmitProposal(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - return message; - } - -}; - -function createBaseEventWithdrawProposal(): EventWithdrawProposal { - return { - proposalId: Long.UZERO - }; -} - -export const EventWithdrawProposal = { - encode(message: EventWithdrawProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): EventWithdrawProposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEventWithdrawProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): EventWithdrawProposal { - const message = createBaseEventWithdrawProposal(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - return message; - } - -}; - -function createBaseEventVote(): EventVote { - return { - proposalId: Long.UZERO - }; -} - -export const EventVote = { - encode(message: EventVote, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): EventVote { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEventVote(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): EventVote { - const message = createBaseEventVote(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - return message; - } - -}; - -function createBaseEventExec(): EventExec { - return { - proposalId: Long.UZERO, - result: 0 - }; -} - -export const EventExec = { - encode(message: EventExec, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.result !== 0) { - writer.uint32(16).int32(message.result); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): EventExec { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEventExec(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.result = (reader.int32() as any); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): EventExec { - const message = createBaseEventExec(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.result = object.result ?? 0; - return message; - } - -}; - -function createBaseEventLeaveGroup(): EventLeaveGroup { - return { - groupId: Long.UZERO, - address: "" - }; -} - -export const EventLeaveGroup = { - encode(message: EventLeaveGroup, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.groupId.isZero()) { - writer.uint32(8).uint64(message.groupId); - } - - if (message.address !== "") { - writer.uint32(18).string(message.address); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): EventLeaveGroup { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEventLeaveGroup(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.groupId = (reader.uint64() as Long); - break; - - case 2: - message.address = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): EventLeaveGroup { - const message = createBaseEventLeaveGroup(); - message.groupId = object.groupId !== undefined && object.groupId !== null ? Long.fromValue(object.groupId) : Long.UZERO; - message.address = object.address ?? ""; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/group/v1/genesis.ts b/packages/codegen/src/cosmos/group/v1/genesis.ts deleted file mode 100644 index 290cc51c..00000000 --- a/packages/codegen/src/cosmos/group/v1/genesis.ts +++ /dev/null @@ -1,166 +0,0 @@ -import { GroupInfo, GroupInfoSDKType, GroupMember, GroupMemberSDKType, GroupPolicyInfo, GroupPolicyInfoSDKType, Proposal, ProposalSDKType, Vote, VoteSDKType } from "./types"; -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** GenesisState defines the group module's genesis state. */ - -export interface GenesisState { - /** - * group_seq is the group table orm.Sequence, - * it is used to get the next group ID. - */ - groupSeq: Long; - /** groups is the list of groups info. */ - - groups: GroupInfo[]; - /** group_members is the list of groups members. */ - - groupMembers: GroupMember[]; - /** - * group_policy_seq is the group policy table orm.Sequence, - * it is used to generate the next group policy account address. - */ - - groupPolicySeq: Long; - /** group_policies is the list of group policies info. */ - - groupPolicies: GroupPolicyInfo[]; - /** - * proposal_seq is the proposal table orm.Sequence, - * it is used to get the next proposal ID. - */ - - proposalSeq: Long; - /** proposals is the list of proposals. */ - - proposals: Proposal[]; - /** votes is the list of votes. */ - - votes: Vote[]; -} -/** GenesisState defines the group module's genesis state. */ - -export interface GenesisStateSDKType { - group_seq: Long; - groups: GroupInfoSDKType[]; - group_members: GroupMemberSDKType[]; - group_policy_seq: Long; - group_policies: GroupPolicyInfoSDKType[]; - proposal_seq: Long; - proposals: ProposalSDKType[]; - votes: VoteSDKType[]; -} - -function createBaseGenesisState(): GenesisState { - return { - groupSeq: Long.UZERO, - groups: [], - groupMembers: [], - groupPolicySeq: Long.UZERO, - groupPolicies: [], - proposalSeq: Long.UZERO, - proposals: [], - votes: [] - }; -} - -export const GenesisState = { - encode(message: GenesisState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.groupSeq.isZero()) { - writer.uint32(8).uint64(message.groupSeq); - } - - for (const v of message.groups) { - GroupInfo.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - for (const v of message.groupMembers) { - GroupMember.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - if (!message.groupPolicySeq.isZero()) { - writer.uint32(32).uint64(message.groupPolicySeq); - } - - for (const v of message.groupPolicies) { - GroupPolicyInfo.encode(v!, writer.uint32(42).fork()).ldelim(); - } - - if (!message.proposalSeq.isZero()) { - writer.uint32(48).uint64(message.proposalSeq); - } - - for (const v of message.proposals) { - Proposal.encode(v!, writer.uint32(58).fork()).ldelim(); - } - - for (const v of message.votes) { - Vote.encode(v!, writer.uint32(66).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.groupSeq = (reader.uint64() as Long); - break; - - case 2: - message.groups.push(GroupInfo.decode(reader, reader.uint32())); - break; - - case 3: - message.groupMembers.push(GroupMember.decode(reader, reader.uint32())); - break; - - case 4: - message.groupPolicySeq = (reader.uint64() as Long); - break; - - case 5: - message.groupPolicies.push(GroupPolicyInfo.decode(reader, reader.uint32())); - break; - - case 6: - message.proposalSeq = (reader.uint64() as Long); - break; - - case 7: - message.proposals.push(Proposal.decode(reader, reader.uint32())); - break; - - case 8: - message.votes.push(Vote.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenesisState { - const message = createBaseGenesisState(); - message.groupSeq = object.groupSeq !== undefined && object.groupSeq !== null ? Long.fromValue(object.groupSeq) : Long.UZERO; - message.groups = object.groups?.map(e => GroupInfo.fromPartial(e)) || []; - message.groupMembers = object.groupMembers?.map(e => GroupMember.fromPartial(e)) || []; - message.groupPolicySeq = object.groupPolicySeq !== undefined && object.groupPolicySeq !== null ? Long.fromValue(object.groupPolicySeq) : Long.UZERO; - message.groupPolicies = object.groupPolicies?.map(e => GroupPolicyInfo.fromPartial(e)) || []; - message.proposalSeq = object.proposalSeq !== undefined && object.proposalSeq !== null ? Long.fromValue(object.proposalSeq) : Long.UZERO; - message.proposals = object.proposals?.map(e => Proposal.fromPartial(e)) || []; - message.votes = object.votes?.map(e => Vote.fromPartial(e)) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/group/v1/query.lcd.ts b/packages/codegen/src/cosmos/group/v1/query.lcd.ts deleted file mode 100644 index dae3205d..00000000 --- a/packages/codegen/src/cosmos/group/v1/query.lcd.ts +++ /dev/null @@ -1,183 +0,0 @@ -import { setPaginationParams } from "../../../helpers"; -import { LCDClient } from "@osmonauts/lcd"; -import { QueryGroupInfoRequest, QueryGroupInfoResponseSDKType, QueryGroupPolicyInfoRequest, QueryGroupPolicyInfoResponseSDKType, QueryGroupMembersRequest, QueryGroupMembersResponseSDKType, QueryGroupsByAdminRequest, QueryGroupsByAdminResponseSDKType, QueryGroupPoliciesByGroupRequest, QueryGroupPoliciesByGroupResponseSDKType, QueryGroupPoliciesByAdminRequest, QueryGroupPoliciesByAdminResponseSDKType, QueryProposalRequest, QueryProposalResponseSDKType, QueryProposalsByGroupPolicyRequest, QueryProposalsByGroupPolicyResponseSDKType, QueryVoteByProposalVoterRequest, QueryVoteByProposalVoterResponseSDKType, QueryVotesByProposalRequest, QueryVotesByProposalResponseSDKType, QueryVotesByVoterRequest, QueryVotesByVoterResponseSDKType, QueryGroupsByMemberRequest, QueryGroupsByMemberResponseSDKType, QueryTallyResultRequest, QueryTallyResultResponseSDKType } from "./query"; -export class LCDQueryClient { - req: LCDClient; - - constructor({ - requestClient - }: { - requestClient: LCDClient; - }) { - this.req = requestClient; - this.groupInfo = this.groupInfo.bind(this); - this.groupPolicyInfo = this.groupPolicyInfo.bind(this); - this.groupMembers = this.groupMembers.bind(this); - this.groupsByAdmin = this.groupsByAdmin.bind(this); - this.groupPoliciesByGroup = this.groupPoliciesByGroup.bind(this); - this.groupPoliciesByAdmin = this.groupPoliciesByAdmin.bind(this); - this.proposal = this.proposal.bind(this); - this.proposalsByGroupPolicy = this.proposalsByGroupPolicy.bind(this); - this.voteByProposalVoter = this.voteByProposalVoter.bind(this); - this.votesByProposal = this.votesByProposal.bind(this); - this.votesByVoter = this.votesByVoter.bind(this); - this.groupsByMember = this.groupsByMember.bind(this); - this.tallyResult = this.tallyResult.bind(this); - } - /* GroupInfo queries group info based on group id. */ - - - async groupInfo(params: QueryGroupInfoRequest): Promise { - const endpoint = `cosmos/group/v1/group_info/${params.groupId}`; - return await this.req.get(endpoint); - } - /* GroupPolicyInfo queries group policy info based on account address of group policy. */ - - - async groupPolicyInfo(params: QueryGroupPolicyInfoRequest): Promise { - const endpoint = `cosmos/group/v1/group_policy_info/${params.address}`; - return await this.req.get(endpoint); - } - /* GroupMembers queries members of a group */ - - - async groupMembers(params: QueryGroupMembersRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/group/v1/group_members/${params.groupId}`; - return await this.req.get(endpoint, options); - } - /* GroupsByAdmin queries groups by admin address. */ - - - async groupsByAdmin(params: QueryGroupsByAdminRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/group/v1/groups_by_admin/${params.admin}`; - return await this.req.get(endpoint, options); - } - /* GroupPoliciesByGroup queries group policies by group id. */ - - - async groupPoliciesByGroup(params: QueryGroupPoliciesByGroupRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/group/v1/group_policies_by_group/${params.groupId}`; - return await this.req.get(endpoint, options); - } - /* GroupsByAdmin queries group policies by admin address. */ - - - async groupPoliciesByAdmin(params: QueryGroupPoliciesByAdminRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/group/v1/group_policies_by_admin/${params.admin}`; - return await this.req.get(endpoint, options); - } - /* Proposal queries a proposal based on proposal id. */ - - - async proposal(params: QueryProposalRequest): Promise { - const endpoint = `cosmos/group/v1/proposal/${params.proposalId}`; - return await this.req.get(endpoint); - } - /* ProposalsByGroupPolicy queries proposals based on account address of group policy. */ - - - async proposalsByGroupPolicy(params: QueryProposalsByGroupPolicyRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/group/v1/proposals_by_group_policy/${params.address}`; - return await this.req.get(endpoint, options); - } - /* VoteByProposalVoter queries a vote by proposal id and voter. */ - - - async voteByProposalVoter(params: QueryVoteByProposalVoterRequest): Promise { - const endpoint = `cosmos/group/v1/vote_by_proposal_voter/${params.proposalId}/${params.voter}`; - return await this.req.get(endpoint); - } - /* VotesByProposal queries a vote by proposal. */ - - - async votesByProposal(params: QueryVotesByProposalRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/group/v1/votes_by_proposal/${params.proposalId}`; - return await this.req.get(endpoint, options); - } - /* VotesByVoter queries a vote by voter. */ - - - async votesByVoter(params: QueryVotesByVoterRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/group/v1/votes_by_voter/${params.voter}`; - return await this.req.get(endpoint, options); - } - /* GroupsByMember queries groups by member address. */ - - - async groupsByMember(params: QueryGroupsByMemberRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/group/v1/groups_by_member/${params.address}`; - return await this.req.get(endpoint, options); - } - /* TallyResult queries the tally of a proposal votes. */ - - - async tallyResult(params: QueryTallyResultRequest): Promise { - const endpoint = `cosmos/group/v1/proposals/${params.proposalId}/tally`; - return await this.req.get(endpoint); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/group/v1/query.rpc.Query.ts b/packages/codegen/src/cosmos/group/v1/query.rpc.Query.ts deleted file mode 100644 index 27d76df9..00000000 --- a/packages/codegen/src/cosmos/group/v1/query.rpc.Query.ts +++ /dev/null @@ -1,203 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { QueryGroupInfoRequest, QueryGroupInfoResponse, QueryGroupPolicyInfoRequest, QueryGroupPolicyInfoResponse, QueryGroupMembersRequest, QueryGroupMembersResponse, QueryGroupsByAdminRequest, QueryGroupsByAdminResponse, QueryGroupPoliciesByGroupRequest, QueryGroupPoliciesByGroupResponse, QueryGroupPoliciesByAdminRequest, QueryGroupPoliciesByAdminResponse, QueryProposalRequest, QueryProposalResponse, QueryProposalsByGroupPolicyRequest, QueryProposalsByGroupPolicyResponse, QueryVoteByProposalVoterRequest, QueryVoteByProposalVoterResponse, QueryVotesByProposalRequest, QueryVotesByProposalResponse, QueryVotesByVoterRequest, QueryVotesByVoterResponse, QueryGroupsByMemberRequest, QueryGroupsByMemberResponse, QueryTallyResultRequest, QueryTallyResultResponse } from "./query"; -/** Query is the cosmos.group.v1 Query service. */ - -export interface Query { - /** GroupInfo queries group info based on group id. */ - groupInfo(request: QueryGroupInfoRequest): Promise; - /** GroupPolicyInfo queries group policy info based on account address of group policy. */ - - groupPolicyInfo(request: QueryGroupPolicyInfoRequest): Promise; - /** GroupMembers queries members of a group */ - - groupMembers(request: QueryGroupMembersRequest): Promise; - /** GroupsByAdmin queries groups by admin address. */ - - groupsByAdmin(request: QueryGroupsByAdminRequest): Promise; - /** GroupPoliciesByGroup queries group policies by group id. */ - - groupPoliciesByGroup(request: QueryGroupPoliciesByGroupRequest): Promise; - /** GroupsByAdmin queries group policies by admin address. */ - - groupPoliciesByAdmin(request: QueryGroupPoliciesByAdminRequest): Promise; - /** Proposal queries a proposal based on proposal id. */ - - proposal(request: QueryProposalRequest): Promise; - /** ProposalsByGroupPolicy queries proposals based on account address of group policy. */ - - proposalsByGroupPolicy(request: QueryProposalsByGroupPolicyRequest): Promise; - /** VoteByProposalVoter queries a vote by proposal id and voter. */ - - voteByProposalVoter(request: QueryVoteByProposalVoterRequest): Promise; - /** VotesByProposal queries a vote by proposal. */ - - votesByProposal(request: QueryVotesByProposalRequest): Promise; - /** VotesByVoter queries a vote by voter. */ - - votesByVoter(request: QueryVotesByVoterRequest): Promise; - /** GroupsByMember queries groups by member address. */ - - groupsByMember(request: QueryGroupsByMemberRequest): Promise; - /** TallyResult queries the tally of a proposal votes. */ - - tallyResult(request: QueryTallyResultRequest): Promise; -} -export class QueryClientImpl implements Query { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.groupInfo = this.groupInfo.bind(this); - this.groupPolicyInfo = this.groupPolicyInfo.bind(this); - this.groupMembers = this.groupMembers.bind(this); - this.groupsByAdmin = this.groupsByAdmin.bind(this); - this.groupPoliciesByGroup = this.groupPoliciesByGroup.bind(this); - this.groupPoliciesByAdmin = this.groupPoliciesByAdmin.bind(this); - this.proposal = this.proposal.bind(this); - this.proposalsByGroupPolicy = this.proposalsByGroupPolicy.bind(this); - this.voteByProposalVoter = this.voteByProposalVoter.bind(this); - this.votesByProposal = this.votesByProposal.bind(this); - this.votesByVoter = this.votesByVoter.bind(this); - this.groupsByMember = this.groupsByMember.bind(this); - this.tallyResult = this.tallyResult.bind(this); - } - - groupInfo(request: QueryGroupInfoRequest): Promise { - const data = QueryGroupInfoRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Query", "GroupInfo", data); - return promise.then(data => QueryGroupInfoResponse.decode(new _m0.Reader(data))); - } - - groupPolicyInfo(request: QueryGroupPolicyInfoRequest): Promise { - const data = QueryGroupPolicyInfoRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Query", "GroupPolicyInfo", data); - return promise.then(data => QueryGroupPolicyInfoResponse.decode(new _m0.Reader(data))); - } - - groupMembers(request: QueryGroupMembersRequest): Promise { - const data = QueryGroupMembersRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Query", "GroupMembers", data); - return promise.then(data => QueryGroupMembersResponse.decode(new _m0.Reader(data))); - } - - groupsByAdmin(request: QueryGroupsByAdminRequest): Promise { - const data = QueryGroupsByAdminRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Query", "GroupsByAdmin", data); - return promise.then(data => QueryGroupsByAdminResponse.decode(new _m0.Reader(data))); - } - - groupPoliciesByGroup(request: QueryGroupPoliciesByGroupRequest): Promise { - const data = QueryGroupPoliciesByGroupRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Query", "GroupPoliciesByGroup", data); - return promise.then(data => QueryGroupPoliciesByGroupResponse.decode(new _m0.Reader(data))); - } - - groupPoliciesByAdmin(request: QueryGroupPoliciesByAdminRequest): Promise { - const data = QueryGroupPoliciesByAdminRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Query", "GroupPoliciesByAdmin", data); - return promise.then(data => QueryGroupPoliciesByAdminResponse.decode(new _m0.Reader(data))); - } - - proposal(request: QueryProposalRequest): Promise { - const data = QueryProposalRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Query", "Proposal", data); - return promise.then(data => QueryProposalResponse.decode(new _m0.Reader(data))); - } - - proposalsByGroupPolicy(request: QueryProposalsByGroupPolicyRequest): Promise { - const data = QueryProposalsByGroupPolicyRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Query", "ProposalsByGroupPolicy", data); - return promise.then(data => QueryProposalsByGroupPolicyResponse.decode(new _m0.Reader(data))); - } - - voteByProposalVoter(request: QueryVoteByProposalVoterRequest): Promise { - const data = QueryVoteByProposalVoterRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Query", "VoteByProposalVoter", data); - return promise.then(data => QueryVoteByProposalVoterResponse.decode(new _m0.Reader(data))); - } - - votesByProposal(request: QueryVotesByProposalRequest): Promise { - const data = QueryVotesByProposalRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Query", "VotesByProposal", data); - return promise.then(data => QueryVotesByProposalResponse.decode(new _m0.Reader(data))); - } - - votesByVoter(request: QueryVotesByVoterRequest): Promise { - const data = QueryVotesByVoterRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Query", "VotesByVoter", data); - return promise.then(data => QueryVotesByVoterResponse.decode(new _m0.Reader(data))); - } - - groupsByMember(request: QueryGroupsByMemberRequest): Promise { - const data = QueryGroupsByMemberRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Query", "GroupsByMember", data); - return promise.then(data => QueryGroupsByMemberResponse.decode(new _m0.Reader(data))); - } - - tallyResult(request: QueryTallyResultRequest): Promise { - const data = QueryTallyResultRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Query", "TallyResult", data); - return promise.then(data => QueryTallyResultResponse.decode(new _m0.Reader(data))); - } - -} -export const createRpcQueryExtension = (base: QueryClient) => { - const rpc = createProtobufRpcClient(base); - const queryService = new QueryClientImpl(rpc); - return { - groupInfo(request: QueryGroupInfoRequest): Promise { - return queryService.groupInfo(request); - }, - - groupPolicyInfo(request: QueryGroupPolicyInfoRequest): Promise { - return queryService.groupPolicyInfo(request); - }, - - groupMembers(request: QueryGroupMembersRequest): Promise { - return queryService.groupMembers(request); - }, - - groupsByAdmin(request: QueryGroupsByAdminRequest): Promise { - return queryService.groupsByAdmin(request); - }, - - groupPoliciesByGroup(request: QueryGroupPoliciesByGroupRequest): Promise { - return queryService.groupPoliciesByGroup(request); - }, - - groupPoliciesByAdmin(request: QueryGroupPoliciesByAdminRequest): Promise { - return queryService.groupPoliciesByAdmin(request); - }, - - proposal(request: QueryProposalRequest): Promise { - return queryService.proposal(request); - }, - - proposalsByGroupPolicy(request: QueryProposalsByGroupPolicyRequest): Promise { - return queryService.proposalsByGroupPolicy(request); - }, - - voteByProposalVoter(request: QueryVoteByProposalVoterRequest): Promise { - return queryService.voteByProposalVoter(request); - }, - - votesByProposal(request: QueryVotesByProposalRequest): Promise { - return queryService.votesByProposal(request); - }, - - votesByVoter(request: QueryVotesByVoterRequest): Promise { - return queryService.votesByVoter(request); - }, - - groupsByMember(request: QueryGroupsByMemberRequest): Promise { - return queryService.groupsByMember(request); - }, - - tallyResult(request: QueryTallyResultRequest): Promise { - return queryService.tallyResult(request); - } - - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/group/v1/query.ts b/packages/codegen/src/cosmos/group/v1/query.ts deleted file mode 100644 index b3069e80..00000000 --- a/packages/codegen/src/cosmos/group/v1/query.ts +++ /dev/null @@ -1,1698 +0,0 @@ -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { GroupInfo, GroupInfoSDKType, GroupPolicyInfo, GroupPolicyInfoSDKType, GroupMember, GroupMemberSDKType, Proposal, ProposalSDKType, Vote, VoteSDKType, TallyResult, TallyResultSDKType } from "./types"; -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** QueryGroupInfoRequest is the Query/GroupInfo request type. */ - -export interface QueryGroupInfoRequest { - /** group_id is the unique ID of the group. */ - groupId: Long; -} -/** QueryGroupInfoRequest is the Query/GroupInfo request type. */ - -export interface QueryGroupInfoRequestSDKType { - group_id: Long; -} -/** QueryGroupInfoResponse is the Query/GroupInfo response type. */ - -export interface QueryGroupInfoResponse { - /** info is the GroupInfo for the group. */ - info?: GroupInfo; -} -/** QueryGroupInfoResponse is the Query/GroupInfo response type. */ - -export interface QueryGroupInfoResponseSDKType { - info?: GroupInfoSDKType; -} -/** QueryGroupPolicyInfoRequest is the Query/GroupPolicyInfo request type. */ - -export interface QueryGroupPolicyInfoRequest { - /** address is the account address of the group policy. */ - address: string; -} -/** QueryGroupPolicyInfoRequest is the Query/GroupPolicyInfo request type. */ - -export interface QueryGroupPolicyInfoRequestSDKType { - address: string; -} -/** QueryGroupPolicyInfoResponse is the Query/GroupPolicyInfo response type. */ - -export interface QueryGroupPolicyInfoResponse { - /** info is the GroupPolicyInfo for the group policy. */ - info?: GroupPolicyInfo; -} -/** QueryGroupPolicyInfoResponse is the Query/GroupPolicyInfo response type. */ - -export interface QueryGroupPolicyInfoResponseSDKType { - info?: GroupPolicyInfoSDKType; -} -/** QueryGroupMembersRequest is the Query/GroupMembers request type. */ - -export interface QueryGroupMembersRequest { - /** group_id is the unique ID of the group. */ - groupId: Long; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** QueryGroupMembersRequest is the Query/GroupMembers request type. */ - -export interface QueryGroupMembersRequestSDKType { - group_id: Long; - pagination?: PageRequestSDKType; -} -/** QueryGroupMembersResponse is the Query/GroupMembersResponse response type. */ - -export interface QueryGroupMembersResponse { - /** members are the members of the group with given group_id. */ - members: GroupMember[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** QueryGroupMembersResponse is the Query/GroupMembersResponse response type. */ - -export interface QueryGroupMembersResponseSDKType { - members: GroupMemberSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryGroupsByAdminRequest is the Query/GroupsByAdmin request type. */ - -export interface QueryGroupsByAdminRequest { - /** admin is the account address of a group's admin. */ - admin: string; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** QueryGroupsByAdminRequest is the Query/GroupsByAdmin request type. */ - -export interface QueryGroupsByAdminRequestSDKType { - admin: string; - pagination?: PageRequestSDKType; -} -/** QueryGroupsByAdminResponse is the Query/GroupsByAdminResponse response type. */ - -export interface QueryGroupsByAdminResponse { - /** groups are the groups info with the provided admin. */ - groups: GroupInfo[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** QueryGroupsByAdminResponse is the Query/GroupsByAdminResponse response type. */ - -export interface QueryGroupsByAdminResponseSDKType { - groups: GroupInfoSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryGroupPoliciesByGroupRequest is the Query/GroupPoliciesByGroup request type. */ - -export interface QueryGroupPoliciesByGroupRequest { - /** group_id is the unique ID of the group policy's group. */ - groupId: Long; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** QueryGroupPoliciesByGroupRequest is the Query/GroupPoliciesByGroup request type. */ - -export interface QueryGroupPoliciesByGroupRequestSDKType { - group_id: Long; - pagination?: PageRequestSDKType; -} -/** QueryGroupPoliciesByGroupResponse is the Query/GroupPoliciesByGroup response type. */ - -export interface QueryGroupPoliciesByGroupResponse { - /** group_policies are the group policies info associated with the provided group. */ - groupPolicies: GroupPolicyInfo[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** QueryGroupPoliciesByGroupResponse is the Query/GroupPoliciesByGroup response type. */ - -export interface QueryGroupPoliciesByGroupResponseSDKType { - group_policies: GroupPolicyInfoSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryGroupPoliciesByAdminRequest is the Query/GroupPoliciesByAdmin request type. */ - -export interface QueryGroupPoliciesByAdminRequest { - /** admin is the admin address of the group policy. */ - admin: string; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** QueryGroupPoliciesByAdminRequest is the Query/GroupPoliciesByAdmin request type. */ - -export interface QueryGroupPoliciesByAdminRequestSDKType { - admin: string; - pagination?: PageRequestSDKType; -} -/** QueryGroupPoliciesByAdminResponse is the Query/GroupPoliciesByAdmin response type. */ - -export interface QueryGroupPoliciesByAdminResponse { - /** group_policies are the group policies info with provided admin. */ - groupPolicies: GroupPolicyInfo[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** QueryGroupPoliciesByAdminResponse is the Query/GroupPoliciesByAdmin response type. */ - -export interface QueryGroupPoliciesByAdminResponseSDKType { - group_policies: GroupPolicyInfoSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryProposalRequest is the Query/Proposal request type. */ - -export interface QueryProposalRequest { - /** proposal_id is the unique ID of a proposal. */ - proposalId: Long; -} -/** QueryProposalRequest is the Query/Proposal request type. */ - -export interface QueryProposalRequestSDKType { - proposal_id: Long; -} -/** QueryProposalResponse is the Query/Proposal response type. */ - -export interface QueryProposalResponse { - /** proposal is the proposal info. */ - proposal?: Proposal; -} -/** QueryProposalResponse is the Query/Proposal response type. */ - -export interface QueryProposalResponseSDKType { - proposal?: ProposalSDKType; -} -/** QueryProposalsByGroupPolicyRequest is the Query/ProposalByGroupPolicy request type. */ - -export interface QueryProposalsByGroupPolicyRequest { - /** address is the account address of the group policy related to proposals. */ - address: string; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** QueryProposalsByGroupPolicyRequest is the Query/ProposalByGroupPolicy request type. */ - -export interface QueryProposalsByGroupPolicyRequestSDKType { - address: string; - pagination?: PageRequestSDKType; -} -/** QueryProposalsByGroupPolicyResponse is the Query/ProposalByGroupPolicy response type. */ - -export interface QueryProposalsByGroupPolicyResponse { - /** proposals are the proposals with given group policy. */ - proposals: Proposal[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** QueryProposalsByGroupPolicyResponse is the Query/ProposalByGroupPolicy response type. */ - -export interface QueryProposalsByGroupPolicyResponseSDKType { - proposals: ProposalSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryVoteByProposalVoterRequest is the Query/VoteByProposalVoter request type. */ - -export interface QueryVoteByProposalVoterRequest { - /** proposal_id is the unique ID of a proposal. */ - proposalId: Long; - /** voter is a proposal voter account address. */ - - voter: string; -} -/** QueryVoteByProposalVoterRequest is the Query/VoteByProposalVoter request type. */ - -export interface QueryVoteByProposalVoterRequestSDKType { - proposal_id: Long; - voter: string; -} -/** QueryVoteByProposalVoterResponse is the Query/VoteByProposalVoter response type. */ - -export interface QueryVoteByProposalVoterResponse { - /** vote is the vote with given proposal_id and voter. */ - vote?: Vote; -} -/** QueryVoteByProposalVoterResponse is the Query/VoteByProposalVoter response type. */ - -export interface QueryVoteByProposalVoterResponseSDKType { - vote?: VoteSDKType; -} -/** QueryVotesByProposalRequest is the Query/VotesByProposal request type. */ - -export interface QueryVotesByProposalRequest { - /** proposal_id is the unique ID of a proposal. */ - proposalId: Long; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** QueryVotesByProposalRequest is the Query/VotesByProposal request type. */ - -export interface QueryVotesByProposalRequestSDKType { - proposal_id: Long; - pagination?: PageRequestSDKType; -} -/** QueryVotesByProposalResponse is the Query/VotesByProposal response type. */ - -export interface QueryVotesByProposalResponse { - /** votes are the list of votes for given proposal_id. */ - votes: Vote[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** QueryVotesByProposalResponse is the Query/VotesByProposal response type. */ - -export interface QueryVotesByProposalResponseSDKType { - votes: VoteSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryVotesByVoterRequest is the Query/VotesByVoter request type. */ - -export interface QueryVotesByVoterRequest { - /** voter is a proposal voter account address. */ - voter: string; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** QueryVotesByVoterRequest is the Query/VotesByVoter request type. */ - -export interface QueryVotesByVoterRequestSDKType { - voter: string; - pagination?: PageRequestSDKType; -} -/** QueryVotesByVoterResponse is the Query/VotesByVoter response type. */ - -export interface QueryVotesByVoterResponse { - /** votes are the list of votes by given voter. */ - votes: Vote[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** QueryVotesByVoterResponse is the Query/VotesByVoter response type. */ - -export interface QueryVotesByVoterResponseSDKType { - votes: VoteSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryGroupsByMemberRequest is the Query/GroupsByMember request type. */ - -export interface QueryGroupsByMemberRequest { - /** address is the group member address. */ - address: string; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** QueryGroupsByMemberRequest is the Query/GroupsByMember request type. */ - -export interface QueryGroupsByMemberRequestSDKType { - address: string; - pagination?: PageRequestSDKType; -} -/** QueryGroupsByMemberResponse is the Query/GroupsByMember response type. */ - -export interface QueryGroupsByMemberResponse { - /** groups are the groups info with the provided group member. */ - groups: GroupInfo[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** QueryGroupsByMemberResponse is the Query/GroupsByMember response type. */ - -export interface QueryGroupsByMemberResponseSDKType { - groups: GroupInfoSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryTallyResultRequest is the Query/TallyResult request type. */ - -export interface QueryTallyResultRequest { - /** proposal_id is the unique id of a proposal. */ - proposalId: Long; -} -/** QueryTallyResultRequest is the Query/TallyResult request type. */ - -export interface QueryTallyResultRequestSDKType { - proposal_id: Long; -} -/** QueryTallyResultResponse is the Query/TallyResult response type. */ - -export interface QueryTallyResultResponse { - /** tally defines the requested tally. */ - tally?: TallyResult; -} -/** QueryTallyResultResponse is the Query/TallyResult response type. */ - -export interface QueryTallyResultResponseSDKType { - tally?: TallyResultSDKType; -} - -function createBaseQueryGroupInfoRequest(): QueryGroupInfoRequest { - return { - groupId: Long.UZERO - }; -} - -export const QueryGroupInfoRequest = { - encode(message: QueryGroupInfoRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.groupId.isZero()) { - writer.uint32(8).uint64(message.groupId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupInfoRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGroupInfoRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.groupId = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryGroupInfoRequest { - const message = createBaseQueryGroupInfoRequest(); - message.groupId = object.groupId !== undefined && object.groupId !== null ? Long.fromValue(object.groupId) : Long.UZERO; - return message; - } - -}; - -function createBaseQueryGroupInfoResponse(): QueryGroupInfoResponse { - return { - info: undefined - }; -} - -export const QueryGroupInfoResponse = { - encode(message: QueryGroupInfoResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.info !== undefined) { - GroupInfo.encode(message.info, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupInfoResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGroupInfoResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.info = GroupInfo.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryGroupInfoResponse { - const message = createBaseQueryGroupInfoResponse(); - message.info = object.info !== undefined && object.info !== null ? GroupInfo.fromPartial(object.info) : undefined; - return message; - } - -}; - -function createBaseQueryGroupPolicyInfoRequest(): QueryGroupPolicyInfoRequest { - return { - address: "" - }; -} - -export const QueryGroupPolicyInfoRequest = { - encode(message: QueryGroupPolicyInfoRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupPolicyInfoRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGroupPolicyInfoRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryGroupPolicyInfoRequest { - const message = createBaseQueryGroupPolicyInfoRequest(); - message.address = object.address ?? ""; - return message; - } - -}; - -function createBaseQueryGroupPolicyInfoResponse(): QueryGroupPolicyInfoResponse { - return { - info: undefined - }; -} - -export const QueryGroupPolicyInfoResponse = { - encode(message: QueryGroupPolicyInfoResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.info !== undefined) { - GroupPolicyInfo.encode(message.info, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupPolicyInfoResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGroupPolicyInfoResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.info = GroupPolicyInfo.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryGroupPolicyInfoResponse { - const message = createBaseQueryGroupPolicyInfoResponse(); - message.info = object.info !== undefined && object.info !== null ? GroupPolicyInfo.fromPartial(object.info) : undefined; - return message; - } - -}; - -function createBaseQueryGroupMembersRequest(): QueryGroupMembersRequest { - return { - groupId: Long.UZERO, - pagination: undefined - }; -} - -export const QueryGroupMembersRequest = { - encode(message: QueryGroupMembersRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.groupId.isZero()) { - writer.uint32(8).uint64(message.groupId); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupMembersRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGroupMembersRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.groupId = (reader.uint64() as Long); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryGroupMembersRequest { - const message = createBaseQueryGroupMembersRequest(); - message.groupId = object.groupId !== undefined && object.groupId !== null ? Long.fromValue(object.groupId) : Long.UZERO; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryGroupMembersResponse(): QueryGroupMembersResponse { - return { - members: [], - pagination: undefined - }; -} - -export const QueryGroupMembersResponse = { - encode(message: QueryGroupMembersResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.members) { - GroupMember.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupMembersResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGroupMembersResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.members.push(GroupMember.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryGroupMembersResponse { - const message = createBaseQueryGroupMembersResponse(); - message.members = object.members?.map(e => GroupMember.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryGroupsByAdminRequest(): QueryGroupsByAdminRequest { - return { - admin: "", - pagination: undefined - }; -} - -export const QueryGroupsByAdminRequest = { - encode(message: QueryGroupsByAdminRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.admin !== "") { - writer.uint32(10).string(message.admin); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupsByAdminRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGroupsByAdminRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.admin = reader.string(); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryGroupsByAdminRequest { - const message = createBaseQueryGroupsByAdminRequest(); - message.admin = object.admin ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryGroupsByAdminResponse(): QueryGroupsByAdminResponse { - return { - groups: [], - pagination: undefined - }; -} - -export const QueryGroupsByAdminResponse = { - encode(message: QueryGroupsByAdminResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.groups) { - GroupInfo.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupsByAdminResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGroupsByAdminResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.groups.push(GroupInfo.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryGroupsByAdminResponse { - const message = createBaseQueryGroupsByAdminResponse(); - message.groups = object.groups?.map(e => GroupInfo.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryGroupPoliciesByGroupRequest(): QueryGroupPoliciesByGroupRequest { - return { - groupId: Long.UZERO, - pagination: undefined - }; -} - -export const QueryGroupPoliciesByGroupRequest = { - encode(message: QueryGroupPoliciesByGroupRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.groupId.isZero()) { - writer.uint32(8).uint64(message.groupId); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupPoliciesByGroupRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGroupPoliciesByGroupRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.groupId = (reader.uint64() as Long); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryGroupPoliciesByGroupRequest { - const message = createBaseQueryGroupPoliciesByGroupRequest(); - message.groupId = object.groupId !== undefined && object.groupId !== null ? Long.fromValue(object.groupId) : Long.UZERO; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryGroupPoliciesByGroupResponse(): QueryGroupPoliciesByGroupResponse { - return { - groupPolicies: [], - pagination: undefined - }; -} - -export const QueryGroupPoliciesByGroupResponse = { - encode(message: QueryGroupPoliciesByGroupResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.groupPolicies) { - GroupPolicyInfo.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupPoliciesByGroupResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGroupPoliciesByGroupResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.groupPolicies.push(GroupPolicyInfo.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryGroupPoliciesByGroupResponse { - const message = createBaseQueryGroupPoliciesByGroupResponse(); - message.groupPolicies = object.groupPolicies?.map(e => GroupPolicyInfo.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryGroupPoliciesByAdminRequest(): QueryGroupPoliciesByAdminRequest { - return { - admin: "", - pagination: undefined - }; -} - -export const QueryGroupPoliciesByAdminRequest = { - encode(message: QueryGroupPoliciesByAdminRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.admin !== "") { - writer.uint32(10).string(message.admin); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupPoliciesByAdminRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGroupPoliciesByAdminRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.admin = reader.string(); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryGroupPoliciesByAdminRequest { - const message = createBaseQueryGroupPoliciesByAdminRequest(); - message.admin = object.admin ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryGroupPoliciesByAdminResponse(): QueryGroupPoliciesByAdminResponse { - return { - groupPolicies: [], - pagination: undefined - }; -} - -export const QueryGroupPoliciesByAdminResponse = { - encode(message: QueryGroupPoliciesByAdminResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.groupPolicies) { - GroupPolicyInfo.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupPoliciesByAdminResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGroupPoliciesByAdminResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.groupPolicies.push(GroupPolicyInfo.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryGroupPoliciesByAdminResponse { - const message = createBaseQueryGroupPoliciesByAdminResponse(); - message.groupPolicies = object.groupPolicies?.map(e => GroupPolicyInfo.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryProposalRequest(): QueryProposalRequest { - return { - proposalId: Long.UZERO - }; -} - -export const QueryProposalRequest = { - encode(message: QueryProposalRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryProposalRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryProposalRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryProposalRequest { - const message = createBaseQueryProposalRequest(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - return message; - } - -}; - -function createBaseQueryProposalResponse(): QueryProposalResponse { - return { - proposal: undefined - }; -} - -export const QueryProposalResponse = { - encode(message: QueryProposalResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.proposal !== undefined) { - Proposal.encode(message.proposal, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryProposalResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryProposalResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposal = Proposal.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryProposalResponse { - const message = createBaseQueryProposalResponse(); - message.proposal = object.proposal !== undefined && object.proposal !== null ? Proposal.fromPartial(object.proposal) : undefined; - return message; - } - -}; - -function createBaseQueryProposalsByGroupPolicyRequest(): QueryProposalsByGroupPolicyRequest { - return { - address: "", - pagination: undefined - }; -} - -export const QueryProposalsByGroupPolicyRequest = { - encode(message: QueryProposalsByGroupPolicyRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryProposalsByGroupPolicyRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryProposalsByGroupPolicyRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryProposalsByGroupPolicyRequest { - const message = createBaseQueryProposalsByGroupPolicyRequest(); - message.address = object.address ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryProposalsByGroupPolicyResponse(): QueryProposalsByGroupPolicyResponse { - return { - proposals: [], - pagination: undefined - }; -} - -export const QueryProposalsByGroupPolicyResponse = { - encode(message: QueryProposalsByGroupPolicyResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.proposals) { - Proposal.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryProposalsByGroupPolicyResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryProposalsByGroupPolicyResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposals.push(Proposal.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryProposalsByGroupPolicyResponse { - const message = createBaseQueryProposalsByGroupPolicyResponse(); - message.proposals = object.proposals?.map(e => Proposal.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryVoteByProposalVoterRequest(): QueryVoteByProposalVoterRequest { - return { - proposalId: Long.UZERO, - voter: "" - }; -} - -export const QueryVoteByProposalVoterRequest = { - encode(message: QueryVoteByProposalVoterRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.voter !== "") { - writer.uint32(18).string(message.voter); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVoteByProposalVoterRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryVoteByProposalVoterRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.voter = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryVoteByProposalVoterRequest { - const message = createBaseQueryVoteByProposalVoterRequest(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.voter = object.voter ?? ""; - return message; - } - -}; - -function createBaseQueryVoteByProposalVoterResponse(): QueryVoteByProposalVoterResponse { - return { - vote: undefined - }; -} - -export const QueryVoteByProposalVoterResponse = { - encode(message: QueryVoteByProposalVoterResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.vote !== undefined) { - Vote.encode(message.vote, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVoteByProposalVoterResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryVoteByProposalVoterResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.vote = Vote.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryVoteByProposalVoterResponse { - const message = createBaseQueryVoteByProposalVoterResponse(); - message.vote = object.vote !== undefined && object.vote !== null ? Vote.fromPartial(object.vote) : undefined; - return message; - } - -}; - -function createBaseQueryVotesByProposalRequest(): QueryVotesByProposalRequest { - return { - proposalId: Long.UZERO, - pagination: undefined - }; -} - -export const QueryVotesByProposalRequest = { - encode(message: QueryVotesByProposalRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVotesByProposalRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryVotesByProposalRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryVotesByProposalRequest { - const message = createBaseQueryVotesByProposalRequest(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryVotesByProposalResponse(): QueryVotesByProposalResponse { - return { - votes: [], - pagination: undefined - }; -} - -export const QueryVotesByProposalResponse = { - encode(message: QueryVotesByProposalResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.votes) { - Vote.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVotesByProposalResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryVotesByProposalResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.votes.push(Vote.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryVotesByProposalResponse { - const message = createBaseQueryVotesByProposalResponse(); - message.votes = object.votes?.map(e => Vote.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryVotesByVoterRequest(): QueryVotesByVoterRequest { - return { - voter: "", - pagination: undefined - }; -} - -export const QueryVotesByVoterRequest = { - encode(message: QueryVotesByVoterRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.voter !== "") { - writer.uint32(10).string(message.voter); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVotesByVoterRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryVotesByVoterRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.voter = reader.string(); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryVotesByVoterRequest { - const message = createBaseQueryVotesByVoterRequest(); - message.voter = object.voter ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryVotesByVoterResponse(): QueryVotesByVoterResponse { - return { - votes: [], - pagination: undefined - }; -} - -export const QueryVotesByVoterResponse = { - encode(message: QueryVotesByVoterResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.votes) { - Vote.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryVotesByVoterResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryVotesByVoterResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.votes.push(Vote.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryVotesByVoterResponse { - const message = createBaseQueryVotesByVoterResponse(); - message.votes = object.votes?.map(e => Vote.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryGroupsByMemberRequest(): QueryGroupsByMemberRequest { - return { - address: "", - pagination: undefined - }; -} - -export const QueryGroupsByMemberRequest = { - encode(message: QueryGroupsByMemberRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupsByMemberRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGroupsByMemberRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryGroupsByMemberRequest { - const message = createBaseQueryGroupsByMemberRequest(); - message.address = object.address ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryGroupsByMemberResponse(): QueryGroupsByMemberResponse { - return { - groups: [], - pagination: undefined - }; -} - -export const QueryGroupsByMemberResponse = { - encode(message: QueryGroupsByMemberResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.groups) { - GroupInfo.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryGroupsByMemberResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGroupsByMemberResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.groups.push(GroupInfo.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryGroupsByMemberResponse { - const message = createBaseQueryGroupsByMemberResponse(); - message.groups = object.groups?.map(e => GroupInfo.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryTallyResultRequest(): QueryTallyResultRequest { - return { - proposalId: Long.UZERO - }; -} - -export const QueryTallyResultRequest = { - encode(message: QueryTallyResultRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryTallyResultRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryTallyResultRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryTallyResultRequest { - const message = createBaseQueryTallyResultRequest(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - return message; - } - -}; - -function createBaseQueryTallyResultResponse(): QueryTallyResultResponse { - return { - tally: undefined - }; -} - -export const QueryTallyResultResponse = { - encode(message: QueryTallyResultResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.tally !== undefined) { - TallyResult.encode(message.tally, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryTallyResultResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryTallyResultResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.tally = TallyResult.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryTallyResultResponse { - const message = createBaseQueryTallyResultResponse(); - message.tally = object.tally !== undefined && object.tally !== null ? TallyResult.fromPartial(object.tally) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/group/v1/tx.rpc.msg.ts b/packages/codegen/src/cosmos/group/v1/tx.rpc.msg.ts deleted file mode 100644 index b921d00c..00000000 --- a/packages/codegen/src/cosmos/group/v1/tx.rpc.msg.ts +++ /dev/null @@ -1,154 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { MsgCreateGroup, MsgCreateGroupResponse, MsgUpdateGroupMembers, MsgUpdateGroupMembersResponse, MsgUpdateGroupAdmin, MsgUpdateGroupAdminResponse, MsgUpdateGroupMetadata, MsgUpdateGroupMetadataResponse, MsgCreateGroupPolicy, MsgCreateGroupPolicyResponse, MsgCreateGroupWithPolicy, MsgCreateGroupWithPolicyResponse, MsgUpdateGroupPolicyAdmin, MsgUpdateGroupPolicyAdminResponse, MsgUpdateGroupPolicyDecisionPolicy, MsgUpdateGroupPolicyDecisionPolicyResponse, MsgUpdateGroupPolicyMetadata, MsgUpdateGroupPolicyMetadataResponse, MsgSubmitProposal, MsgSubmitProposalResponse, MsgWithdrawProposal, MsgWithdrawProposalResponse, MsgVote, MsgVoteResponse, MsgExec, MsgExecResponse, MsgLeaveGroup, MsgLeaveGroupResponse } from "./tx"; -/** Msg is the cosmos.group.v1 Msg service. */ - -export interface Msg { - /** CreateGroup creates a new group with an admin account address, a list of members and some optional metadata. */ - createGroup(request: MsgCreateGroup): Promise; - /** UpdateGroupMembers updates the group members with given group id and admin address. */ - - updateGroupMembers(request: MsgUpdateGroupMembers): Promise; - /** UpdateGroupAdmin updates the group admin with given group id and previous admin address. */ - - updateGroupAdmin(request: MsgUpdateGroupAdmin): Promise; - /** UpdateGroupMetadata updates the group metadata with given group id and admin address. */ - - updateGroupMetadata(request: MsgUpdateGroupMetadata): Promise; - /** CreateGroupPolicy creates a new group policy using given DecisionPolicy. */ - - createGroupPolicy(request: MsgCreateGroupPolicy): Promise; - /** CreateGroupWithPolicy creates a new group with policy. */ - - createGroupWithPolicy(request: MsgCreateGroupWithPolicy): Promise; - /** UpdateGroupPolicyAdmin updates a group policy admin. */ - - updateGroupPolicyAdmin(request: MsgUpdateGroupPolicyAdmin): Promise; - /** UpdateGroupPolicyDecisionPolicy allows a group policy's decision policy to be updated. */ - - updateGroupPolicyDecisionPolicy(request: MsgUpdateGroupPolicyDecisionPolicy): Promise; - /** UpdateGroupPolicyMetadata updates a group policy metadata. */ - - updateGroupPolicyMetadata(request: MsgUpdateGroupPolicyMetadata): Promise; - /** SubmitProposal submits a new proposal. */ - - submitProposal(request: MsgSubmitProposal): Promise; - /** WithdrawProposal aborts a proposal. */ - - withdrawProposal(request: MsgWithdrawProposal): Promise; - /** Vote allows a voter to vote on a proposal. */ - - vote(request: MsgVote): Promise; - /** Exec executes a proposal. */ - - exec(request: MsgExec): Promise; - /** LeaveGroup allows a group member to leave the group. */ - - leaveGroup(request: MsgLeaveGroup): Promise; -} -export class MsgClientImpl implements Msg { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.createGroup = this.createGroup.bind(this); - this.updateGroupMembers = this.updateGroupMembers.bind(this); - this.updateGroupAdmin = this.updateGroupAdmin.bind(this); - this.updateGroupMetadata = this.updateGroupMetadata.bind(this); - this.createGroupPolicy = this.createGroupPolicy.bind(this); - this.createGroupWithPolicy = this.createGroupWithPolicy.bind(this); - this.updateGroupPolicyAdmin = this.updateGroupPolicyAdmin.bind(this); - this.updateGroupPolicyDecisionPolicy = this.updateGroupPolicyDecisionPolicy.bind(this); - this.updateGroupPolicyMetadata = this.updateGroupPolicyMetadata.bind(this); - this.submitProposal = this.submitProposal.bind(this); - this.withdrawProposal = this.withdrawProposal.bind(this); - this.vote = this.vote.bind(this); - this.exec = this.exec.bind(this); - this.leaveGroup = this.leaveGroup.bind(this); - } - - createGroup(request: MsgCreateGroup): Promise { - const data = MsgCreateGroup.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Msg", "CreateGroup", data); - return promise.then(data => MsgCreateGroupResponse.decode(new _m0.Reader(data))); - } - - updateGroupMembers(request: MsgUpdateGroupMembers): Promise { - const data = MsgUpdateGroupMembers.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Msg", "UpdateGroupMembers", data); - return promise.then(data => MsgUpdateGroupMembersResponse.decode(new _m0.Reader(data))); - } - - updateGroupAdmin(request: MsgUpdateGroupAdmin): Promise { - const data = MsgUpdateGroupAdmin.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Msg", "UpdateGroupAdmin", data); - return promise.then(data => MsgUpdateGroupAdminResponse.decode(new _m0.Reader(data))); - } - - updateGroupMetadata(request: MsgUpdateGroupMetadata): Promise { - const data = MsgUpdateGroupMetadata.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Msg", "UpdateGroupMetadata", data); - return promise.then(data => MsgUpdateGroupMetadataResponse.decode(new _m0.Reader(data))); - } - - createGroupPolicy(request: MsgCreateGroupPolicy): Promise { - const data = MsgCreateGroupPolicy.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Msg", "CreateGroupPolicy", data); - return promise.then(data => MsgCreateGroupPolicyResponse.decode(new _m0.Reader(data))); - } - - createGroupWithPolicy(request: MsgCreateGroupWithPolicy): Promise { - const data = MsgCreateGroupWithPolicy.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Msg", "CreateGroupWithPolicy", data); - return promise.then(data => MsgCreateGroupWithPolicyResponse.decode(new _m0.Reader(data))); - } - - updateGroupPolicyAdmin(request: MsgUpdateGroupPolicyAdmin): Promise { - const data = MsgUpdateGroupPolicyAdmin.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Msg", "UpdateGroupPolicyAdmin", data); - return promise.then(data => MsgUpdateGroupPolicyAdminResponse.decode(new _m0.Reader(data))); - } - - updateGroupPolicyDecisionPolicy(request: MsgUpdateGroupPolicyDecisionPolicy): Promise { - const data = MsgUpdateGroupPolicyDecisionPolicy.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Msg", "UpdateGroupPolicyDecisionPolicy", data); - return promise.then(data => MsgUpdateGroupPolicyDecisionPolicyResponse.decode(new _m0.Reader(data))); - } - - updateGroupPolicyMetadata(request: MsgUpdateGroupPolicyMetadata): Promise { - const data = MsgUpdateGroupPolicyMetadata.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Msg", "UpdateGroupPolicyMetadata", data); - return promise.then(data => MsgUpdateGroupPolicyMetadataResponse.decode(new _m0.Reader(data))); - } - - submitProposal(request: MsgSubmitProposal): Promise { - const data = MsgSubmitProposal.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Msg", "SubmitProposal", data); - return promise.then(data => MsgSubmitProposalResponse.decode(new _m0.Reader(data))); - } - - withdrawProposal(request: MsgWithdrawProposal): Promise { - const data = MsgWithdrawProposal.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Msg", "WithdrawProposal", data); - return promise.then(data => MsgWithdrawProposalResponse.decode(new _m0.Reader(data))); - } - - vote(request: MsgVote): Promise { - const data = MsgVote.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Msg", "Vote", data); - return promise.then(data => MsgVoteResponse.decode(new _m0.Reader(data))); - } - - exec(request: MsgExec): Promise { - const data = MsgExec.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Msg", "Exec", data); - return promise.then(data => MsgExecResponse.decode(new _m0.Reader(data))); - } - - leaveGroup(request: MsgLeaveGroup): Promise { - const data = MsgLeaveGroup.encode(request).finish(); - const promise = this.rpc.request("cosmos.group.v1.Msg", "LeaveGroup", data); - return promise.then(data => MsgLeaveGroupResponse.decode(new _m0.Reader(data))); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/group/v1/tx.ts b/packages/codegen/src/cosmos/group/v1/tx.ts deleted file mode 100644 index f37265df..00000000 --- a/packages/codegen/src/cosmos/group/v1/tx.ts +++ /dev/null @@ -1,1949 +0,0 @@ -import { Member, MemberSDKType, VoteOption } from "./types"; -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** Exec defines modes of execution of a proposal on creation or on new vote. */ - -export enum Exec { - /** - * EXEC_UNSPECIFIED - An empty value means that there should be a separate - * MsgExec request for the proposal to execute. - */ - EXEC_UNSPECIFIED = 0, - - /** - * EXEC_TRY - 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, - UNRECOGNIZED = -1, -} -export const ExecSDKType = Exec; -export function execFromJSON(object: any): Exec { - switch (object) { - case 0: - case "EXEC_UNSPECIFIED": - return Exec.EXEC_UNSPECIFIED; - - case 1: - case "EXEC_TRY": - return Exec.EXEC_TRY; - - case -1: - case "UNRECOGNIZED": - default: - return Exec.UNRECOGNIZED; - } -} -export function execToJSON(object: Exec): string { - switch (object) { - case Exec.EXEC_UNSPECIFIED: - return "EXEC_UNSPECIFIED"; - - case Exec.EXEC_TRY: - return "EXEC_TRY"; - - case Exec.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** MsgCreateGroup is the Msg/CreateGroup request type. */ - -export interface MsgCreateGroup { - /** admin is the account address of the group admin. */ - admin: string; - /** members defines the group members. */ - - members: Member[]; - /** metadata is any arbitrary metadata to attached to the group. */ - - metadata: string; -} -/** MsgCreateGroup is the Msg/CreateGroup request type. */ - -export interface MsgCreateGroupSDKType { - admin: string; - members: MemberSDKType[]; - metadata: string; -} -/** MsgCreateGroupResponse is the Msg/CreateGroup response type. */ - -export interface MsgCreateGroupResponse { - /** group_id is the unique ID of the newly created group. */ - groupId: Long; -} -/** MsgCreateGroupResponse is the Msg/CreateGroup response type. */ - -export interface MsgCreateGroupResponseSDKType { - group_id: Long; -} -/** MsgUpdateGroupMembers is the Msg/UpdateGroupMembers request type. */ - -export interface MsgUpdateGroupMembers { - /** admin is the account address of the group admin. */ - admin: string; - /** group_id is the unique ID of the group. */ - - groupId: Long; - /** - * member_updates is the list of members to update, - * set weight to 0 to remove a member. - */ - - memberUpdates: Member[]; -} -/** MsgUpdateGroupMembers is the Msg/UpdateGroupMembers request type. */ - -export interface MsgUpdateGroupMembersSDKType { - admin: string; - group_id: Long; - member_updates: MemberSDKType[]; -} -/** MsgUpdateGroupMembersResponse is the Msg/UpdateGroupMembers response type. */ - -export interface MsgUpdateGroupMembersResponse {} -/** MsgUpdateGroupMembersResponse is the Msg/UpdateGroupMembers response type. */ - -export interface MsgUpdateGroupMembersResponseSDKType {} -/** MsgUpdateGroupAdmin is the Msg/UpdateGroupAdmin request type. */ - -export interface MsgUpdateGroupAdmin { - /** admin is the current account address of the group admin. */ - admin: string; - /** group_id is the unique ID of the group. */ - - groupId: Long; - /** new_admin is the group new admin account address. */ - - newAdmin: string; -} -/** MsgUpdateGroupAdmin is the Msg/UpdateGroupAdmin request type. */ - -export interface MsgUpdateGroupAdminSDKType { - admin: string; - group_id: Long; - new_admin: string; -} -/** MsgUpdateGroupAdminResponse is the Msg/UpdateGroupAdmin response type. */ - -export interface MsgUpdateGroupAdminResponse {} -/** MsgUpdateGroupAdminResponse is the Msg/UpdateGroupAdmin response type. */ - -export interface MsgUpdateGroupAdminResponseSDKType {} -/** MsgUpdateGroupMetadata is the Msg/UpdateGroupMetadata request type. */ - -export interface MsgUpdateGroupMetadata { - /** admin is the account address of the group admin. */ - admin: string; - /** group_id is the unique ID of the group. */ - - groupId: Long; - /** metadata is the updated group's metadata. */ - - metadata: string; -} -/** MsgUpdateGroupMetadata is the Msg/UpdateGroupMetadata request type. */ - -export interface MsgUpdateGroupMetadataSDKType { - admin: string; - group_id: Long; - metadata: string; -} -/** MsgUpdateGroupMetadataResponse is the Msg/UpdateGroupMetadata response type. */ - -export interface MsgUpdateGroupMetadataResponse {} -/** MsgUpdateGroupMetadataResponse is the Msg/UpdateGroupMetadata response type. */ - -export interface MsgUpdateGroupMetadataResponseSDKType {} -/** MsgCreateGroupPolicy is the Msg/CreateGroupPolicy request type. */ - -export interface MsgCreateGroupPolicy { - /** admin is the account address of the group admin. */ - admin: string; - /** group_id is the unique ID of the group. */ - - groupId: Long; - /** metadata is any arbitrary metadata attached to the group policy. */ - - metadata: string; - /** decision_policy specifies the group policy's decision policy. */ - - decisionPolicy?: Any; -} -/** MsgCreateGroupPolicy is the Msg/CreateGroupPolicy request type. */ - -export interface MsgCreateGroupPolicySDKType { - admin: string; - group_id: Long; - metadata: string; - decision_policy?: AnySDKType; -} -/** MsgCreateGroupPolicyResponse is the Msg/CreateGroupPolicy response type. */ - -export interface MsgCreateGroupPolicyResponse { - /** address is the account address of the newly created group policy. */ - address: string; -} -/** MsgCreateGroupPolicyResponse is the Msg/CreateGroupPolicy response type. */ - -export interface MsgCreateGroupPolicyResponseSDKType { - address: string; -} -/** MsgUpdateGroupPolicyAdmin is the Msg/UpdateGroupPolicyAdmin request type. */ - -export interface MsgUpdateGroupPolicyAdmin { - /** admin is the account address of the group admin. */ - admin: string; - /** address is the account address of the group policy. */ - - address: string; - /** new_admin is the new group policy admin. */ - - newAdmin: string; -} -/** MsgUpdateGroupPolicyAdmin is the Msg/UpdateGroupPolicyAdmin request type. */ - -export interface MsgUpdateGroupPolicyAdminSDKType { - admin: string; - address: string; - new_admin: string; -} -/** MsgCreateGroupWithPolicy is the Msg/CreateGroupWithPolicy request type. */ - -export interface MsgCreateGroupWithPolicy { - /** admin is the account address of the group and group policy admin. */ - admin: string; - /** members defines the group members. */ - - members: Member[]; - /** group_metadata is any arbitrary metadata attached to the group. */ - - groupMetadata: string; - /** group_policy_metadata is any arbitrary metadata attached to the group policy. */ - - groupPolicyMetadata: string; - /** 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. */ - - groupPolicyAsAdmin: boolean; - /** decision_policy specifies the group policy's decision policy. */ - - decisionPolicy?: Any; -} -/** MsgCreateGroupWithPolicy is the Msg/CreateGroupWithPolicy request type. */ - -export interface MsgCreateGroupWithPolicySDKType { - admin: string; - members: MemberSDKType[]; - group_metadata: string; - group_policy_metadata: string; - group_policy_as_admin: boolean; - decision_policy?: AnySDKType; -} -/** MsgCreateGroupWithPolicyResponse is the Msg/CreateGroupWithPolicy response type. */ - -export interface MsgCreateGroupWithPolicyResponse { - /** group_id is the unique ID of the newly created group with policy. */ - groupId: Long; - /** group_policy_address is the account address of the newly created group policy. */ - - groupPolicyAddress: string; -} -/** MsgCreateGroupWithPolicyResponse is the Msg/CreateGroupWithPolicy response type. */ - -export interface MsgCreateGroupWithPolicyResponseSDKType { - group_id: Long; - group_policy_address: string; -} -/** MsgUpdateGroupPolicyAdminResponse is the Msg/UpdateGroupPolicyAdmin response type. */ - -export interface MsgUpdateGroupPolicyAdminResponse {} -/** MsgUpdateGroupPolicyAdminResponse is the Msg/UpdateGroupPolicyAdmin response type. */ - -export interface MsgUpdateGroupPolicyAdminResponseSDKType {} -/** MsgUpdateGroupPolicyDecisionPolicy is the Msg/UpdateGroupPolicyDecisionPolicy request type. */ - -export interface MsgUpdateGroupPolicyDecisionPolicy { - /** admin is the account address of the group admin. */ - admin: string; - /** address is the account address of group policy. */ - - address: string; - /** decision_policy is the updated group policy's decision policy. */ - - decisionPolicy?: Any; -} -/** MsgUpdateGroupPolicyDecisionPolicy is the Msg/UpdateGroupPolicyDecisionPolicy request type. */ - -export interface MsgUpdateGroupPolicyDecisionPolicySDKType { - admin: string; - address: string; - decision_policy?: AnySDKType; -} -/** MsgUpdateGroupPolicyDecisionPolicyResponse is the Msg/UpdateGroupPolicyDecisionPolicy response type. */ - -export interface MsgUpdateGroupPolicyDecisionPolicyResponse {} -/** MsgUpdateGroupPolicyDecisionPolicyResponse is the Msg/UpdateGroupPolicyDecisionPolicy response type. */ - -export interface MsgUpdateGroupPolicyDecisionPolicyResponseSDKType {} -/** MsgUpdateGroupPolicyMetadata is the Msg/UpdateGroupPolicyMetadata request type. */ - -export interface MsgUpdateGroupPolicyMetadata { - /** admin is the account address of the group admin. */ - admin: string; - /** address is the account address of group policy. */ - - address: string; - /** metadata is the updated group policy metadata. */ - - metadata: string; -} -/** MsgUpdateGroupPolicyMetadata is the Msg/UpdateGroupPolicyMetadata request type. */ - -export interface MsgUpdateGroupPolicyMetadataSDKType { - admin: string; - address: string; - metadata: string; -} -/** MsgUpdateGroupPolicyMetadataResponse is the Msg/UpdateGroupPolicyMetadata response type. */ - -export interface MsgUpdateGroupPolicyMetadataResponse {} -/** MsgUpdateGroupPolicyMetadataResponse is the Msg/UpdateGroupPolicyMetadata response type. */ - -export interface MsgUpdateGroupPolicyMetadataResponseSDKType {} -/** MsgSubmitProposal is the Msg/SubmitProposal request type. */ - -export interface MsgSubmitProposal { - /** address is the account address of group policy. */ - address: string; - /** - * proposers are the account addresses of the proposers. - * Proposers signatures will be counted as yes votes. - */ - - proposers: string[]; - /** metadata is any arbitrary metadata to attached to the proposal. */ - - metadata: string; - /** messages is a list of `sdk.Msg`s that will be executed if the proposal passes. */ - - messages: Any[]; - /** - * 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; -} -/** MsgSubmitProposal is the Msg/SubmitProposal request type. */ - -export interface MsgSubmitProposalSDKType { - address: string; - proposers: string[]; - metadata: string; - messages: AnySDKType[]; - exec: Exec; -} -/** MsgSubmitProposalResponse is the Msg/SubmitProposal response type. */ - -export interface MsgSubmitProposalResponse { - /** proposal is the unique ID of the proposal. */ - proposalId: Long; -} -/** MsgSubmitProposalResponse is the Msg/SubmitProposal response type. */ - -export interface MsgSubmitProposalResponseSDKType { - proposal_id: Long; -} -/** MsgWithdrawProposal is the Msg/WithdrawProposal request type. */ - -export interface MsgWithdrawProposal { - /** proposal is the unique ID of the proposal. */ - proposalId: Long; - /** address is the admin of the group policy or one of the proposer of the proposal. */ - - address: string; -} -/** MsgWithdrawProposal is the Msg/WithdrawProposal request type. */ - -export interface MsgWithdrawProposalSDKType { - proposal_id: Long; - address: string; -} -/** MsgWithdrawProposalResponse is the Msg/WithdrawProposal response type. */ - -export interface MsgWithdrawProposalResponse {} -/** MsgWithdrawProposalResponse is the Msg/WithdrawProposal response type. */ - -export interface MsgWithdrawProposalResponseSDKType {} -/** MsgVote is the Msg/Vote request type. */ - -export interface MsgVote { - /** proposal is the unique ID of the proposal. */ - proposalId: Long; - /** voter is the voter account address. */ - - voter: string; - /** option is the voter's choice on the proposal. */ - - option: VoteOption; - /** metadata is any arbitrary metadata to attached to the vote. */ - - metadata: string; - /** - * exec defines whether the proposal should be executed - * immediately after voting or not. - */ - - exec: Exec; -} -/** MsgVote is the Msg/Vote request type. */ - -export interface MsgVoteSDKType { - proposal_id: Long; - voter: string; - option: VoteOption; - metadata: string; - exec: Exec; -} -/** MsgVoteResponse is the Msg/Vote response type. */ - -export interface MsgVoteResponse {} -/** MsgVoteResponse is the Msg/Vote response type. */ - -export interface MsgVoteResponseSDKType {} -/** MsgExec is the Msg/Exec request type. */ - -export interface MsgExec { - /** proposal is the unique ID of the proposal. */ - proposalId: Long; - /** signer is the account address used to execute the proposal. */ - - signer: string; -} -/** MsgExec is the Msg/Exec request type. */ - -export interface MsgExecSDKType { - proposal_id: Long; - signer: string; -} -/** MsgExecResponse is the Msg/Exec request type. */ - -export interface MsgExecResponse {} -/** MsgExecResponse is the Msg/Exec request type. */ - -export interface MsgExecResponseSDKType {} -/** MsgLeaveGroup is the Msg/LeaveGroup request type. */ - -export interface MsgLeaveGroup { - /** address is the account address of the group member. */ - address: string; - /** group_id is the unique ID of the group. */ - - groupId: Long; -} -/** MsgLeaveGroup is the Msg/LeaveGroup request type. */ - -export interface MsgLeaveGroupSDKType { - address: string; - group_id: Long; -} -/** MsgLeaveGroupResponse is the Msg/LeaveGroup response type. */ - -export interface MsgLeaveGroupResponse {} -/** MsgLeaveGroupResponse is the Msg/LeaveGroup response type. */ - -export interface MsgLeaveGroupResponseSDKType {} - -function createBaseMsgCreateGroup(): MsgCreateGroup { - return { - admin: "", - members: [], - metadata: "" - }; -} - -export const MsgCreateGroup = { - encode(message: MsgCreateGroup, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.admin !== "") { - writer.uint32(10).string(message.admin); - } - - for (const v of message.members) { - Member.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - if (message.metadata !== "") { - writer.uint32(26).string(message.metadata); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateGroup { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgCreateGroup(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.admin = reader.string(); - break; - - case 2: - message.members.push(Member.decode(reader, reader.uint32())); - break; - - case 3: - message.metadata = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgCreateGroup { - const message = createBaseMsgCreateGroup(); - message.admin = object.admin ?? ""; - message.members = object.members?.map(e => Member.fromPartial(e)) || []; - message.metadata = object.metadata ?? ""; - return message; - } - -}; - -function createBaseMsgCreateGroupResponse(): MsgCreateGroupResponse { - return { - groupId: Long.UZERO - }; -} - -export const MsgCreateGroupResponse = { - encode(message: MsgCreateGroupResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.groupId.isZero()) { - writer.uint32(8).uint64(message.groupId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateGroupResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgCreateGroupResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.groupId = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgCreateGroupResponse { - const message = createBaseMsgCreateGroupResponse(); - message.groupId = object.groupId !== undefined && object.groupId !== null ? Long.fromValue(object.groupId) : Long.UZERO; - return message; - } - -}; - -function createBaseMsgUpdateGroupMembers(): MsgUpdateGroupMembers { - return { - admin: "", - groupId: Long.UZERO, - memberUpdates: [] - }; -} - -export const MsgUpdateGroupMembers = { - encode(message: MsgUpdateGroupMembers, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.admin !== "") { - writer.uint32(10).string(message.admin); - } - - if (!message.groupId.isZero()) { - writer.uint32(16).uint64(message.groupId); - } - - for (const v of message.memberUpdates) { - Member.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateGroupMembers { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateGroupMembers(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.admin = reader.string(); - break; - - case 2: - message.groupId = (reader.uint64() as Long); - break; - - case 3: - message.memberUpdates.push(Member.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgUpdateGroupMembers { - const message = createBaseMsgUpdateGroupMembers(); - message.admin = object.admin ?? ""; - message.groupId = object.groupId !== undefined && object.groupId !== null ? Long.fromValue(object.groupId) : Long.UZERO; - message.memberUpdates = object.memberUpdates?.map(e => Member.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseMsgUpdateGroupMembersResponse(): MsgUpdateGroupMembersResponse { - return {}; -} - -export const MsgUpdateGroupMembersResponse = { - encode(_: MsgUpdateGroupMembersResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateGroupMembersResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateGroupMembersResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgUpdateGroupMembersResponse { - const message = createBaseMsgUpdateGroupMembersResponse(); - return message; - } - -}; - -function createBaseMsgUpdateGroupAdmin(): MsgUpdateGroupAdmin { - return { - admin: "", - groupId: Long.UZERO, - newAdmin: "" - }; -} - -export const MsgUpdateGroupAdmin = { - encode(message: MsgUpdateGroupAdmin, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.admin !== "") { - writer.uint32(10).string(message.admin); - } - - if (!message.groupId.isZero()) { - writer.uint32(16).uint64(message.groupId); - } - - if (message.newAdmin !== "") { - writer.uint32(26).string(message.newAdmin); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateGroupAdmin { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateGroupAdmin(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.admin = reader.string(); - break; - - case 2: - message.groupId = (reader.uint64() as Long); - break; - - case 3: - message.newAdmin = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgUpdateGroupAdmin { - const message = createBaseMsgUpdateGroupAdmin(); - message.admin = object.admin ?? ""; - message.groupId = object.groupId !== undefined && object.groupId !== null ? Long.fromValue(object.groupId) : Long.UZERO; - message.newAdmin = object.newAdmin ?? ""; - return message; - } - -}; - -function createBaseMsgUpdateGroupAdminResponse(): MsgUpdateGroupAdminResponse { - return {}; -} - -export const MsgUpdateGroupAdminResponse = { - encode(_: MsgUpdateGroupAdminResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateGroupAdminResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateGroupAdminResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgUpdateGroupAdminResponse { - const message = createBaseMsgUpdateGroupAdminResponse(); - return message; - } - -}; - -function createBaseMsgUpdateGroupMetadata(): MsgUpdateGroupMetadata { - return { - admin: "", - groupId: Long.UZERO, - metadata: "" - }; -} - -export const MsgUpdateGroupMetadata = { - encode(message: MsgUpdateGroupMetadata, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.admin !== "") { - writer.uint32(10).string(message.admin); - } - - if (!message.groupId.isZero()) { - writer.uint32(16).uint64(message.groupId); - } - - if (message.metadata !== "") { - writer.uint32(26).string(message.metadata); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateGroupMetadata { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateGroupMetadata(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.admin = reader.string(); - break; - - case 2: - message.groupId = (reader.uint64() as Long); - break; - - case 3: - message.metadata = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgUpdateGroupMetadata { - const message = createBaseMsgUpdateGroupMetadata(); - message.admin = object.admin ?? ""; - message.groupId = object.groupId !== undefined && object.groupId !== null ? Long.fromValue(object.groupId) : Long.UZERO; - message.metadata = object.metadata ?? ""; - return message; - } - -}; - -function createBaseMsgUpdateGroupMetadataResponse(): MsgUpdateGroupMetadataResponse { - return {}; -} - -export const MsgUpdateGroupMetadataResponse = { - encode(_: MsgUpdateGroupMetadataResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateGroupMetadataResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateGroupMetadataResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgUpdateGroupMetadataResponse { - const message = createBaseMsgUpdateGroupMetadataResponse(); - return message; - } - -}; - -function createBaseMsgCreateGroupPolicy(): MsgCreateGroupPolicy { - return { - admin: "", - groupId: Long.UZERO, - metadata: "", - decisionPolicy: undefined - }; -} - -export const MsgCreateGroupPolicy = { - encode(message: MsgCreateGroupPolicy, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.admin !== "") { - writer.uint32(10).string(message.admin); - } - - if (!message.groupId.isZero()) { - writer.uint32(16).uint64(message.groupId); - } - - if (message.metadata !== "") { - writer.uint32(26).string(message.metadata); - } - - if (message.decisionPolicy !== undefined) { - Any.encode(message.decisionPolicy, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateGroupPolicy { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgCreateGroupPolicy(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.admin = reader.string(); - break; - - case 2: - message.groupId = (reader.uint64() as Long); - break; - - case 3: - message.metadata = reader.string(); - break; - - case 4: - message.decisionPolicy = Any.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgCreateGroupPolicy { - const message = createBaseMsgCreateGroupPolicy(); - message.admin = object.admin ?? ""; - message.groupId = object.groupId !== undefined && object.groupId !== null ? Long.fromValue(object.groupId) : Long.UZERO; - message.metadata = object.metadata ?? ""; - message.decisionPolicy = object.decisionPolicy !== undefined && object.decisionPolicy !== null ? Any.fromPartial(object.decisionPolicy) : undefined; - return message; - } - -}; - -function createBaseMsgCreateGroupPolicyResponse(): MsgCreateGroupPolicyResponse { - return { - address: "" - }; -} - -export const MsgCreateGroupPolicyResponse = { - encode(message: MsgCreateGroupPolicyResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateGroupPolicyResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgCreateGroupPolicyResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgCreateGroupPolicyResponse { - const message = createBaseMsgCreateGroupPolicyResponse(); - message.address = object.address ?? ""; - return message; - } - -}; - -function createBaseMsgUpdateGroupPolicyAdmin(): MsgUpdateGroupPolicyAdmin { - return { - admin: "", - address: "", - newAdmin: "" - }; -} - -export const MsgUpdateGroupPolicyAdmin = { - encode(message: MsgUpdateGroupPolicyAdmin, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.admin !== "") { - writer.uint32(10).string(message.admin); - } - - if (message.address !== "") { - writer.uint32(18).string(message.address); - } - - if (message.newAdmin !== "") { - writer.uint32(26).string(message.newAdmin); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateGroupPolicyAdmin { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateGroupPolicyAdmin(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.admin = reader.string(); - break; - - case 2: - message.address = reader.string(); - break; - - case 3: - message.newAdmin = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgUpdateGroupPolicyAdmin { - const message = createBaseMsgUpdateGroupPolicyAdmin(); - message.admin = object.admin ?? ""; - message.address = object.address ?? ""; - message.newAdmin = object.newAdmin ?? ""; - return message; - } - -}; - -function createBaseMsgCreateGroupWithPolicy(): MsgCreateGroupWithPolicy { - return { - admin: "", - members: [], - groupMetadata: "", - groupPolicyMetadata: "", - groupPolicyAsAdmin: false, - decisionPolicy: undefined - }; -} - -export const MsgCreateGroupWithPolicy = { - encode(message: MsgCreateGroupWithPolicy, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.admin !== "") { - writer.uint32(10).string(message.admin); - } - - for (const v of message.members) { - Member.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - if (message.groupMetadata !== "") { - writer.uint32(26).string(message.groupMetadata); - } - - if (message.groupPolicyMetadata !== "") { - writer.uint32(34).string(message.groupPolicyMetadata); - } - - if (message.groupPolicyAsAdmin === true) { - writer.uint32(40).bool(message.groupPolicyAsAdmin); - } - - if (message.decisionPolicy !== undefined) { - Any.encode(message.decisionPolicy, writer.uint32(50).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateGroupWithPolicy { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgCreateGroupWithPolicy(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.admin = reader.string(); - break; - - case 2: - message.members.push(Member.decode(reader, reader.uint32())); - break; - - case 3: - message.groupMetadata = reader.string(); - break; - - case 4: - message.groupPolicyMetadata = reader.string(); - break; - - case 5: - message.groupPolicyAsAdmin = reader.bool(); - break; - - case 6: - message.decisionPolicy = Any.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgCreateGroupWithPolicy { - const message = createBaseMsgCreateGroupWithPolicy(); - message.admin = object.admin ?? ""; - message.members = object.members?.map(e => Member.fromPartial(e)) || []; - message.groupMetadata = object.groupMetadata ?? ""; - message.groupPolicyMetadata = object.groupPolicyMetadata ?? ""; - message.groupPolicyAsAdmin = object.groupPolicyAsAdmin ?? false; - message.decisionPolicy = object.decisionPolicy !== undefined && object.decisionPolicy !== null ? Any.fromPartial(object.decisionPolicy) : undefined; - return message; - } - -}; - -function createBaseMsgCreateGroupWithPolicyResponse(): MsgCreateGroupWithPolicyResponse { - return { - groupId: Long.UZERO, - groupPolicyAddress: "" - }; -} - -export const MsgCreateGroupWithPolicyResponse = { - encode(message: MsgCreateGroupWithPolicyResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.groupId.isZero()) { - writer.uint32(8).uint64(message.groupId); - } - - if (message.groupPolicyAddress !== "") { - writer.uint32(18).string(message.groupPolicyAddress); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateGroupWithPolicyResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgCreateGroupWithPolicyResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.groupId = (reader.uint64() as Long); - break; - - case 2: - message.groupPolicyAddress = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgCreateGroupWithPolicyResponse { - const message = createBaseMsgCreateGroupWithPolicyResponse(); - message.groupId = object.groupId !== undefined && object.groupId !== null ? Long.fromValue(object.groupId) : Long.UZERO; - message.groupPolicyAddress = object.groupPolicyAddress ?? ""; - return message; - } - -}; - -function createBaseMsgUpdateGroupPolicyAdminResponse(): MsgUpdateGroupPolicyAdminResponse { - return {}; -} - -export const MsgUpdateGroupPolicyAdminResponse = { - encode(_: MsgUpdateGroupPolicyAdminResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateGroupPolicyAdminResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateGroupPolicyAdminResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgUpdateGroupPolicyAdminResponse { - const message = createBaseMsgUpdateGroupPolicyAdminResponse(); - return message; - } - -}; - -function createBaseMsgUpdateGroupPolicyDecisionPolicy(): MsgUpdateGroupPolicyDecisionPolicy { - return { - admin: "", - address: "", - decisionPolicy: undefined - }; -} - -export const MsgUpdateGroupPolicyDecisionPolicy = { - encode(message: MsgUpdateGroupPolicyDecisionPolicy, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.admin !== "") { - writer.uint32(10).string(message.admin); - } - - if (message.address !== "") { - writer.uint32(18).string(message.address); - } - - if (message.decisionPolicy !== undefined) { - Any.encode(message.decisionPolicy, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateGroupPolicyDecisionPolicy { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateGroupPolicyDecisionPolicy(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.admin = reader.string(); - break; - - case 2: - message.address = reader.string(); - break; - - case 3: - message.decisionPolicy = Any.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgUpdateGroupPolicyDecisionPolicy { - const message = createBaseMsgUpdateGroupPolicyDecisionPolicy(); - message.admin = object.admin ?? ""; - message.address = object.address ?? ""; - message.decisionPolicy = object.decisionPolicy !== undefined && object.decisionPolicy !== null ? Any.fromPartial(object.decisionPolicy) : undefined; - return message; - } - -}; - -function createBaseMsgUpdateGroupPolicyDecisionPolicyResponse(): MsgUpdateGroupPolicyDecisionPolicyResponse { - return {}; -} - -export const MsgUpdateGroupPolicyDecisionPolicyResponse = { - encode(_: MsgUpdateGroupPolicyDecisionPolicyResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateGroupPolicyDecisionPolicyResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateGroupPolicyDecisionPolicyResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgUpdateGroupPolicyDecisionPolicyResponse { - const message = createBaseMsgUpdateGroupPolicyDecisionPolicyResponse(); - return message; - } - -}; - -function createBaseMsgUpdateGroupPolicyMetadata(): MsgUpdateGroupPolicyMetadata { - return { - admin: "", - address: "", - metadata: "" - }; -} - -export const MsgUpdateGroupPolicyMetadata = { - encode(message: MsgUpdateGroupPolicyMetadata, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.admin !== "") { - writer.uint32(10).string(message.admin); - } - - if (message.address !== "") { - writer.uint32(18).string(message.address); - } - - if (message.metadata !== "") { - writer.uint32(26).string(message.metadata); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateGroupPolicyMetadata { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateGroupPolicyMetadata(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.admin = reader.string(); - break; - - case 2: - message.address = reader.string(); - break; - - case 3: - message.metadata = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgUpdateGroupPolicyMetadata { - const message = createBaseMsgUpdateGroupPolicyMetadata(); - message.admin = object.admin ?? ""; - message.address = object.address ?? ""; - message.metadata = object.metadata ?? ""; - return message; - } - -}; - -function createBaseMsgUpdateGroupPolicyMetadataResponse(): MsgUpdateGroupPolicyMetadataResponse { - return {}; -} - -export const MsgUpdateGroupPolicyMetadataResponse = { - encode(_: MsgUpdateGroupPolicyMetadataResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateGroupPolicyMetadataResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateGroupPolicyMetadataResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgUpdateGroupPolicyMetadataResponse { - const message = createBaseMsgUpdateGroupPolicyMetadataResponse(); - return message; - } - -}; - -function createBaseMsgSubmitProposal(): MsgSubmitProposal { - return { - address: "", - proposers: [], - metadata: "", - messages: [], - exec: 0 - }; -} - -export const MsgSubmitProposal = { - encode(message: MsgSubmitProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - for (const v of message.proposers) { - writer.uint32(18).string(v!); - } - - if (message.metadata !== "") { - writer.uint32(26).string(message.metadata); - } - - for (const v of message.messages) { - Any.encode(v!, writer.uint32(34).fork()).ldelim(); - } - - if (message.exec !== 0) { - writer.uint32(40).int32(message.exec); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSubmitProposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgSubmitProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.proposers.push(reader.string()); - break; - - case 3: - message.metadata = reader.string(); - break; - - case 4: - message.messages.push(Any.decode(reader, reader.uint32())); - break; - - case 5: - message.exec = (reader.int32() as any); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgSubmitProposal { - const message = createBaseMsgSubmitProposal(); - message.address = object.address ?? ""; - message.proposers = object.proposers?.map(e => e) || []; - message.metadata = object.metadata ?? ""; - message.messages = object.messages?.map(e => Any.fromPartial(e)) || []; - message.exec = object.exec ?? 0; - return message; - } - -}; - -function createBaseMsgSubmitProposalResponse(): MsgSubmitProposalResponse { - return { - proposalId: Long.UZERO - }; -} - -export const MsgSubmitProposalResponse = { - encode(message: MsgSubmitProposalResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSubmitProposalResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgSubmitProposalResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgSubmitProposalResponse { - const message = createBaseMsgSubmitProposalResponse(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - return message; - } - -}; - -function createBaseMsgWithdrawProposal(): MsgWithdrawProposal { - return { - proposalId: Long.UZERO, - address: "" - }; -} - -export const MsgWithdrawProposal = { - encode(message: MsgWithdrawProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.address !== "") { - writer.uint32(18).string(message.address); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgWithdrawProposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgWithdrawProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.address = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgWithdrawProposal { - const message = createBaseMsgWithdrawProposal(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.address = object.address ?? ""; - return message; - } - -}; - -function createBaseMsgWithdrawProposalResponse(): MsgWithdrawProposalResponse { - return {}; -} - -export const MsgWithdrawProposalResponse = { - encode(_: MsgWithdrawProposalResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgWithdrawProposalResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgWithdrawProposalResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgWithdrawProposalResponse { - const message = createBaseMsgWithdrawProposalResponse(); - return message; - } - -}; - -function createBaseMsgVote(): MsgVote { - return { - proposalId: Long.UZERO, - voter: "", - option: 0, - metadata: "", - exec: 0 - }; -} - -export const MsgVote = { - encode(message: MsgVote, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.voter !== "") { - writer.uint32(18).string(message.voter); - } - - if (message.option !== 0) { - writer.uint32(24).int32(message.option); - } - - if (message.metadata !== "") { - writer.uint32(34).string(message.metadata); - } - - if (message.exec !== 0) { - writer.uint32(40).int32(message.exec); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgVote { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgVote(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.voter = reader.string(); - break; - - case 3: - message.option = (reader.int32() as any); - break; - - case 4: - message.metadata = reader.string(); - break; - - case 5: - message.exec = (reader.int32() as any); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgVote { - const message = createBaseMsgVote(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.voter = object.voter ?? ""; - message.option = object.option ?? 0; - message.metadata = object.metadata ?? ""; - message.exec = object.exec ?? 0; - return message; - } - -}; - -function createBaseMsgVoteResponse(): MsgVoteResponse { - return {}; -} - -export const MsgVoteResponse = { - encode(_: MsgVoteResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgVoteResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgVoteResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgVoteResponse { - const message = createBaseMsgVoteResponse(); - return message; - } - -}; - -function createBaseMsgExec(): MsgExec { - return { - proposalId: Long.UZERO, - signer: "" - }; -} - -export const MsgExec = { - encode(message: MsgExec, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.signer !== "") { - writer.uint32(18).string(message.signer); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgExec { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgExec(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.signer = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgExec { - const message = createBaseMsgExec(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.signer = object.signer ?? ""; - return message; - } - -}; - -function createBaseMsgExecResponse(): MsgExecResponse { - return {}; -} - -export const MsgExecResponse = { - encode(_: MsgExecResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgExecResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgExecResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgExecResponse { - const message = createBaseMsgExecResponse(); - return message; - } - -}; - -function createBaseMsgLeaveGroup(): MsgLeaveGroup { - return { - address: "", - groupId: Long.UZERO - }; -} - -export const MsgLeaveGroup = { - encode(message: MsgLeaveGroup, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - if (!message.groupId.isZero()) { - writer.uint32(16).uint64(message.groupId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgLeaveGroup { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgLeaveGroup(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.groupId = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgLeaveGroup { - const message = createBaseMsgLeaveGroup(); - message.address = object.address ?? ""; - message.groupId = object.groupId !== undefined && object.groupId !== null ? Long.fromValue(object.groupId) : Long.UZERO; - return message; - } - -}; - -function createBaseMsgLeaveGroupResponse(): MsgLeaveGroupResponse { - return {}; -} - -export const MsgLeaveGroupResponse = { - encode(_: MsgLeaveGroupResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgLeaveGroupResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgLeaveGroupResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgLeaveGroupResponse { - const message = createBaseMsgLeaveGroupResponse(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/group/v1/types.ts b/packages/codegen/src/cosmos/group/v1/types.ts deleted file mode 100644 index d9cb4a2a..00000000 --- a/packages/codegen/src/cosmos/group/v1/types.ts +++ /dev/null @@ -1,1461 +0,0 @@ -import { Timestamp } from "../../../google/protobuf/timestamp"; -import { Duration, DurationSDKType } from "../../../google/protobuf/duration"; -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { toTimestamp, fromTimestamp, DeepPartial, Long } from "../../../helpers"; -/** VoteOption enumerates the valid vote options for a given proposal. */ - -export enum VoteOption { - /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */ - VOTE_OPTION_UNSPECIFIED = 0, - - /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */ - VOTE_OPTION_YES = 1, - - /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */ - VOTE_OPTION_ABSTAIN = 2, - - /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */ - VOTE_OPTION_NO = 3, - - /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */ - VOTE_OPTION_NO_WITH_VETO = 4, - UNRECOGNIZED = -1, -} -export const VoteOptionSDKType = VoteOption; -export function voteOptionFromJSON(object: any): VoteOption { - switch (object) { - case 0: - case "VOTE_OPTION_UNSPECIFIED": - return VoteOption.VOTE_OPTION_UNSPECIFIED; - - case 1: - case "VOTE_OPTION_YES": - return VoteOption.VOTE_OPTION_YES; - - case 2: - case "VOTE_OPTION_ABSTAIN": - return VoteOption.VOTE_OPTION_ABSTAIN; - - case 3: - case "VOTE_OPTION_NO": - return VoteOption.VOTE_OPTION_NO; - - case 4: - case "VOTE_OPTION_NO_WITH_VETO": - return VoteOption.VOTE_OPTION_NO_WITH_VETO; - - case -1: - case "UNRECOGNIZED": - default: - return VoteOption.UNRECOGNIZED; - } -} -export function voteOptionToJSON(object: VoteOption): string { - switch (object) { - case VoteOption.VOTE_OPTION_UNSPECIFIED: - return "VOTE_OPTION_UNSPECIFIED"; - - case VoteOption.VOTE_OPTION_YES: - return "VOTE_OPTION_YES"; - - case VoteOption.VOTE_OPTION_ABSTAIN: - return "VOTE_OPTION_ABSTAIN"; - - case VoteOption.VOTE_OPTION_NO: - return "VOTE_OPTION_NO"; - - case VoteOption.VOTE_OPTION_NO_WITH_VETO: - return "VOTE_OPTION_NO_WITH_VETO"; - - case VoteOption.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** ProposalStatus defines proposal statuses. */ - -export enum ProposalStatus { - /** PROPOSAL_STATUS_UNSPECIFIED - An empty value is invalid and not allowed. */ - PROPOSAL_STATUS_UNSPECIFIED = 0, - - /** PROPOSAL_STATUS_SUBMITTED - Initial status of a proposal when persisted. */ - PROPOSAL_STATUS_SUBMITTED = 1, - - /** PROPOSAL_STATUS_CLOSED - Final status of a proposal when the final tally was executed. */ - PROPOSAL_STATUS_CLOSED = 2, - - /** PROPOSAL_STATUS_ABORTED - Final status of a proposal when the group was modified before the final tally. */ - PROPOSAL_STATUS_ABORTED = 3, - - /** - * PROPOSAL_STATUS_WITHDRAWN - A proposal can be deleted before the voting start time by the owner. When this happens the final status - * is Withdrawn. - */ - PROPOSAL_STATUS_WITHDRAWN = 4, - UNRECOGNIZED = -1, -} -export const ProposalStatusSDKType = ProposalStatus; -export function proposalStatusFromJSON(object: any): ProposalStatus { - switch (object) { - case 0: - case "PROPOSAL_STATUS_UNSPECIFIED": - return ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED; - - case 1: - case "PROPOSAL_STATUS_SUBMITTED": - return ProposalStatus.PROPOSAL_STATUS_SUBMITTED; - - case 2: - case "PROPOSAL_STATUS_CLOSED": - return ProposalStatus.PROPOSAL_STATUS_CLOSED; - - case 3: - case "PROPOSAL_STATUS_ABORTED": - return ProposalStatus.PROPOSAL_STATUS_ABORTED; - - case 4: - case "PROPOSAL_STATUS_WITHDRAWN": - return ProposalStatus.PROPOSAL_STATUS_WITHDRAWN; - - case -1: - case "UNRECOGNIZED": - default: - return ProposalStatus.UNRECOGNIZED; - } -} -export function proposalStatusToJSON(object: ProposalStatus): string { - switch (object) { - case ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED: - return "PROPOSAL_STATUS_UNSPECIFIED"; - - case ProposalStatus.PROPOSAL_STATUS_SUBMITTED: - return "PROPOSAL_STATUS_SUBMITTED"; - - case ProposalStatus.PROPOSAL_STATUS_CLOSED: - return "PROPOSAL_STATUS_CLOSED"; - - case ProposalStatus.PROPOSAL_STATUS_ABORTED: - return "PROPOSAL_STATUS_ABORTED"; - - case ProposalStatus.PROPOSAL_STATUS_WITHDRAWN: - return "PROPOSAL_STATUS_WITHDRAWN"; - - case ProposalStatus.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** ProposalResult defines types of proposal results. */ - -export enum ProposalResult { - /** PROPOSAL_RESULT_UNSPECIFIED - An empty value is invalid and not allowed */ - PROPOSAL_RESULT_UNSPECIFIED = 0, - - /** PROPOSAL_RESULT_UNFINALIZED - Until a final tally has happened the status is unfinalized */ - PROPOSAL_RESULT_UNFINALIZED = 1, - - /** PROPOSAL_RESULT_ACCEPTED - Final result of the tally */ - PROPOSAL_RESULT_ACCEPTED = 2, - - /** PROPOSAL_RESULT_REJECTED - Final result of the tally */ - PROPOSAL_RESULT_REJECTED = 3, - UNRECOGNIZED = -1, -} -export const ProposalResultSDKType = ProposalResult; -export function proposalResultFromJSON(object: any): ProposalResult { - switch (object) { - case 0: - case "PROPOSAL_RESULT_UNSPECIFIED": - return ProposalResult.PROPOSAL_RESULT_UNSPECIFIED; - - case 1: - case "PROPOSAL_RESULT_UNFINALIZED": - return ProposalResult.PROPOSAL_RESULT_UNFINALIZED; - - case 2: - case "PROPOSAL_RESULT_ACCEPTED": - return ProposalResult.PROPOSAL_RESULT_ACCEPTED; - - case 3: - case "PROPOSAL_RESULT_REJECTED": - return ProposalResult.PROPOSAL_RESULT_REJECTED; - - case -1: - case "UNRECOGNIZED": - default: - return ProposalResult.UNRECOGNIZED; - } -} -export function proposalResultToJSON(object: ProposalResult): string { - switch (object) { - case ProposalResult.PROPOSAL_RESULT_UNSPECIFIED: - return "PROPOSAL_RESULT_UNSPECIFIED"; - - case ProposalResult.PROPOSAL_RESULT_UNFINALIZED: - return "PROPOSAL_RESULT_UNFINALIZED"; - - case ProposalResult.PROPOSAL_RESULT_ACCEPTED: - return "PROPOSAL_RESULT_ACCEPTED"; - - case ProposalResult.PROPOSAL_RESULT_REJECTED: - return "PROPOSAL_RESULT_REJECTED"; - - case ProposalResult.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** ProposalExecutorResult defines types of proposal executor results. */ - -export enum ProposalExecutorResult { - /** PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED - An empty value is not allowed. */ - PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED = 0, - - /** PROPOSAL_EXECUTOR_RESULT_NOT_RUN - We have not yet run the executor. */ - PROPOSAL_EXECUTOR_RESULT_NOT_RUN = 1, - - /** PROPOSAL_EXECUTOR_RESULT_SUCCESS - The executor was successful and proposed action updated state. */ - PROPOSAL_EXECUTOR_RESULT_SUCCESS = 2, - - /** PROPOSAL_EXECUTOR_RESULT_FAILURE - The executor returned an error and proposed action didn't update state. */ - PROPOSAL_EXECUTOR_RESULT_FAILURE = 3, - UNRECOGNIZED = -1, -} -export const ProposalExecutorResultSDKType = ProposalExecutorResult; -export function proposalExecutorResultFromJSON(object: any): ProposalExecutorResult { - switch (object) { - case 0: - case "PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED": - return ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED; - - case 1: - case "PROPOSAL_EXECUTOR_RESULT_NOT_RUN": - return ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_NOT_RUN; - - case 2: - case "PROPOSAL_EXECUTOR_RESULT_SUCCESS": - return ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_SUCCESS; - - case 3: - case "PROPOSAL_EXECUTOR_RESULT_FAILURE": - return ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_FAILURE; - - case -1: - case "UNRECOGNIZED": - default: - return ProposalExecutorResult.UNRECOGNIZED; - } -} -export function proposalExecutorResultToJSON(object: ProposalExecutorResult): string { - switch (object) { - case ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED: - return "PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED"; - - case ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_NOT_RUN: - return "PROPOSAL_EXECUTOR_RESULT_NOT_RUN"; - - case ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_SUCCESS: - return "PROPOSAL_EXECUTOR_RESULT_SUCCESS"; - - case ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_FAILURE: - return "PROPOSAL_EXECUTOR_RESULT_FAILURE"; - - case ProposalExecutorResult.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** - * Member represents a group member with an account address, - * non-zero weight and metadata. - */ - -export interface Member { - /** address is the member's account address. */ - address: string; - /** weight is the member's voting weight that should be greater than 0. */ - - weight: string; - /** metadata is any arbitrary metadata to attached to the member. */ - - metadata: string; - /** added_at is a timestamp specifying when a member was added. */ - - addedAt?: Date; -} -/** - * Member represents a group member with an account address, - * non-zero weight and metadata. - */ - -export interface MemberSDKType { - address: string; - weight: string; - metadata: string; - added_at?: Date; -} -/** Members defines a repeated slice of Member objects. */ - -export interface Members { - /** members is the list of members. */ - members: Member[]; -} -/** Members defines a repeated slice of Member objects. */ - -export interface MembersSDKType { - members: MemberSDKType[]; -} -/** ThresholdDecisionPolicy implements the DecisionPolicy interface */ - -export interface ThresholdDecisionPolicy { - /** threshold is the minimum weighted sum of yes votes that must be met or exceeded for a proposal to succeed. */ - threshold: string; - /** windows defines the different windows for voting and execution. */ - - windows?: DecisionPolicyWindows; -} -/** ThresholdDecisionPolicy implements the DecisionPolicy interface */ - -export interface ThresholdDecisionPolicySDKType { - threshold: string; - windows?: DecisionPolicyWindowsSDKType; -} -/** PercentageDecisionPolicy implements the DecisionPolicy interface */ - -export interface PercentageDecisionPolicy { - /** percentage is the minimum percentage the weighted sum of yes votes must meet for a proposal to succeed. */ - percentage: string; - /** windows defines the different windows for voting and execution. */ - - windows?: DecisionPolicyWindows; -} -/** PercentageDecisionPolicy implements the DecisionPolicy interface */ - -export interface PercentageDecisionPolicySDKType { - percentage: string; - windows?: DecisionPolicyWindowsSDKType; -} -/** DecisionPolicyWindows defines the different windows for voting and execution. */ - -export interface 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. - */ - votingPeriod?: Duration; - /** - * 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. - */ - - minExecutionPeriod?: Duration; -} -/** DecisionPolicyWindows defines the different windows for voting and execution. */ - -export interface DecisionPolicyWindowsSDKType { - voting_period?: DurationSDKType; - min_execution_period?: DurationSDKType; -} -/** GroupInfo represents the high-level on-chain information for a group. */ - -export interface GroupInfo { - /** id is the unique ID of the group. */ - id: Long; - /** admin is the account address of the group's admin. */ - - admin: string; - /** metadata is any arbitrary metadata to attached to the group. */ - - metadata: string; - /** - * 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 - */ - - version: Long; - /** total_weight is the sum of the group members' weights. */ - - totalWeight: string; - /** created_at is a timestamp specifying when a group was created. */ - - createdAt?: Date; -} -/** GroupInfo represents the high-level on-chain information for a group. */ - -export interface GroupInfoSDKType { - id: Long; - admin: string; - metadata: string; - version: Long; - total_weight: string; - created_at?: Date; -} -/** GroupMember represents the relationship between a group and a member. */ - -export interface GroupMember { - /** group_id is the unique ID of the group. */ - groupId: Long; - /** member is the member data. */ - - member?: Member; -} -/** GroupMember represents the relationship between a group and a member. */ - -export interface GroupMemberSDKType { - group_id: Long; - member?: MemberSDKType; -} -/** GroupPolicyInfo represents the high-level on-chain information for a group policy. */ - -export interface GroupPolicyInfo { - /** address is the account address of group policy. */ - address: string; - /** group_id is the unique ID of the group. */ - - groupId: Long; - /** admin is the account address of the group admin. */ - - admin: string; - /** metadata is any arbitrary metadata to attached to the group policy. */ - - metadata: string; - /** - * version is used to track changes to a group's GroupPolicyInfo structure that - * would create a different result on a running proposal. - */ - - version: Long; - /** decision_policy specifies the group policy's decision policy. */ - - decisionPolicy?: Any; - /** created_at is a timestamp specifying when a group policy was created. */ - - createdAt?: Date; -} -/** GroupPolicyInfo represents the high-level on-chain information for a group policy. */ - -export interface GroupPolicyInfoSDKType { - address: string; - group_id: Long; - admin: string; - metadata: string; - version: Long; - decision_policy?: AnySDKType; - created_at?: Date; -} -/** - * 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. - */ - -export interface Proposal { - /** id is the unique id of the proposal. */ - id: Long; - /** address is the account address of group policy. */ - - address: string; - /** metadata is any arbitrary metadata to attached to the proposal. */ - - metadata: string; - /** proposers are the account addresses of the proposers. */ - - proposers: string[]; - /** submit_time is a timestamp specifying when a proposal was submitted. */ - - submitTime?: Date; - /** - * group_version tracks the version of the group that this proposal corresponds to. - * When group membership is changed, existing proposals from previous group versions will become invalid. - */ - - groupVersion: Long; - /** - * group_policy_version tracks the version of the group policy that this proposal corresponds to. - * When a decision policy is changed, existing proposals from previous policy versions will become invalid. - */ - - groupPolicyVersion: Long; - /** status represents the high level position in the life cycle of the proposal. Initial value is Submitted. */ - - status: ProposalStatus; - /** - * result is the final result based on the votes and election rule. Initial value is unfinalized. - * The result is persisted so that clients can always rely on this state and not have to replicate the logic. - */ - - result: ProposalResult; - /** - * final_tally_result contains the sums of all weighted votes for this - * proposal for each vote option, after tallying. When querying a proposal - * via gRPC, this field is not populated until the proposal's voting period - * has ended. - */ - - finalTallyResult?: TallyResult; - /** - * voting_period_end is the timestamp before which voting must be done. - * Unless a successfull 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`, as well - * as `status` and `result` fields will be accordingly updated. - */ - - votingPeriodEnd?: Date; - /** executor_result is the final result based on the votes and election rule. Initial value is NotRun. */ - - executorResult: ProposalExecutorResult; - /** messages is a list of Msgs that will be executed if the proposal passes. */ - - messages: Any[]; -} -/** - * 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. - */ - -export interface ProposalSDKType { - id: Long; - address: string; - metadata: string; - proposers: string[]; - submit_time?: Date; - group_version: Long; - group_policy_version: Long; - status: ProposalStatus; - result: ProposalResult; - final_tally_result?: TallyResultSDKType; - voting_period_end?: Date; - executor_result: ProposalExecutorResult; - messages: AnySDKType[]; -} -/** TallyResult represents the sum of weighted votes for each vote option. */ - -export interface TallyResult { - /** yes_count is the weighted sum of yes votes. */ - yesCount: string; - /** abstain_count is the weighted sum of abstainers. */ - - abstainCount: string; - /** no is the weighted sum of no votes. */ - - noCount: string; - /** no_with_veto_count is the weighted sum of veto. */ - - noWithVetoCount: string; -} -/** TallyResult represents the sum of weighted votes for each vote option. */ - -export interface TallyResultSDKType { - yes_count: string; - abstain_count: string; - no_count: string; - no_with_veto_count: string; -} -/** Vote represents a vote for a proposal. */ - -export interface Vote { - /** proposal is the unique ID of the proposal. */ - proposalId: Long; - /** voter is the account address of the voter. */ - - voter: string; - /** option is the voter's choice on the proposal. */ - - option: VoteOption; - /** metadata is any arbitrary metadata to attached to the vote. */ - - metadata: string; - /** submit_time is the timestamp when the vote was submitted. */ - - submitTime?: Date; -} -/** Vote represents a vote for a proposal. */ - -export interface VoteSDKType { - proposal_id: Long; - voter: string; - option: VoteOption; - metadata: string; - submit_time?: Date; -} - -function createBaseMember(): Member { - return { - address: "", - weight: "", - metadata: "", - addedAt: undefined - }; -} - -export const Member = { - encode(message: Member, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - if (message.weight !== "") { - writer.uint32(18).string(message.weight); - } - - if (message.metadata !== "") { - writer.uint32(26).string(message.metadata); - } - - if (message.addedAt !== undefined) { - Timestamp.encode(toTimestamp(message.addedAt), writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Member { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMember(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.weight = reader.string(); - break; - - case 3: - message.metadata = reader.string(); - break; - - case 4: - message.addedAt = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Member { - const message = createBaseMember(); - message.address = object.address ?? ""; - message.weight = object.weight ?? ""; - message.metadata = object.metadata ?? ""; - message.addedAt = object.addedAt ?? undefined; - return message; - } - -}; - -function createBaseMembers(): Members { - return { - members: [] - }; -} - -export const Members = { - encode(message: Members, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.members) { - Member.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Members { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMembers(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.members.push(Member.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Members { - const message = createBaseMembers(); - message.members = object.members?.map(e => Member.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseThresholdDecisionPolicy(): ThresholdDecisionPolicy { - return { - threshold: "", - windows: undefined - }; -} - -export const ThresholdDecisionPolicy = { - encode(message: ThresholdDecisionPolicy, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.threshold !== "") { - writer.uint32(10).string(message.threshold); - } - - if (message.windows !== undefined) { - DecisionPolicyWindows.encode(message.windows, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ThresholdDecisionPolicy { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseThresholdDecisionPolicy(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.threshold = reader.string(); - break; - - case 2: - message.windows = DecisionPolicyWindows.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ThresholdDecisionPolicy { - const message = createBaseThresholdDecisionPolicy(); - message.threshold = object.threshold ?? ""; - message.windows = object.windows !== undefined && object.windows !== null ? DecisionPolicyWindows.fromPartial(object.windows) : undefined; - return message; - } - -}; - -function createBasePercentageDecisionPolicy(): PercentageDecisionPolicy { - return { - percentage: "", - windows: undefined - }; -} - -export const PercentageDecisionPolicy = { - encode(message: PercentageDecisionPolicy, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.percentage !== "") { - writer.uint32(10).string(message.percentage); - } - - if (message.windows !== undefined) { - DecisionPolicyWindows.encode(message.windows, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PercentageDecisionPolicy { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePercentageDecisionPolicy(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.percentage = reader.string(); - break; - - case 2: - message.windows = DecisionPolicyWindows.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PercentageDecisionPolicy { - const message = createBasePercentageDecisionPolicy(); - message.percentage = object.percentage ?? ""; - message.windows = object.windows !== undefined && object.windows !== null ? DecisionPolicyWindows.fromPartial(object.windows) : undefined; - return message; - } - -}; - -function createBaseDecisionPolicyWindows(): DecisionPolicyWindows { - return { - votingPeriod: undefined, - minExecutionPeriod: undefined - }; -} - -export const DecisionPolicyWindows = { - encode(message: DecisionPolicyWindows, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.votingPeriod !== undefined) { - Duration.encode(message.votingPeriod, writer.uint32(10).fork()).ldelim(); - } - - if (message.minExecutionPeriod !== undefined) { - Duration.encode(message.minExecutionPeriod, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): DecisionPolicyWindows { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDecisionPolicyWindows(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.votingPeriod = Duration.decode(reader, reader.uint32()); - break; - - case 2: - message.minExecutionPeriod = Duration.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): DecisionPolicyWindows { - const message = createBaseDecisionPolicyWindows(); - message.votingPeriod = object.votingPeriod !== undefined && object.votingPeriod !== null ? Duration.fromPartial(object.votingPeriod) : undefined; - message.minExecutionPeriod = object.minExecutionPeriod !== undefined && object.minExecutionPeriod !== null ? Duration.fromPartial(object.minExecutionPeriod) : undefined; - return message; - } - -}; - -function createBaseGroupInfo(): GroupInfo { - return { - id: Long.UZERO, - admin: "", - metadata: "", - version: Long.UZERO, - totalWeight: "", - createdAt: undefined - }; -} - -export const GroupInfo = { - encode(message: GroupInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.id.isZero()) { - writer.uint32(8).uint64(message.id); - } - - if (message.admin !== "") { - writer.uint32(18).string(message.admin); - } - - if (message.metadata !== "") { - writer.uint32(26).string(message.metadata); - } - - if (!message.version.isZero()) { - writer.uint32(32).uint64(message.version); - } - - if (message.totalWeight !== "") { - writer.uint32(42).string(message.totalWeight); - } - - if (message.createdAt !== undefined) { - Timestamp.encode(toTimestamp(message.createdAt), writer.uint32(50).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GroupInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGroupInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.id = (reader.uint64() as Long); - break; - - case 2: - message.admin = reader.string(); - break; - - case 3: - message.metadata = reader.string(); - break; - - case 4: - message.version = (reader.uint64() as Long); - break; - - case 5: - message.totalWeight = reader.string(); - break; - - case 6: - message.createdAt = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GroupInfo { - const message = createBaseGroupInfo(); - message.id = object.id !== undefined && object.id !== null ? Long.fromValue(object.id) : Long.UZERO; - message.admin = object.admin ?? ""; - message.metadata = object.metadata ?? ""; - message.version = object.version !== undefined && object.version !== null ? Long.fromValue(object.version) : Long.UZERO; - message.totalWeight = object.totalWeight ?? ""; - message.createdAt = object.createdAt ?? undefined; - return message; - } - -}; - -function createBaseGroupMember(): GroupMember { - return { - groupId: Long.UZERO, - member: undefined - }; -} - -export const GroupMember = { - encode(message: GroupMember, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.groupId.isZero()) { - writer.uint32(8).uint64(message.groupId); - } - - if (message.member !== undefined) { - Member.encode(message.member, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GroupMember { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGroupMember(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.groupId = (reader.uint64() as Long); - break; - - case 2: - message.member = Member.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GroupMember { - const message = createBaseGroupMember(); - message.groupId = object.groupId !== undefined && object.groupId !== null ? Long.fromValue(object.groupId) : Long.UZERO; - message.member = object.member !== undefined && object.member !== null ? Member.fromPartial(object.member) : undefined; - return message; - } - -}; - -function createBaseGroupPolicyInfo(): GroupPolicyInfo { - return { - address: "", - groupId: Long.UZERO, - admin: "", - metadata: "", - version: Long.UZERO, - decisionPolicy: undefined, - createdAt: undefined - }; -} - -export const GroupPolicyInfo = { - encode(message: GroupPolicyInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - if (!message.groupId.isZero()) { - writer.uint32(16).uint64(message.groupId); - } - - if (message.admin !== "") { - writer.uint32(26).string(message.admin); - } - - if (message.metadata !== "") { - writer.uint32(34).string(message.metadata); - } - - if (!message.version.isZero()) { - writer.uint32(40).uint64(message.version); - } - - if (message.decisionPolicy !== undefined) { - Any.encode(message.decisionPolicy, writer.uint32(50).fork()).ldelim(); - } - - if (message.createdAt !== undefined) { - Timestamp.encode(toTimestamp(message.createdAt), writer.uint32(58).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GroupPolicyInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGroupPolicyInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.groupId = (reader.uint64() as Long); - break; - - case 3: - message.admin = reader.string(); - break; - - case 4: - message.metadata = reader.string(); - break; - - case 5: - message.version = (reader.uint64() as Long); - break; - - case 6: - message.decisionPolicy = Any.decode(reader, reader.uint32()); - break; - - case 7: - message.createdAt = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GroupPolicyInfo { - const message = createBaseGroupPolicyInfo(); - message.address = object.address ?? ""; - message.groupId = object.groupId !== undefined && object.groupId !== null ? Long.fromValue(object.groupId) : Long.UZERO; - message.admin = object.admin ?? ""; - message.metadata = object.metadata ?? ""; - message.version = object.version !== undefined && object.version !== null ? Long.fromValue(object.version) : Long.UZERO; - message.decisionPolicy = object.decisionPolicy !== undefined && object.decisionPolicy !== null ? Any.fromPartial(object.decisionPolicy) : undefined; - message.createdAt = object.createdAt ?? undefined; - return message; - } - -}; - -function createBaseProposal(): Proposal { - return { - id: Long.UZERO, - address: "", - metadata: "", - proposers: [], - submitTime: undefined, - groupVersion: Long.UZERO, - groupPolicyVersion: Long.UZERO, - status: 0, - result: 0, - finalTallyResult: undefined, - votingPeriodEnd: undefined, - executorResult: 0, - messages: [] - }; -} - -export const Proposal = { - encode(message: Proposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.id.isZero()) { - writer.uint32(8).uint64(message.id); - } - - if (message.address !== "") { - writer.uint32(18).string(message.address); - } - - if (message.metadata !== "") { - writer.uint32(26).string(message.metadata); - } - - for (const v of message.proposers) { - writer.uint32(34).string(v!); - } - - if (message.submitTime !== undefined) { - Timestamp.encode(toTimestamp(message.submitTime), writer.uint32(42).fork()).ldelim(); - } - - if (!message.groupVersion.isZero()) { - writer.uint32(48).uint64(message.groupVersion); - } - - if (!message.groupPolicyVersion.isZero()) { - writer.uint32(56).uint64(message.groupPolicyVersion); - } - - if (message.status !== 0) { - writer.uint32(64).int32(message.status); - } - - if (message.result !== 0) { - writer.uint32(72).int32(message.result); - } - - if (message.finalTallyResult !== undefined) { - TallyResult.encode(message.finalTallyResult, writer.uint32(82).fork()).ldelim(); - } - - if (message.votingPeriodEnd !== undefined) { - Timestamp.encode(toTimestamp(message.votingPeriodEnd), writer.uint32(90).fork()).ldelim(); - } - - if (message.executorResult !== 0) { - writer.uint32(96).int32(message.executorResult); - } - - for (const v of message.messages) { - Any.encode(v!, writer.uint32(106).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Proposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.id = (reader.uint64() as Long); - break; - - case 2: - message.address = reader.string(); - break; - - case 3: - message.metadata = reader.string(); - break; - - case 4: - message.proposers.push(reader.string()); - break; - - case 5: - message.submitTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - case 6: - message.groupVersion = (reader.uint64() as Long); - break; - - case 7: - message.groupPolicyVersion = (reader.uint64() as Long); - break; - - case 8: - message.status = (reader.int32() as any); - break; - - case 9: - message.result = (reader.int32() as any); - break; - - case 10: - message.finalTallyResult = TallyResult.decode(reader, reader.uint32()); - break; - - case 11: - message.votingPeriodEnd = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - case 12: - message.executorResult = (reader.int32() as any); - break; - - case 13: - message.messages.push(Any.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Proposal { - const message = createBaseProposal(); - message.id = object.id !== undefined && object.id !== null ? Long.fromValue(object.id) : Long.UZERO; - message.address = object.address ?? ""; - message.metadata = object.metadata ?? ""; - message.proposers = object.proposers?.map(e => e) || []; - message.submitTime = object.submitTime ?? undefined; - message.groupVersion = object.groupVersion !== undefined && object.groupVersion !== null ? Long.fromValue(object.groupVersion) : Long.UZERO; - message.groupPolicyVersion = object.groupPolicyVersion !== undefined && object.groupPolicyVersion !== null ? Long.fromValue(object.groupPolicyVersion) : Long.UZERO; - message.status = object.status ?? 0; - message.result = object.result ?? 0; - message.finalTallyResult = object.finalTallyResult !== undefined && object.finalTallyResult !== null ? TallyResult.fromPartial(object.finalTallyResult) : undefined; - message.votingPeriodEnd = object.votingPeriodEnd ?? undefined; - message.executorResult = object.executorResult ?? 0; - message.messages = object.messages?.map(e => Any.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseTallyResult(): TallyResult { - return { - yesCount: "", - abstainCount: "", - noCount: "", - noWithVetoCount: "" - }; -} - -export const TallyResult = { - encode(message: TallyResult, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.yesCount !== "") { - writer.uint32(10).string(message.yesCount); - } - - if (message.abstainCount !== "") { - writer.uint32(18).string(message.abstainCount); - } - - if (message.noCount !== "") { - writer.uint32(26).string(message.noCount); - } - - if (message.noWithVetoCount !== "") { - writer.uint32(34).string(message.noWithVetoCount); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): TallyResult { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTallyResult(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.yesCount = reader.string(); - break; - - case 2: - message.abstainCount = reader.string(); - break; - - case 3: - message.noCount = reader.string(); - break; - - case 4: - message.noWithVetoCount = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): TallyResult { - const message = createBaseTallyResult(); - message.yesCount = object.yesCount ?? ""; - message.abstainCount = object.abstainCount ?? ""; - message.noCount = object.noCount ?? ""; - message.noWithVetoCount = object.noWithVetoCount ?? ""; - return message; - } - -}; - -function createBaseVote(): Vote { - return { - proposalId: Long.UZERO, - voter: "", - option: 0, - metadata: "", - submitTime: undefined - }; -} - -export const Vote = { - encode(message: Vote, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - - if (message.voter !== "") { - writer.uint32(18).string(message.voter); - } - - if (message.option !== 0) { - writer.uint32(24).int32(message.option); - } - - if (message.metadata !== "") { - writer.uint32(34).string(message.metadata); - } - - if (message.submitTime !== undefined) { - Timestamp.encode(toTimestamp(message.submitTime), writer.uint32(42).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Vote { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseVote(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proposalId = (reader.uint64() as Long); - break; - - case 2: - message.voter = reader.string(); - break; - - case 3: - message.option = (reader.int32() as any); - break; - - case 4: - message.metadata = reader.string(); - break; - - case 5: - message.submitTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Vote { - const message = createBaseVote(); - message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? Long.fromValue(object.proposalId) : Long.UZERO; - message.voter = object.voter ?? ""; - message.option = object.option ?? 0; - message.metadata = object.metadata ?? ""; - message.submitTime = object.submitTime ?? undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/lcd.ts b/packages/codegen/src/cosmos/lcd.ts deleted file mode 100644 index 954fcdf8..00000000 --- a/packages/codegen/src/cosmos/lcd.ts +++ /dev/null @@ -1,99 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -export const createLCDClient = async ({ - restEndpoint -}: { - restEndpoint: string; -}) => { - const requestClient = new LCDClient({ - restEndpoint - }); - return { - cosmos: { - auth: { - v1beta1: new (await import("./auth/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - authz: { - v1beta1: new (await import("./authz/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - bank: { - v1beta1: new (await import("./bank/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - base: { - tendermint: { - v1beta1: new (await import("./base/tendermint/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - } - }, - distribution: { - v1beta1: new (await import("./distribution/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - evidence: { - v1beta1: new (await import("./evidence/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - feegrant: { - v1beta1: new (await import("./feegrant/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - gov: { - v1: new (await import("./gov/v1/query.lcd")).LCDQueryClient({ - requestClient - }), - v1beta1: new (await import("./gov/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - group: { - v1: new (await import("./group/v1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - mint: { - v1beta1: new (await import("./mint/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - nft: { - v1beta1: new (await import("./nft/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - params: { - v1beta1: new (await import("./params/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - slashing: { - v1beta1: new (await import("./slashing/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - staking: { - v1beta1: new (await import("./staking/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - tx: { - v1beta1: new (await import("./tx/v1beta1/service.lcd")).LCDQueryClient({ - requestClient - }) - }, - upgrade: { - v1beta1: new (await import("./upgrade/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - } - } - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/mint/v1beta1/genesis.ts b/packages/codegen/src/cosmos/mint/v1beta1/genesis.ts deleted file mode 100644 index a1419886..00000000 --- a/packages/codegen/src/cosmos/mint/v1beta1/genesis.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { Minter, MinterSDKType, Params, ParamsSDKType } from "./mint"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** GenesisState defines the mint module's genesis state. */ - -export interface GenesisState { - /** minter is a space for holding current inflation information. */ - minter?: Minter; - /** params defines all the paramaters of the module. */ - - params?: Params; -} -/** GenesisState defines the mint module's genesis state. */ - -export interface GenesisStateSDKType { - minter?: MinterSDKType; - params?: ParamsSDKType; -} - -function createBaseGenesisState(): GenesisState { - return { - minter: undefined, - params: undefined - }; -} - -export const GenesisState = { - encode(message: GenesisState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.minter !== undefined) { - Minter.encode(message.minter, writer.uint32(10).fork()).ldelim(); - } - - if (message.params !== undefined) { - Params.encode(message.params, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.minter = Minter.decode(reader, reader.uint32()); - break; - - case 2: - message.params = Params.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenesisState { - const message = createBaseGenesisState(); - message.minter = object.minter !== undefined && object.minter !== null ? Minter.fromPartial(object.minter) : undefined; - message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/mint/v1beta1/mint.ts b/packages/codegen/src/cosmos/mint/v1beta1/mint.ts deleted file mode 100644 index ea0eacc6..00000000 --- a/packages/codegen/src/cosmos/mint/v1beta1/mint.ts +++ /dev/null @@ -1,198 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** Minter represents the minting state. */ - -export interface Minter { - /** current annual inflation rate */ - inflation: string; - /** current annual expected provisions */ - - annualProvisions: string; -} -/** Minter represents the minting state. */ - -export interface MinterSDKType { - inflation: string; - annual_provisions: string; -} -/** Params holds parameters for the mint module. */ - -export interface Params { - /** type of coin to mint */ - mintDenom: string; - /** maximum annual change in inflation rate */ - - inflationRateChange: string; - /** maximum inflation rate */ - - inflationMax: string; - /** minimum inflation rate */ - - inflationMin: string; - /** goal of percent bonded atoms */ - - goalBonded: string; - /** expected blocks per year */ - - blocksPerYear: Long; -} -/** Params holds parameters for the mint module. */ - -export interface ParamsSDKType { - mint_denom: string; - inflation_rate_change: string; - inflation_max: string; - inflation_min: string; - goal_bonded: string; - blocks_per_year: Long; -} - -function createBaseMinter(): Minter { - return { - inflation: "", - annualProvisions: "" - }; -} - -export const Minter = { - encode(message: Minter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.inflation !== "") { - writer.uint32(10).string(message.inflation); - } - - if (message.annualProvisions !== "") { - writer.uint32(18).string(message.annualProvisions); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Minter { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMinter(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.inflation = reader.string(); - break; - - case 2: - message.annualProvisions = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Minter { - const message = createBaseMinter(); - message.inflation = object.inflation ?? ""; - message.annualProvisions = object.annualProvisions ?? ""; - return message; - } - -}; - -function createBaseParams(): Params { - return { - mintDenom: "", - inflationRateChange: "", - inflationMax: "", - inflationMin: "", - goalBonded: "", - blocksPerYear: Long.UZERO - }; -} - -export const Params = { - encode(message: Params, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.mintDenom !== "") { - writer.uint32(10).string(message.mintDenom); - } - - if (message.inflationRateChange !== "") { - writer.uint32(18).string(message.inflationRateChange); - } - - if (message.inflationMax !== "") { - writer.uint32(26).string(message.inflationMax); - } - - if (message.inflationMin !== "") { - writer.uint32(34).string(message.inflationMin); - } - - if (message.goalBonded !== "") { - writer.uint32(42).string(message.goalBonded); - } - - if (!message.blocksPerYear.isZero()) { - writer.uint32(48).uint64(message.blocksPerYear); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Params { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseParams(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.mintDenom = reader.string(); - break; - - case 2: - message.inflationRateChange = reader.string(); - break; - - case 3: - message.inflationMax = reader.string(); - break; - - case 4: - message.inflationMin = reader.string(); - break; - - case 5: - message.goalBonded = reader.string(); - break; - - case 6: - message.blocksPerYear = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Params { - const message = createBaseParams(); - message.mintDenom = object.mintDenom ?? ""; - message.inflationRateChange = object.inflationRateChange ?? ""; - message.inflationMax = object.inflationMax ?? ""; - message.inflationMin = object.inflationMin ?? ""; - message.goalBonded = object.goalBonded ?? ""; - message.blocksPerYear = object.blocksPerYear !== undefined && object.blocksPerYear !== null ? Long.fromValue(object.blocksPerYear) : Long.UZERO; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/mint/v1beta1/query.lcd.ts b/packages/codegen/src/cosmos/mint/v1beta1/query.lcd.ts deleted file mode 100644 index 92086040..00000000 --- a/packages/codegen/src/cosmos/mint/v1beta1/query.lcd.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { QueryParamsRequest, QueryParamsResponseSDKType, QueryInflationRequest, QueryInflationResponseSDKType, QueryAnnualProvisionsRequest, QueryAnnualProvisionsResponseSDKType } from "./query"; -export class LCDQueryClient { - req: LCDClient; - - constructor({ - requestClient - }: { - requestClient: LCDClient; - }) { - this.req = requestClient; - this.params = this.params.bind(this); - this.inflation = this.inflation.bind(this); - this.annualProvisions = this.annualProvisions.bind(this); - } - /* Params returns the total set of minting parameters. */ - - - async params(_params: QueryParamsRequest = {}): Promise { - const endpoint = `cosmos/mint/v1beta1/params`; - return await this.req.get(endpoint); - } - /* Inflation returns the current minting inflation value. */ - - - async inflation(_params: QueryInflationRequest = {}): Promise { - const endpoint = `cosmos/mint/v1beta1/inflation`; - return await this.req.get(endpoint); - } - /* AnnualProvisions current minting annual provisions value. */ - - - async annualProvisions(_params: QueryAnnualProvisionsRequest = {}): Promise { - const endpoint = `cosmos/mint/v1beta1/annual_provisions`; - return await this.req.get(endpoint); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/mint/v1beta1/query.rpc.Query.ts b/packages/codegen/src/cosmos/mint/v1beta1/query.rpc.Query.ts deleted file mode 100644 index 4e7ca73e..00000000 --- a/packages/codegen/src/cosmos/mint/v1beta1/query.rpc.Query.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { QueryParamsRequest, QueryParamsResponse, QueryInflationRequest, QueryInflationResponse, QueryAnnualProvisionsRequest, QueryAnnualProvisionsResponse } from "./query"; -/** Query provides defines the gRPC querier service. */ - -export interface Query { - /** Params returns the total set of minting parameters. */ - params(request?: QueryParamsRequest): Promise; - /** Inflation returns the current minting inflation value. */ - - inflation(request?: QueryInflationRequest): Promise; - /** AnnualProvisions current minting annual provisions value. */ - - annualProvisions(request?: QueryAnnualProvisionsRequest): Promise; -} -export class QueryClientImpl implements Query { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.params = this.params.bind(this); - this.inflation = this.inflation.bind(this); - this.annualProvisions = this.annualProvisions.bind(this); - } - - params(request: QueryParamsRequest = {}): Promise { - const data = QueryParamsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.mint.v1beta1.Query", "Params", data); - return promise.then(data => QueryParamsResponse.decode(new _m0.Reader(data))); - } - - inflation(request: QueryInflationRequest = {}): Promise { - const data = QueryInflationRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.mint.v1beta1.Query", "Inflation", data); - return promise.then(data => QueryInflationResponse.decode(new _m0.Reader(data))); - } - - annualProvisions(request: QueryAnnualProvisionsRequest = {}): Promise { - const data = QueryAnnualProvisionsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.mint.v1beta1.Query", "AnnualProvisions", data); - return promise.then(data => QueryAnnualProvisionsResponse.decode(new _m0.Reader(data))); - } - -} -export const createRpcQueryExtension = (base: QueryClient) => { - const rpc = createProtobufRpcClient(base); - const queryService = new QueryClientImpl(rpc); - return { - params(request?: QueryParamsRequest): Promise { - return queryService.params(request); - }, - - inflation(request?: QueryInflationRequest): Promise { - return queryService.inflation(request); - }, - - annualProvisions(request?: QueryAnnualProvisionsRequest): Promise { - return queryService.annualProvisions(request); - } - - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/mint/v1beta1/query.ts b/packages/codegen/src/cosmos/mint/v1beta1/query.ts deleted file mode 100644 index 066cd69b..00000000 --- a/packages/codegen/src/cosmos/mint/v1beta1/query.ts +++ /dev/null @@ -1,309 +0,0 @@ -import { Params, ParamsSDKType } from "./mint"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ - -export interface QueryParamsRequest {} -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ - -export interface QueryParamsRequestSDKType {} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ - -export interface QueryParamsResponse { - /** params defines the parameters of the module. */ - params?: Params; -} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ - -export interface QueryParamsResponseSDKType { - params?: ParamsSDKType; -} -/** QueryInflationRequest is the request type for the Query/Inflation RPC method. */ - -export interface QueryInflationRequest {} -/** QueryInflationRequest is the request type for the Query/Inflation RPC method. */ - -export interface QueryInflationRequestSDKType {} -/** - * QueryInflationResponse is the response type for the Query/Inflation RPC - * method. - */ - -export interface QueryInflationResponse { - /** inflation is the current minting inflation value. */ - inflation: Uint8Array; -} -/** - * QueryInflationResponse is the response type for the Query/Inflation RPC - * method. - */ - -export interface QueryInflationResponseSDKType { - inflation: Uint8Array; -} -/** - * QueryAnnualProvisionsRequest is the request type for the - * Query/AnnualProvisions RPC method. - */ - -export interface QueryAnnualProvisionsRequest {} -/** - * QueryAnnualProvisionsRequest is the request type for the - * Query/AnnualProvisions RPC method. - */ - -export interface QueryAnnualProvisionsRequestSDKType {} -/** - * QueryAnnualProvisionsResponse is the response type for the - * Query/AnnualProvisions RPC method. - */ - -export interface QueryAnnualProvisionsResponse { - /** annual_provisions is the current minting annual provisions value. */ - annualProvisions: Uint8Array; -} -/** - * QueryAnnualProvisionsResponse is the response type for the - * Query/AnnualProvisions RPC method. - */ - -export interface QueryAnnualProvisionsResponseSDKType { - annual_provisions: Uint8Array; -} - -function createBaseQueryParamsRequest(): QueryParamsRequest { - return {}; -} - -export const QueryParamsRequest = { - encode(_: QueryParamsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): QueryParamsRequest { - const message = createBaseQueryParamsRequest(); - return message; - } - -}; - -function createBaseQueryParamsResponse(): QueryParamsResponse { - return { - params: undefined - }; -} - -export const QueryParamsResponse = { - encode(message: QueryParamsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.params !== undefined) { - Params.encode(message.params, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.params = Params.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryParamsResponse { - const message = createBaseQueryParamsResponse(); - message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined; - return message; - } - -}; - -function createBaseQueryInflationRequest(): QueryInflationRequest { - return {}; -} - -export const QueryInflationRequest = { - encode(_: QueryInflationRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryInflationRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryInflationRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): QueryInflationRequest { - const message = createBaseQueryInflationRequest(); - return message; - } - -}; - -function createBaseQueryInflationResponse(): QueryInflationResponse { - return { - inflation: new Uint8Array() - }; -} - -export const QueryInflationResponse = { - encode(message: QueryInflationResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.inflation.length !== 0) { - writer.uint32(10).bytes(message.inflation); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryInflationResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryInflationResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.inflation = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryInflationResponse { - const message = createBaseQueryInflationResponse(); - message.inflation = object.inflation ?? new Uint8Array(); - return message; - } - -}; - -function createBaseQueryAnnualProvisionsRequest(): QueryAnnualProvisionsRequest { - return {}; -} - -export const QueryAnnualProvisionsRequest = { - encode(_: QueryAnnualProvisionsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAnnualProvisionsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAnnualProvisionsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): QueryAnnualProvisionsRequest { - const message = createBaseQueryAnnualProvisionsRequest(); - return message; - } - -}; - -function createBaseQueryAnnualProvisionsResponse(): QueryAnnualProvisionsResponse { - return { - annualProvisions: new Uint8Array() - }; -} - -export const QueryAnnualProvisionsResponse = { - encode(message: QueryAnnualProvisionsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.annualProvisions.length !== 0) { - writer.uint32(10).bytes(message.annualProvisions); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAnnualProvisionsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAnnualProvisionsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.annualProvisions = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryAnnualProvisionsResponse { - const message = createBaseQueryAnnualProvisionsResponse(); - message.annualProvisions = object.annualProvisions ?? new Uint8Array(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/msg/v1/msg.ts b/packages/codegen/src/cosmos/msg/v1/msg.ts deleted file mode 100644 index 693da49f..00000000 --- a/packages/codegen/src/cosmos/msg/v1/msg.ts +++ /dev/null @@ -1 +0,0 @@ -export {} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/nft/v1beta1/event.ts b/packages/codegen/src/cosmos/nft/v1beta1/event.ts deleted file mode 100644 index 88a73f56..00000000 --- a/packages/codegen/src/cosmos/nft/v1beta1/event.ts +++ /dev/null @@ -1,251 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** EventSend is emitted on Msg/Send */ - -export interface EventSend { - classId: string; - id: string; - sender: string; - receiver: string; -} -/** EventSend is emitted on Msg/Send */ - -export interface EventSendSDKType { - class_id: string; - id: string; - sender: string; - receiver: string; -} -/** EventMint is emitted on Mint */ - -export interface EventMint { - classId: string; - id: string; - owner: string; -} -/** EventMint is emitted on Mint */ - -export interface EventMintSDKType { - class_id: string; - id: string; - owner: string; -} -/** EventBurn is emitted on Burn */ - -export interface EventBurn { - classId: string; - id: string; - owner: string; -} -/** EventBurn is emitted on Burn */ - -export interface EventBurnSDKType { - class_id: string; - id: string; - owner: string; -} - -function createBaseEventSend(): EventSend { - return { - classId: "", - id: "", - sender: "", - receiver: "" - }; -} - -export const EventSend = { - encode(message: EventSend, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.classId !== "") { - writer.uint32(10).string(message.classId); - } - - if (message.id !== "") { - writer.uint32(18).string(message.id); - } - - if (message.sender !== "") { - writer.uint32(26).string(message.sender); - } - - if (message.receiver !== "") { - writer.uint32(34).string(message.receiver); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): EventSend { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEventSend(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.classId = reader.string(); - break; - - case 2: - message.id = reader.string(); - break; - - case 3: - message.sender = reader.string(); - break; - - case 4: - message.receiver = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): EventSend { - const message = createBaseEventSend(); - message.classId = object.classId ?? ""; - message.id = object.id ?? ""; - message.sender = object.sender ?? ""; - message.receiver = object.receiver ?? ""; - return message; - } - -}; - -function createBaseEventMint(): EventMint { - return { - classId: "", - id: "", - owner: "" - }; -} - -export const EventMint = { - encode(message: EventMint, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.classId !== "") { - writer.uint32(10).string(message.classId); - } - - if (message.id !== "") { - writer.uint32(18).string(message.id); - } - - if (message.owner !== "") { - writer.uint32(26).string(message.owner); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): EventMint { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEventMint(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.classId = reader.string(); - break; - - case 2: - message.id = reader.string(); - break; - - case 3: - message.owner = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): EventMint { - const message = createBaseEventMint(); - message.classId = object.classId ?? ""; - message.id = object.id ?? ""; - message.owner = object.owner ?? ""; - return message; - } - -}; - -function createBaseEventBurn(): EventBurn { - return { - classId: "", - id: "", - owner: "" - }; -} - -export const EventBurn = { - encode(message: EventBurn, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.classId !== "") { - writer.uint32(10).string(message.classId); - } - - if (message.id !== "") { - writer.uint32(18).string(message.id); - } - - if (message.owner !== "") { - writer.uint32(26).string(message.owner); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): EventBurn { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEventBurn(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.classId = reader.string(); - break; - - case 2: - message.id = reader.string(); - break; - - case 3: - message.owner = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): EventBurn { - const message = createBaseEventBurn(); - message.classId = object.classId ?? ""; - message.id = object.id ?? ""; - message.owner = object.owner ?? ""; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/nft/v1beta1/genesis.ts b/packages/codegen/src/cosmos/nft/v1beta1/genesis.ts deleted file mode 100644 index 43a5a92e..00000000 --- a/packages/codegen/src/cosmos/nft/v1beta1/genesis.ts +++ /dev/null @@ -1,141 +0,0 @@ -import { Class, ClassSDKType, NFT, NFTSDKType } from "./nft"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** GenesisState defines the nft module's genesis state. */ - -export interface GenesisState { - /** class defines the class of the nft type. */ - classes: Class[]; - entries: Entry[]; -} -/** GenesisState defines the nft module's genesis state. */ - -export interface GenesisStateSDKType { - classes: ClassSDKType[]; - entries: EntrySDKType[]; -} -/** Entry Defines all nft owned by a person */ - -export interface Entry { - /** owner is the owner address of the following nft */ - owner: string; - /** nfts is a group of nfts of the same owner */ - - nfts: NFT[]; -} -/** Entry Defines all nft owned by a person */ - -export interface EntrySDKType { - owner: string; - nfts: NFTSDKType[]; -} - -function createBaseGenesisState(): GenesisState { - return { - classes: [], - entries: [] - }; -} - -export const GenesisState = { - encode(message: GenesisState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.classes) { - Class.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - for (const v of message.entries) { - Entry.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.classes.push(Class.decode(reader, reader.uint32())); - break; - - case 2: - message.entries.push(Entry.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenesisState { - const message = createBaseGenesisState(); - message.classes = object.classes?.map(e => Class.fromPartial(e)) || []; - message.entries = object.entries?.map(e => Entry.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseEntry(): Entry { - return { - owner: "", - nfts: [] - }; -} - -export const Entry = { - encode(message: Entry, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.owner !== "") { - writer.uint32(10).string(message.owner); - } - - for (const v of message.nfts) { - NFT.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Entry { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEntry(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.owner = reader.string(); - break; - - case 2: - message.nfts.push(NFT.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Entry { - const message = createBaseEntry(); - message.owner = object.owner ?? ""; - message.nfts = object.nfts?.map(e => NFT.fromPartial(e)) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/nft/v1beta1/nft.ts b/packages/codegen/src/cosmos/nft/v1beta1/nft.ts deleted file mode 100644 index 77f4cf83..00000000 --- a/packages/codegen/src/cosmos/nft/v1beta1/nft.ts +++ /dev/null @@ -1,255 +0,0 @@ -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** Class defines the class of the nft type. */ - -export interface Class { - /** id defines the unique identifier of the NFT classification, similar to the contract address of ERC721 */ - id: string; - /** name defines the human-readable name of the NFT classification. Optional */ - - name: string; - /** symbol is an abbreviated name for nft classification. Optional */ - - symbol: string; - /** description is a brief description of nft classification. Optional */ - - description: string; - /** uri for the class metadata stored off chain. It can define schema for Class and NFT `Data` attributes. Optional */ - - uri: string; - /** uri_hash is a hash of the document pointed by uri. Optional */ - - uriHash: string; - /** data is the app specific metadata of the NFT class. Optional */ - - data?: Any; -} -/** Class defines the class of the nft type. */ - -export interface ClassSDKType { - id: string; - name: string; - symbol: string; - description: string; - uri: string; - uri_hash: string; - data?: AnySDKType; -} -/** NFT defines the NFT. */ - -export interface NFT { - /** class_id associated with the NFT, similar to the contract address of ERC721 */ - classId: string; - /** id is a unique identifier of the NFT */ - - id: string; - /** uri for the NFT metadata stored off chain */ - - uri: string; - /** uri_hash is a hash of the document pointed by uri */ - - uriHash: string; - /** data is an app specific data of the NFT. Optional */ - - data?: Any; -} -/** NFT defines the NFT. */ - -export interface NFTSDKType { - class_id: string; - id: string; - uri: string; - uri_hash: string; - data?: AnySDKType; -} - -function createBaseClass(): Class { - return { - id: "", - name: "", - symbol: "", - description: "", - uri: "", - uriHash: "", - data: undefined - }; -} - -export const Class = { - encode(message: Class, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.id !== "") { - writer.uint32(10).string(message.id); - } - - if (message.name !== "") { - writer.uint32(18).string(message.name); - } - - if (message.symbol !== "") { - writer.uint32(26).string(message.symbol); - } - - if (message.description !== "") { - writer.uint32(34).string(message.description); - } - - if (message.uri !== "") { - writer.uint32(42).string(message.uri); - } - - if (message.uriHash !== "") { - writer.uint32(50).string(message.uriHash); - } - - if (message.data !== undefined) { - Any.encode(message.data, writer.uint32(58).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Class { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseClass(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.id = reader.string(); - break; - - case 2: - message.name = reader.string(); - break; - - case 3: - message.symbol = reader.string(); - break; - - case 4: - message.description = reader.string(); - break; - - case 5: - message.uri = reader.string(); - break; - - case 6: - message.uriHash = reader.string(); - break; - - case 7: - message.data = Any.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Class { - const message = createBaseClass(); - message.id = object.id ?? ""; - message.name = object.name ?? ""; - message.symbol = object.symbol ?? ""; - message.description = object.description ?? ""; - message.uri = object.uri ?? ""; - message.uriHash = object.uriHash ?? ""; - message.data = object.data !== undefined && object.data !== null ? Any.fromPartial(object.data) : undefined; - return message; - } - -}; - -function createBaseNFT(): NFT { - return { - classId: "", - id: "", - uri: "", - uriHash: "", - data: undefined - }; -} - -export const NFT = { - encode(message: NFT, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.classId !== "") { - writer.uint32(10).string(message.classId); - } - - if (message.id !== "") { - writer.uint32(18).string(message.id); - } - - if (message.uri !== "") { - writer.uint32(26).string(message.uri); - } - - if (message.uriHash !== "") { - writer.uint32(34).string(message.uriHash); - } - - if (message.data !== undefined) { - Any.encode(message.data, writer.uint32(82).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): NFT { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseNFT(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.classId = reader.string(); - break; - - case 2: - message.id = reader.string(); - break; - - case 3: - message.uri = reader.string(); - break; - - case 4: - message.uriHash = reader.string(); - break; - - case 10: - message.data = Any.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): NFT { - const message = createBaseNFT(); - message.classId = object.classId ?? ""; - message.id = object.id ?? ""; - message.uri = object.uri ?? ""; - message.uriHash = object.uriHash ?? ""; - message.data = object.data !== undefined && object.data !== null ? Any.fromPartial(object.data) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/nft/v1beta1/query.lcd.ts b/packages/codegen/src/cosmos/nft/v1beta1/query.lcd.ts deleted file mode 100644 index ca3a1dc1..00000000 --- a/packages/codegen/src/cosmos/nft/v1beta1/query.lcd.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { setPaginationParams } from "../../../helpers"; -import { LCDClient } from "@osmonauts/lcd"; -import { QueryBalanceRequest, QueryBalanceResponseSDKType, QueryOwnerRequest, QueryOwnerResponseSDKType, QuerySupplyRequest, QuerySupplyResponseSDKType, QueryNFTsRequest, QueryNFTsResponseSDKType, QueryNFTRequest, QueryNFTResponseSDKType, QueryClassRequest, QueryClassResponseSDKType, QueryClassesRequest, QueryClassesResponseSDKType } from "./query"; -export class LCDQueryClient { - req: LCDClient; - - constructor({ - requestClient - }: { - requestClient: LCDClient; - }) { - this.req = requestClient; - this.balance = this.balance.bind(this); - this.owner = this.owner.bind(this); - this.supply = this.supply.bind(this); - this.nFTs = this.nFTs.bind(this); - this.nFT = this.nFT.bind(this); - this.class = this.class.bind(this); - this.classes = this.classes.bind(this); - } - /* Balance queries the number of NFTs of a given class owned by the owner, same as balanceOf in ERC721 */ - - - async balance(params: QueryBalanceRequest): Promise { - const endpoint = `cosmos/nft/v1beta1/balance/${params.owner}/${params.classId}`; - return await this.req.get(endpoint); - } - /* Owner queries the owner of the NFT based on its class and id, same as ownerOf in ERC721 */ - - - async owner(params: QueryOwnerRequest): Promise { - const endpoint = `cosmos/nft/v1beta1/owner/${params.classId}/${params.id}`; - return await this.req.get(endpoint); - } - /* Supply queries the number of NFTs from the given class, same as totalSupply of ERC721. */ - - - async supply(params: QuerySupplyRequest): Promise { - const endpoint = `cosmos/nft/v1beta1/supply/${params.classId}`; - return await this.req.get(endpoint); - } - /* NFTs queries all NFTs of a given class or owner,choose at least one of the two, similar to tokenByIndex in - ERC721Enumerable */ - - - async nFTs(params: QueryNFTsRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.classId !== "undefined") { - options.params.class_id = params.classId; - } - - if (typeof params?.owner !== "undefined") { - options.params.owner = params.owner; - } - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/nft/v1beta1/nfts`; - return await this.req.get(endpoint, options); - } - /* NFT queries an NFT based on its class and id. */ - - - async nFT(params: QueryNFTRequest): Promise { - const endpoint = `cosmos/nft/v1beta1/nfts/${params.classId}/${params.id}`; - return await this.req.get(endpoint); - } - /* Class queries an NFT class based on its id */ - - - async class(params: QueryClassRequest): Promise { - const endpoint = `cosmos/nft/v1beta1/classes/${params.classId}`; - return await this.req.get(endpoint); - } - /* Classes queries all NFT classes */ - - - async classes(params: QueryClassesRequest = { - pagination: undefined - }): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/nft/v1beta1/classes`; - return await this.req.get(endpoint, options); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/nft/v1beta1/query.rpc.Query.ts b/packages/codegen/src/cosmos/nft/v1beta1/query.rpc.Query.ts deleted file mode 100644 index 72e63815..00000000 --- a/packages/codegen/src/cosmos/nft/v1beta1/query.rpc.Query.ts +++ /dev/null @@ -1,124 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { QueryBalanceRequest, QueryBalanceResponse, QueryOwnerRequest, QueryOwnerResponse, QuerySupplyRequest, QuerySupplyResponse, QueryNFTsRequest, QueryNFTsResponse, QueryNFTRequest, QueryNFTResponse, QueryClassRequest, QueryClassResponse, QueryClassesRequest, QueryClassesResponse } from "./query"; -/** Query defines the gRPC querier service. */ - -export interface Query { - /** Balance queries the number of NFTs of a given class owned by the owner, same as balanceOf in ERC721 */ - balance(request: QueryBalanceRequest): Promise; - /** Owner queries the owner of the NFT based on its class and id, same as ownerOf in ERC721 */ - - owner(request: QueryOwnerRequest): Promise; - /** Supply queries the number of NFTs from the given class, same as totalSupply of ERC721. */ - - supply(request: QuerySupplyRequest): Promise; - /** - * NFTs queries all NFTs of a given class or owner,choose at least one of the two, similar to tokenByIndex in - * ERC721Enumerable - */ - - nFTs(request: QueryNFTsRequest): Promise; - /** NFT queries an NFT based on its class and id. */ - - nFT(request: QueryNFTRequest): Promise; - /** Class queries an NFT class based on its id */ - - class(request: QueryClassRequest): Promise; - /** Classes queries all NFT classes */ - - classes(request?: QueryClassesRequest): Promise; -} -export class QueryClientImpl implements Query { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.balance = this.balance.bind(this); - this.owner = this.owner.bind(this); - this.supply = this.supply.bind(this); - this.nFTs = this.nFTs.bind(this); - this.nFT = this.nFT.bind(this); - this.class = this.class.bind(this); - this.classes = this.classes.bind(this); - } - - balance(request: QueryBalanceRequest): Promise { - const data = QueryBalanceRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.nft.v1beta1.Query", "Balance", data); - return promise.then(data => QueryBalanceResponse.decode(new _m0.Reader(data))); - } - - owner(request: QueryOwnerRequest): Promise { - const data = QueryOwnerRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.nft.v1beta1.Query", "Owner", data); - return promise.then(data => QueryOwnerResponse.decode(new _m0.Reader(data))); - } - - supply(request: QuerySupplyRequest): Promise { - const data = QuerySupplyRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.nft.v1beta1.Query", "Supply", data); - return promise.then(data => QuerySupplyResponse.decode(new _m0.Reader(data))); - } - - nFTs(request: QueryNFTsRequest): Promise { - const data = QueryNFTsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.nft.v1beta1.Query", "NFTs", data); - return promise.then(data => QueryNFTsResponse.decode(new _m0.Reader(data))); - } - - nFT(request: QueryNFTRequest): Promise { - const data = QueryNFTRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.nft.v1beta1.Query", "NFT", data); - return promise.then(data => QueryNFTResponse.decode(new _m0.Reader(data))); - } - - class(request: QueryClassRequest): Promise { - const data = QueryClassRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.nft.v1beta1.Query", "Class", data); - return promise.then(data => QueryClassResponse.decode(new _m0.Reader(data))); - } - - classes(request: QueryClassesRequest = { - pagination: undefined - }): Promise { - const data = QueryClassesRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.nft.v1beta1.Query", "Classes", data); - return promise.then(data => QueryClassesResponse.decode(new _m0.Reader(data))); - } - -} -export const createRpcQueryExtension = (base: QueryClient) => { - const rpc = createProtobufRpcClient(base); - const queryService = new QueryClientImpl(rpc); - return { - balance(request: QueryBalanceRequest): Promise { - return queryService.balance(request); - }, - - owner(request: QueryOwnerRequest): Promise { - return queryService.owner(request); - }, - - supply(request: QuerySupplyRequest): Promise { - return queryService.supply(request); - }, - - nFTs(request: QueryNFTsRequest): Promise { - return queryService.nFTs(request); - }, - - nFT(request: QueryNFTRequest): Promise { - return queryService.nFT(request); - }, - - class(request: QueryClassRequest): Promise { - return queryService.class(request); - }, - - classes(request?: QueryClassesRequest): Promise { - return queryService.classes(request); - } - - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/nft/v1beta1/query.ts b/packages/codegen/src/cosmos/nft/v1beta1/query.ts deleted file mode 100644 index 2d72be79..00000000 --- a/packages/codegen/src/cosmos/nft/v1beta1/query.ts +++ /dev/null @@ -1,859 +0,0 @@ -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { NFT, NFTSDKType, Class, ClassSDKType } from "./nft"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** QueryBalanceRequest is the request type for the Query/Balance RPC method */ - -export interface QueryBalanceRequest { - classId: string; - owner: string; -} -/** QueryBalanceRequest is the request type for the Query/Balance RPC method */ - -export interface QueryBalanceRequestSDKType { - class_id: string; - owner: string; -} -/** QueryBalanceResponse is the response type for the Query/Balance RPC method */ - -export interface QueryBalanceResponse { - amount: Long; -} -/** QueryBalanceResponse is the response type for the Query/Balance RPC method */ - -export interface QueryBalanceResponseSDKType { - amount: Long; -} -/** QueryOwnerRequest is the request type for the Query/Owner RPC method */ - -export interface QueryOwnerRequest { - classId: string; - id: string; -} -/** QueryOwnerRequest is the request type for the Query/Owner RPC method */ - -export interface QueryOwnerRequestSDKType { - class_id: string; - id: string; -} -/** QueryOwnerResponse is the response type for the Query/Owner RPC method */ - -export interface QueryOwnerResponse { - owner: string; -} -/** QueryOwnerResponse is the response type for the Query/Owner RPC method */ - -export interface QueryOwnerResponseSDKType { - owner: string; -} -/** QuerySupplyRequest is the request type for the Query/Supply RPC method */ - -export interface QuerySupplyRequest { - classId: string; -} -/** QuerySupplyRequest is the request type for the Query/Supply RPC method */ - -export interface QuerySupplyRequestSDKType { - class_id: string; -} -/** QuerySupplyResponse is the response type for the Query/Supply RPC method */ - -export interface QuerySupplyResponse { - amount: Long; -} -/** QuerySupplyResponse is the response type for the Query/Supply RPC method */ - -export interface QuerySupplyResponseSDKType { - amount: Long; -} -/** QueryNFTstRequest is the request type for the Query/NFTs RPC method */ - -export interface QueryNFTsRequest { - classId: string; - owner: string; - pagination?: PageRequest; -} -/** QueryNFTstRequest is the request type for the Query/NFTs RPC method */ - -export interface QueryNFTsRequestSDKType { - class_id: string; - owner: string; - pagination?: PageRequestSDKType; -} -/** QueryNFTsResponse is the response type for the Query/NFTs RPC methods */ - -export interface QueryNFTsResponse { - nfts: NFT[]; - pagination?: PageResponse; -} -/** QueryNFTsResponse is the response type for the Query/NFTs RPC methods */ - -export interface QueryNFTsResponseSDKType { - nfts: NFTSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryNFTRequest is the request type for the Query/NFT RPC method */ - -export interface QueryNFTRequest { - classId: string; - id: string; -} -/** QueryNFTRequest is the request type for the Query/NFT RPC method */ - -export interface QueryNFTRequestSDKType { - class_id: string; - id: string; -} -/** QueryNFTResponse is the response type for the Query/NFT RPC method */ - -export interface QueryNFTResponse { - nft?: NFT; -} -/** QueryNFTResponse is the response type for the Query/NFT RPC method */ - -export interface QueryNFTResponseSDKType { - nft?: NFTSDKType; -} -/** QueryClassRequest is the request type for the Query/Class RPC method */ - -export interface QueryClassRequest { - classId: string; -} -/** QueryClassRequest is the request type for the Query/Class RPC method */ - -export interface QueryClassRequestSDKType { - class_id: string; -} -/** QueryClassResponse is the response type for the Query/Class RPC method */ - -export interface QueryClassResponse { - class?: Class; -} -/** QueryClassResponse is the response type for the Query/Class RPC method */ - -export interface QueryClassResponseSDKType { - class?: ClassSDKType; -} -/** QueryClassesRequest is the request type for the Query/Classes RPC method */ - -export interface QueryClassesRequest { - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** QueryClassesRequest is the request type for the Query/Classes RPC method */ - -export interface QueryClassesRequestSDKType { - pagination?: PageRequestSDKType; -} -/** QueryClassesResponse is the response type for the Query/Classes RPC method */ - -export interface QueryClassesResponse { - classes: Class[]; - pagination?: PageResponse; -} -/** QueryClassesResponse is the response type for the Query/Classes RPC method */ - -export interface QueryClassesResponseSDKType { - classes: ClassSDKType[]; - pagination?: PageResponseSDKType; -} - -function createBaseQueryBalanceRequest(): QueryBalanceRequest { - return { - classId: "", - owner: "" - }; -} - -export const QueryBalanceRequest = { - encode(message: QueryBalanceRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.classId !== "") { - writer.uint32(10).string(message.classId); - } - - if (message.owner !== "") { - writer.uint32(18).string(message.owner); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryBalanceRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryBalanceRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.classId = reader.string(); - break; - - case 2: - message.owner = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryBalanceRequest { - const message = createBaseQueryBalanceRequest(); - message.classId = object.classId ?? ""; - message.owner = object.owner ?? ""; - return message; - } - -}; - -function createBaseQueryBalanceResponse(): QueryBalanceResponse { - return { - amount: Long.UZERO - }; -} - -export const QueryBalanceResponse = { - encode(message: QueryBalanceResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.amount.isZero()) { - writer.uint32(8).uint64(message.amount); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryBalanceResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryBalanceResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.amount = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryBalanceResponse { - const message = createBaseQueryBalanceResponse(); - message.amount = object.amount !== undefined && object.amount !== null ? Long.fromValue(object.amount) : Long.UZERO; - return message; - } - -}; - -function createBaseQueryOwnerRequest(): QueryOwnerRequest { - return { - classId: "", - id: "" - }; -} - -export const QueryOwnerRequest = { - encode(message: QueryOwnerRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.classId !== "") { - writer.uint32(10).string(message.classId); - } - - if (message.id !== "") { - writer.uint32(18).string(message.id); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryOwnerRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryOwnerRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.classId = reader.string(); - break; - - case 2: - message.id = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryOwnerRequest { - const message = createBaseQueryOwnerRequest(); - message.classId = object.classId ?? ""; - message.id = object.id ?? ""; - return message; - } - -}; - -function createBaseQueryOwnerResponse(): QueryOwnerResponse { - return { - owner: "" - }; -} - -export const QueryOwnerResponse = { - encode(message: QueryOwnerResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.owner !== "") { - writer.uint32(10).string(message.owner); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryOwnerResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryOwnerResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.owner = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryOwnerResponse { - const message = createBaseQueryOwnerResponse(); - message.owner = object.owner ?? ""; - return message; - } - -}; - -function createBaseQuerySupplyRequest(): QuerySupplyRequest { - return { - classId: "" - }; -} - -export const QuerySupplyRequest = { - encode(message: QuerySupplyRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.classId !== "") { - writer.uint32(10).string(message.classId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySupplyRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQuerySupplyRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.classId = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QuerySupplyRequest { - const message = createBaseQuerySupplyRequest(); - message.classId = object.classId ?? ""; - return message; - } - -}; - -function createBaseQuerySupplyResponse(): QuerySupplyResponse { - return { - amount: Long.UZERO - }; -} - -export const QuerySupplyResponse = { - encode(message: QuerySupplyResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.amount.isZero()) { - writer.uint32(8).uint64(message.amount); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySupplyResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQuerySupplyResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.amount = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QuerySupplyResponse { - const message = createBaseQuerySupplyResponse(); - message.amount = object.amount !== undefined && object.amount !== null ? Long.fromValue(object.amount) : Long.UZERO; - return message; - } - -}; - -function createBaseQueryNFTsRequest(): QueryNFTsRequest { - return { - classId: "", - owner: "", - pagination: undefined - }; -} - -export const QueryNFTsRequest = { - encode(message: QueryNFTsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.classId !== "") { - writer.uint32(10).string(message.classId); - } - - if (message.owner !== "") { - writer.uint32(18).string(message.owner); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryNFTsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryNFTsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.classId = reader.string(); - break; - - case 2: - message.owner = reader.string(); - break; - - case 3: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryNFTsRequest { - const message = createBaseQueryNFTsRequest(); - message.classId = object.classId ?? ""; - message.owner = object.owner ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryNFTsResponse(): QueryNFTsResponse { - return { - nfts: [], - pagination: undefined - }; -} - -export const QueryNFTsResponse = { - encode(message: QueryNFTsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.nfts) { - NFT.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryNFTsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryNFTsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.nfts.push(NFT.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryNFTsResponse { - const message = createBaseQueryNFTsResponse(); - message.nfts = object.nfts?.map(e => NFT.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryNFTRequest(): QueryNFTRequest { - return { - classId: "", - id: "" - }; -} - -export const QueryNFTRequest = { - encode(message: QueryNFTRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.classId !== "") { - writer.uint32(10).string(message.classId); - } - - if (message.id !== "") { - writer.uint32(18).string(message.id); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryNFTRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryNFTRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.classId = reader.string(); - break; - - case 2: - message.id = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryNFTRequest { - const message = createBaseQueryNFTRequest(); - message.classId = object.classId ?? ""; - message.id = object.id ?? ""; - return message; - } - -}; - -function createBaseQueryNFTResponse(): QueryNFTResponse { - return { - nft: undefined - }; -} - -export const QueryNFTResponse = { - encode(message: QueryNFTResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.nft !== undefined) { - NFT.encode(message.nft, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryNFTResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryNFTResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.nft = NFT.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryNFTResponse { - const message = createBaseQueryNFTResponse(); - message.nft = object.nft !== undefined && object.nft !== null ? NFT.fromPartial(object.nft) : undefined; - return message; - } - -}; - -function createBaseQueryClassRequest(): QueryClassRequest { - return { - classId: "" - }; -} - -export const QueryClassRequest = { - encode(message: QueryClassRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.classId !== "") { - writer.uint32(10).string(message.classId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClassRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryClassRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.classId = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryClassRequest { - const message = createBaseQueryClassRequest(); - message.classId = object.classId ?? ""; - return message; - } - -}; - -function createBaseQueryClassResponse(): QueryClassResponse { - return { - class: undefined - }; -} - -export const QueryClassResponse = { - encode(message: QueryClassResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.class !== undefined) { - Class.encode(message.class, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClassResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryClassResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.class = Class.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryClassResponse { - const message = createBaseQueryClassResponse(); - message.class = object.class !== undefined && object.class !== null ? Class.fromPartial(object.class) : undefined; - return message; - } - -}; - -function createBaseQueryClassesRequest(): QueryClassesRequest { - return { - pagination: undefined - }; -} - -export const QueryClassesRequest = { - encode(message: QueryClassesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClassesRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryClassesRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryClassesRequest { - const message = createBaseQueryClassesRequest(); - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryClassesResponse(): QueryClassesResponse { - return { - classes: [], - pagination: undefined - }; -} - -export const QueryClassesResponse = { - encode(message: QueryClassesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.classes) { - Class.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClassesResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryClassesResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.classes.push(Class.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryClassesResponse { - const message = createBaseQueryClassesResponse(); - message.classes = object.classes?.map(e => Class.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/nft/v1beta1/tx.rpc.msg.ts b/packages/codegen/src/cosmos/nft/v1beta1/tx.rpc.msg.ts deleted file mode 100644 index b6ad14c7..00000000 --- a/packages/codegen/src/cosmos/nft/v1beta1/tx.rpc.msg.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { MsgSend, MsgSendResponse } from "./tx"; -/** Msg defines the nft Msg service. */ - -export interface Msg { - /** Send defines a method to send a nft from one account to another account. */ - send(request: MsgSend): Promise; -} -export class MsgClientImpl implements Msg { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.send = this.send.bind(this); - } - - send(request: MsgSend): Promise { - const data = MsgSend.encode(request).finish(); - const promise = this.rpc.request("cosmos.nft.v1beta1.Msg", "Send", data); - return promise.then(data => MsgSendResponse.decode(new _m0.Reader(data))); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/nft/v1beta1/tx.ts b/packages/codegen/src/cosmos/nft/v1beta1/tx.ts deleted file mode 100644 index 9bacc67a..00000000 --- a/packages/codegen/src/cosmos/nft/v1beta1/tx.ts +++ /dev/null @@ -1,140 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** MsgSend represents a message to send a nft from one account to another account. */ - -export interface MsgSend { - /** class_id defines the unique identifier of the nft classification, similar to the contract address of ERC721 */ - classId: string; - /** id defines the unique identification of nft */ - - id: string; - /** sender is the address of the owner of nft */ - - sender: string; - /** receiver is the receiver address of nft */ - - receiver: string; -} -/** MsgSend represents a message to send a nft from one account to another account. */ - -export interface MsgSendSDKType { - class_id: string; - id: string; - sender: string; - receiver: string; -} -/** MsgSendResponse defines the Msg/Send response type. */ - -export interface MsgSendResponse {} -/** MsgSendResponse defines the Msg/Send response type. */ - -export interface MsgSendResponseSDKType {} - -function createBaseMsgSend(): MsgSend { - return { - classId: "", - id: "", - sender: "", - receiver: "" - }; -} - -export const MsgSend = { - encode(message: MsgSend, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.classId !== "") { - writer.uint32(10).string(message.classId); - } - - if (message.id !== "") { - writer.uint32(18).string(message.id); - } - - if (message.sender !== "") { - writer.uint32(26).string(message.sender); - } - - if (message.receiver !== "") { - writer.uint32(34).string(message.receiver); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSend { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgSend(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.classId = reader.string(); - break; - - case 2: - message.id = reader.string(); - break; - - case 3: - message.sender = reader.string(); - break; - - case 4: - message.receiver = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgSend { - const message = createBaseMsgSend(); - message.classId = object.classId ?? ""; - message.id = object.id ?? ""; - message.sender = object.sender ?? ""; - message.receiver = object.receiver ?? ""; - return message; - } - -}; - -function createBaseMsgSendResponse(): MsgSendResponse { - return {}; -} - -export const MsgSendResponse = { - encode(_: MsgSendResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSendResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgSendResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgSendResponse { - const message = createBaseMsgSendResponse(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/orm/v1/orm.ts b/packages/codegen/src/cosmos/orm/v1/orm.ts deleted file mode 100644 index c12f6bd6..00000000 --- a/packages/codegen/src/cosmos/orm/v1/orm.ts +++ /dev/null @@ -1,353 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** TableDescriptor describes an ORM table. */ - -export interface TableDescriptor { - /** primary_key defines the primary key for the table. */ - primaryKey?: PrimaryKeyDescriptor; - /** index defines one or more secondary indexes. */ - - index: SecondaryIndexDescriptor[]; - /** - * 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. - */ - - id: number; -} -/** TableDescriptor describes an ORM table. */ - -export interface TableDescriptorSDKType { - primary_key?: PrimaryKeyDescriptorSDKType; - index: SecondaryIndexDescriptorSDKType[]; - id: number; -} -/** PrimaryKeyDescriptor describes a table primary key. */ - -export interface 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 and google.protobuf.Duration are 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. - */ - fields: string; - /** - * 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. - */ - - autoIncrement: boolean; -} -/** PrimaryKeyDescriptor describes a table primary key. */ - -export interface PrimaryKeyDescriptorSDKType { - fields: string; - auto_increment: boolean; -} -/** PrimaryKeyDescriptor describes a table secondary index. */ - -export interface 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 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.. - */ - fields: string; - /** - * 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. - */ - - id: number; - /** unique specifies that this an unique index. */ - - unique: boolean; -} -/** PrimaryKeyDescriptor describes a table secondary index. */ - -export interface SecondaryIndexDescriptorSDKType { - fields: string; - id: number; - unique: boolean; -} -/** TableDescriptor describes an ORM singleton table which has at most one instance. */ - -export interface 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. - */ - id: number; -} -/** TableDescriptor describes an ORM singleton table which has at most one instance. */ - -export interface SingletonDescriptorSDKType { - id: number; -} - -function createBaseTableDescriptor(): TableDescriptor { - return { - primaryKey: undefined, - index: [], - id: 0 - }; -} - -export const TableDescriptor = { - encode(message: TableDescriptor, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.primaryKey !== undefined) { - PrimaryKeyDescriptor.encode(message.primaryKey, writer.uint32(10).fork()).ldelim(); - } - - for (const v of message.index) { - SecondaryIndexDescriptor.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - if (message.id !== 0) { - writer.uint32(24).uint32(message.id); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): TableDescriptor { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTableDescriptor(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.primaryKey = PrimaryKeyDescriptor.decode(reader, reader.uint32()); - break; - - case 2: - message.index.push(SecondaryIndexDescriptor.decode(reader, reader.uint32())); - break; - - case 3: - message.id = reader.uint32(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): TableDescriptor { - const message = createBaseTableDescriptor(); - message.primaryKey = object.primaryKey !== undefined && object.primaryKey !== null ? PrimaryKeyDescriptor.fromPartial(object.primaryKey) : undefined; - message.index = object.index?.map(e => SecondaryIndexDescriptor.fromPartial(e)) || []; - message.id = object.id ?? 0; - return message; - } - -}; - -function createBasePrimaryKeyDescriptor(): PrimaryKeyDescriptor { - return { - fields: "", - autoIncrement: false - }; -} - -export const PrimaryKeyDescriptor = { - encode(message: PrimaryKeyDescriptor, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.fields !== "") { - writer.uint32(10).string(message.fields); - } - - if (message.autoIncrement === true) { - writer.uint32(16).bool(message.autoIncrement); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PrimaryKeyDescriptor { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePrimaryKeyDescriptor(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.fields = reader.string(); - break; - - case 2: - message.autoIncrement = reader.bool(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PrimaryKeyDescriptor { - const message = createBasePrimaryKeyDescriptor(); - message.fields = object.fields ?? ""; - message.autoIncrement = object.autoIncrement ?? false; - return message; - } - -}; - -function createBaseSecondaryIndexDescriptor(): SecondaryIndexDescriptor { - return { - fields: "", - id: 0, - unique: false - }; -} - -export const SecondaryIndexDescriptor = { - encode(message: SecondaryIndexDescriptor, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.fields !== "") { - writer.uint32(10).string(message.fields); - } - - if (message.id !== 0) { - writer.uint32(16).uint32(message.id); - } - - if (message.unique === true) { - writer.uint32(24).bool(message.unique); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SecondaryIndexDescriptor { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSecondaryIndexDescriptor(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.fields = reader.string(); - break; - - case 2: - message.id = reader.uint32(); - break; - - case 3: - message.unique = reader.bool(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SecondaryIndexDescriptor { - const message = createBaseSecondaryIndexDescriptor(); - message.fields = object.fields ?? ""; - message.id = object.id ?? 0; - message.unique = object.unique ?? false; - return message; - } - -}; - -function createBaseSingletonDescriptor(): SingletonDescriptor { - return { - id: 0 - }; -} - -export const SingletonDescriptor = { - encode(message: SingletonDescriptor, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.id !== 0) { - writer.uint32(8).uint32(message.id); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SingletonDescriptor { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSingletonDescriptor(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.id = reader.uint32(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SingletonDescriptor { - const message = createBaseSingletonDescriptor(); - message.id = object.id ?? 0; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/orm/v1alpha1/schema.ts b/packages/codegen/src/cosmos/orm/v1alpha1/schema.ts deleted file mode 100644 index 51df7212..00000000 --- a/packages/codegen/src/cosmos/orm/v1alpha1/schema.ts +++ /dev/null @@ -1,268 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** StorageType */ - -export enum StorageType { - /** - * STORAGE_TYPE_DEFAULT_UNSPECIFIED - STORAGE_TYPE_DEFAULT_UNSPECIFIED indicates the persistent - * KV-storage where primary key entries are stored in merkle-tree - * backed commitment storage and indexes and seqs are stored in - * fast index storage. Note that the Cosmos SDK before store/v2alpha1 - * does not support this. - */ - STORAGE_TYPE_DEFAULT_UNSPECIFIED = 0, - - /** - * STORAGE_TYPE_MEMORY - 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 - 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, - - /** - * STORAGE_TYPE_INDEX - STORAGE_TYPE_INDEX indicates persistent storage which is not backed - * by a merkle-tree and won't affect the app hash. Note that the Cosmos SDK - * before store/v2alpha1 does not support this. - */ - STORAGE_TYPE_INDEX = 3, - - /** - * STORAGE_TYPE_COMMITMENT - STORAGE_TYPE_INDEX indicates persistent storage which is backed by - * a merkle-tree. With this type of storage, both primary and index keys - * will affect the app hash and this is generally less efficient - * than using STORAGE_TYPE_DEFAULT_UNSPECIFIED which separates index - * keys into index storage. Note that modules built with the - * Cosmos SDK before store/v2alpha1 must specify STORAGE_TYPE_COMMITMENT - * instead of STORAGE_TYPE_DEFAULT_UNSPECIFIED or STORAGE_TYPE_INDEX - * because this is the only type of persistent storage available. - */ - STORAGE_TYPE_COMMITMENT = 4, - UNRECOGNIZED = -1, -} -export const StorageTypeSDKType = StorageType; -export function storageTypeFromJSON(object: any): StorageType { - switch (object) { - case 0: - case "STORAGE_TYPE_DEFAULT_UNSPECIFIED": - return StorageType.STORAGE_TYPE_DEFAULT_UNSPECIFIED; - - case 1: - case "STORAGE_TYPE_MEMORY": - return StorageType.STORAGE_TYPE_MEMORY; - - case 2: - case "STORAGE_TYPE_TRANSIENT": - return StorageType.STORAGE_TYPE_TRANSIENT; - - case 3: - case "STORAGE_TYPE_INDEX": - return StorageType.STORAGE_TYPE_INDEX; - - case 4: - case "STORAGE_TYPE_COMMITMENT": - return StorageType.STORAGE_TYPE_COMMITMENT; - - case -1: - case "UNRECOGNIZED": - default: - return StorageType.UNRECOGNIZED; - } -} -export function storageTypeToJSON(object: StorageType): string { - switch (object) { - case StorageType.STORAGE_TYPE_DEFAULT_UNSPECIFIED: - return "STORAGE_TYPE_DEFAULT_UNSPECIFIED"; - - case StorageType.STORAGE_TYPE_MEMORY: - return "STORAGE_TYPE_MEMORY"; - - case StorageType.STORAGE_TYPE_TRANSIENT: - return "STORAGE_TYPE_TRANSIENT"; - - case StorageType.STORAGE_TYPE_INDEX: - return "STORAGE_TYPE_INDEX"; - - case StorageType.STORAGE_TYPE_COMMITMENT: - return "STORAGE_TYPE_COMMITMENT"; - - case StorageType.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** ModuleSchemaDescriptor describe's a module's ORM schema. */ - -export interface ModuleSchemaDescriptor { - schemaFile: ModuleSchemaDescriptor_FileEntry[]; - /** - * prefix is an optional prefix that precedes all keys in this module's - * store. - */ - - prefix: Uint8Array; -} -/** ModuleSchemaDescriptor describe's a module's ORM schema. */ - -export interface ModuleSchemaDescriptorSDKType { - schema_file: ModuleSchemaDescriptor_FileEntrySDKType[]; - prefix: Uint8Array; -} -/** FileEntry describes an ORM file used in a module. */ - -export interface ModuleSchemaDescriptor_FileEntry { - /** - * id is a prefix that will be varint encoded and prepended to all the - * table keys specified in the file's tables. - */ - id: number; - /** - * 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. - */ - - protoFileName: string; - /** - * 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: StorageType; -} -/** FileEntry describes an ORM file used in a module. */ - -export interface ModuleSchemaDescriptor_FileEntrySDKType { - id: number; - proto_file_name: string; - storage_type: StorageType; -} - -function createBaseModuleSchemaDescriptor(): ModuleSchemaDescriptor { - return { - schemaFile: [], - prefix: new Uint8Array() - }; -} - -export const ModuleSchemaDescriptor = { - encode(message: ModuleSchemaDescriptor, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.schemaFile) { - ModuleSchemaDescriptor_FileEntry.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.prefix.length !== 0) { - writer.uint32(18).bytes(message.prefix); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ModuleSchemaDescriptor { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseModuleSchemaDescriptor(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.schemaFile.push(ModuleSchemaDescriptor_FileEntry.decode(reader, reader.uint32())); - break; - - case 2: - message.prefix = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ModuleSchemaDescriptor { - const message = createBaseModuleSchemaDescriptor(); - message.schemaFile = object.schemaFile?.map(e => ModuleSchemaDescriptor_FileEntry.fromPartial(e)) || []; - message.prefix = object.prefix ?? new Uint8Array(); - return message; - } - -}; - -function createBaseModuleSchemaDescriptor_FileEntry(): ModuleSchemaDescriptor_FileEntry { - return { - id: 0, - protoFileName: "", - storageType: 0 - }; -} - -export const ModuleSchemaDescriptor_FileEntry = { - encode(message: ModuleSchemaDescriptor_FileEntry, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.id !== 0) { - writer.uint32(8).uint32(message.id); - } - - if (message.protoFileName !== "") { - writer.uint32(18).string(message.protoFileName); - } - - if (message.storageType !== 0) { - writer.uint32(24).int32(message.storageType); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ModuleSchemaDescriptor_FileEntry { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseModuleSchemaDescriptor_FileEntry(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.id = reader.uint32(); - break; - - case 2: - message.protoFileName = reader.string(); - break; - - case 3: - message.storageType = (reader.int32() as any); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ModuleSchemaDescriptor_FileEntry { - const message = createBaseModuleSchemaDescriptor_FileEntry(); - message.id = object.id ?? 0; - message.protoFileName = object.protoFileName ?? ""; - message.storageType = object.storageType ?? 0; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/params/v1beta1/params.ts b/packages/codegen/src/cosmos/params/v1beta1/params.ts deleted file mode 100644 index 73eaaac5..00000000 --- a/packages/codegen/src/cosmos/params/v1beta1/params.ts +++ /dev/null @@ -1,166 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** ParameterChangeProposal defines a proposal to change one or more parameters. */ - -export interface ParameterChangeProposal { - title: string; - description: string; - changes: ParamChange[]; -} -/** ParameterChangeProposal defines a proposal to change one or more parameters. */ - -export interface ParameterChangeProposalSDKType { - title: string; - description: string; - changes: ParamChangeSDKType[]; -} -/** - * ParamChange defines an individual parameter change, for use in - * ParameterChangeProposal. - */ - -export interface ParamChange { - subspace: string; - key: string; - value: string; -} -/** - * ParamChange defines an individual parameter change, for use in - * ParameterChangeProposal. - */ - -export interface ParamChangeSDKType { - subspace: string; - key: string; - value: string; -} - -function createBaseParameterChangeProposal(): ParameterChangeProposal { - return { - title: "", - description: "", - changes: [] - }; -} - -export const ParameterChangeProposal = { - encode(message: ParameterChangeProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.title !== "") { - writer.uint32(10).string(message.title); - } - - if (message.description !== "") { - writer.uint32(18).string(message.description); - } - - for (const v of message.changes) { - ParamChange.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ParameterChangeProposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseParameterChangeProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.title = reader.string(); - break; - - case 2: - message.description = reader.string(); - break; - - case 3: - message.changes.push(ParamChange.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ParameterChangeProposal { - const message = createBaseParameterChangeProposal(); - message.title = object.title ?? ""; - message.description = object.description ?? ""; - message.changes = object.changes?.map(e => ParamChange.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseParamChange(): ParamChange { - return { - subspace: "", - key: "", - value: "" - }; -} - -export const ParamChange = { - encode(message: ParamChange, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.subspace !== "") { - writer.uint32(10).string(message.subspace); - } - - if (message.key !== "") { - writer.uint32(18).string(message.key); - } - - if (message.value !== "") { - writer.uint32(26).string(message.value); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ParamChange { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseParamChange(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.subspace = reader.string(); - break; - - case 2: - message.key = reader.string(); - break; - - case 3: - message.value = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ParamChange { - const message = createBaseParamChange(); - message.subspace = object.subspace ?? ""; - message.key = object.key ?? ""; - message.value = object.value ?? ""; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/params/v1beta1/query.lcd.ts b/packages/codegen/src/cosmos/params/v1beta1/query.lcd.ts deleted file mode 100644 index 7feab29f..00000000 --- a/packages/codegen/src/cosmos/params/v1beta1/query.lcd.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { QueryParamsRequest, QueryParamsResponseSDKType, QuerySubspacesRequest, QuerySubspacesResponseSDKType } from "./query"; -export class LCDQueryClient { - req: LCDClient; - - constructor({ - requestClient - }: { - requestClient: LCDClient; - }) { - this.req = requestClient; - this.params = this.params.bind(this); - this.subspaces = this.subspaces.bind(this); - } - /* Params queries a specific parameter of a module, given its subspace and - key. */ - - - async params(params: QueryParamsRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.subspace !== "undefined") { - options.params.subspace = params.subspace; - } - - if (typeof params?.key !== "undefined") { - options.params.key = params.key; - } - - const endpoint = `cosmos/params/v1beta1/params`; - return await this.req.get(endpoint, options); - } - /* Subspaces queries for all registered subspaces and all keys for a subspace. */ - - - async subspaces(_params: QuerySubspacesRequest = {}): Promise { - const endpoint = `cosmos/params/v1beta1/subspaces`; - return await this.req.get(endpoint); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/params/v1beta1/query.rpc.Query.ts b/packages/codegen/src/cosmos/params/v1beta1/query.rpc.Query.ts deleted file mode 100644 index 4f505514..00000000 --- a/packages/codegen/src/cosmos/params/v1beta1/query.rpc.Query.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { QueryParamsRequest, QueryParamsResponse, QuerySubspacesRequest, QuerySubspacesResponse } from "./query"; -/** Query defines the gRPC querier service. */ - -export interface Query { - /** - * Params queries a specific parameter of a module, given its subspace and - * key. - */ - params(request: QueryParamsRequest): Promise; - /** Subspaces queries for all registered subspaces and all keys for a subspace. */ - - subspaces(request?: QuerySubspacesRequest): Promise; -} -export class QueryClientImpl implements Query { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.params = this.params.bind(this); - this.subspaces = this.subspaces.bind(this); - } - - params(request: QueryParamsRequest): Promise { - const data = QueryParamsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.params.v1beta1.Query", "Params", data); - return promise.then(data => QueryParamsResponse.decode(new _m0.Reader(data))); - } - - subspaces(request: QuerySubspacesRequest = {}): Promise { - const data = QuerySubspacesRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.params.v1beta1.Query", "Subspaces", data); - return promise.then(data => QuerySubspacesResponse.decode(new _m0.Reader(data))); - } - -} -export const createRpcQueryExtension = (base: QueryClient) => { - const rpc = createProtobufRpcClient(base); - const queryService = new QueryClientImpl(rpc); - return { - params(request: QueryParamsRequest): Promise { - return queryService.params(request); - }, - - subspaces(request?: QuerySubspacesRequest): Promise { - return queryService.subspaces(request); - } - - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/params/v1beta1/query.ts b/packages/codegen/src/cosmos/params/v1beta1/query.ts deleted file mode 100644 index 6501d1c2..00000000 --- a/packages/codegen/src/cosmos/params/v1beta1/query.ts +++ /dev/null @@ -1,309 +0,0 @@ -import { ParamChange, ParamChangeSDKType } from "./params"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** QueryParamsRequest is request type for the Query/Params RPC method. */ - -export interface QueryParamsRequest { - /** subspace defines the module to query the parameter for. */ - subspace: string; - /** key defines the key of the parameter in the subspace. */ - - key: string; -} -/** QueryParamsRequest is request type for the Query/Params RPC method. */ - -export interface QueryParamsRequestSDKType { - subspace: string; - key: string; -} -/** QueryParamsResponse is response type for the Query/Params RPC method. */ - -export interface QueryParamsResponse { - /** param defines the queried parameter. */ - param?: ParamChange; -} -/** QueryParamsResponse is response type for the Query/Params RPC method. */ - -export interface QueryParamsResponseSDKType { - param?: ParamChangeSDKType; -} -/** - * QuerySubspacesRequest defines a request type for querying for all registered - * subspaces and all keys for a subspace. - */ - -export interface QuerySubspacesRequest {} -/** - * QuerySubspacesRequest defines a request type for querying for all registered - * subspaces and all keys for a subspace. - */ - -export interface QuerySubspacesRequestSDKType {} -/** - * QuerySubspacesResponse defines the response types for querying for all - * registered subspaces and all keys for a subspace. - */ - -export interface QuerySubspacesResponse { - subspaces: Subspace[]; -} -/** - * QuerySubspacesResponse defines the response types for querying for all - * registered subspaces and all keys for a subspace. - */ - -export interface QuerySubspacesResponseSDKType { - subspaces: SubspaceSDKType[]; -} -/** - * Subspace defines a parameter subspace name and all the keys that exist for - * the subspace. - */ - -export interface Subspace { - subspace: string; - keys: string[]; -} -/** - * Subspace defines a parameter subspace name and all the keys that exist for - * the subspace. - */ - -export interface SubspaceSDKType { - subspace: string; - keys: string[]; -} - -function createBaseQueryParamsRequest(): QueryParamsRequest { - return { - subspace: "", - key: "" - }; -} - -export const QueryParamsRequest = { - encode(message: QueryParamsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.subspace !== "") { - writer.uint32(10).string(message.subspace); - } - - if (message.key !== "") { - writer.uint32(18).string(message.key); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.subspace = reader.string(); - break; - - case 2: - message.key = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryParamsRequest { - const message = createBaseQueryParamsRequest(); - message.subspace = object.subspace ?? ""; - message.key = object.key ?? ""; - return message; - } - -}; - -function createBaseQueryParamsResponse(): QueryParamsResponse { - return { - param: undefined - }; -} - -export const QueryParamsResponse = { - encode(message: QueryParamsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.param !== undefined) { - ParamChange.encode(message.param, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.param = ParamChange.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryParamsResponse { - const message = createBaseQueryParamsResponse(); - message.param = object.param !== undefined && object.param !== null ? ParamChange.fromPartial(object.param) : undefined; - return message; - } - -}; - -function createBaseQuerySubspacesRequest(): QuerySubspacesRequest { - return {}; -} - -export const QuerySubspacesRequest = { - encode(_: QuerySubspacesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySubspacesRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQuerySubspacesRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): QuerySubspacesRequest { - const message = createBaseQuerySubspacesRequest(); - return message; - } - -}; - -function createBaseQuerySubspacesResponse(): QuerySubspacesResponse { - return { - subspaces: [] - }; -} - -export const QuerySubspacesResponse = { - encode(message: QuerySubspacesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.subspaces) { - Subspace.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySubspacesResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQuerySubspacesResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.subspaces.push(Subspace.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QuerySubspacesResponse { - const message = createBaseQuerySubspacesResponse(); - message.subspaces = object.subspaces?.map(e => Subspace.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseSubspace(): Subspace { - return { - subspace: "", - keys: [] - }; -} - -export const Subspace = { - encode(message: Subspace, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.subspace !== "") { - writer.uint32(10).string(message.subspace); - } - - for (const v of message.keys) { - writer.uint32(18).string(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Subspace { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSubspace(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.subspace = reader.string(); - break; - - case 2: - message.keys.push(reader.string()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Subspace { - const message = createBaseSubspace(); - message.subspace = object.subspace ?? ""; - message.keys = object.keys?.map(e => e) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/rpc.query.ts b/packages/codegen/src/cosmos/rpc.query.ts deleted file mode 100644 index ac1a16a8..00000000 --- a/packages/codegen/src/cosmos/rpc.query.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { Tendermint34Client, HttpEndpoint } from "@cosmjs/tendermint-rpc"; -import { QueryClient } from "@cosmjs/stargate"; -export const createRPCQueryClient = async ({ - rpcEndpoint -}: { - rpcEndpoint: string | HttpEndpoint; -}) => { - const tmClient = await Tendermint34Client.connect(rpcEndpoint); - const client = new QueryClient(tmClient); - return { - cosmos: { - app: { - v1alpha1: (await import("./app/v1alpha1/query.rpc.Query")).createRpcQueryExtension(client) - }, - auth: { - v1beta1: (await import("./auth/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - authz: { - v1beta1: (await import("./authz/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - bank: { - v1beta1: (await import("./bank/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - base: { - tendermint: { - v1beta1: (await import("./base/tendermint/v1beta1/query.rpc.Service")).createRpcQueryExtension(client) - } - }, - distribution: { - v1beta1: (await import("./distribution/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - evidence: { - v1beta1: (await import("./evidence/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - feegrant: { - v1beta1: (await import("./feegrant/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - gov: { - v1: (await import("./gov/v1/query.rpc.Query")).createRpcQueryExtension(client), - v1beta1: (await import("./gov/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - group: { - v1: (await import("./group/v1/query.rpc.Query")).createRpcQueryExtension(client) - }, - mint: { - v1beta1: (await import("./mint/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - nft: { - v1beta1: (await import("./nft/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - params: { - v1beta1: (await import("./params/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - slashing: { - v1beta1: (await import("./slashing/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - staking: { - v1beta1: (await import("./staking/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - tx: { - v1beta1: (await import("./tx/v1beta1/service.rpc.Service")).createRpcQueryExtension(client) - }, - upgrade: { - v1beta1: (await import("./upgrade/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - } - } - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/rpc.tx.ts b/packages/codegen/src/cosmos/rpc.tx.ts deleted file mode 100644 index 3a4dbf9b..00000000 --- a/packages/codegen/src/cosmos/rpc.tx.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { Rpc } from "../helpers"; -export const createRPCMsgClient = async ({ - rpc -}: { - rpc: Rpc; -}) => ({ - cosmos: { - authz: { - v1beta1: new (await import("./authz/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - bank: { - v1beta1: new (await import("./bank/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - crisis: { - v1beta1: new (await import("./crisis/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - distribution: { - v1beta1: new (await import("./distribution/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - evidence: { - v1beta1: new (await import("./evidence/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - feegrant: { - v1beta1: new (await import("./feegrant/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - gov: { - v1: new (await import("./gov/v1/tx.rpc.msg")).MsgClientImpl(rpc), - v1beta1: new (await import("./gov/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - group: { - v1: new (await import("./group/v1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - nft: { - v1beta1: new (await import("./nft/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - slashing: { - v1beta1: new (await import("./slashing/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - staking: { - v1beta1: new (await import("./staking/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - upgrade: { - v1beta1: new (await import("./upgrade/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - vesting: { - v1beta1: new (await import("./vesting/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - } - } -}); \ No newline at end of file diff --git a/packages/codegen/src/cosmos/slashing/v1beta1/genesis.ts b/packages/codegen/src/cosmos/slashing/v1beta1/genesis.ts deleted file mode 100644 index ef677c7b..00000000 --- a/packages/codegen/src/cosmos/slashing/v1beta1/genesis.ts +++ /dev/null @@ -1,309 +0,0 @@ -import { Params, ParamsSDKType, ValidatorSigningInfo, ValidatorSigningInfoSDKType } from "./slashing"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** GenesisState defines the slashing module's genesis state. */ - -export interface GenesisState { - /** params defines all the paramaters of related to deposit. */ - params?: Params; - /** - * signing_infos represents a map between validator addresses and their - * signing infos. - */ - - signingInfos: SigningInfo[]; - /** - * missed_blocks represents a map between validator addresses and their - * missed blocks. - */ - - missedBlocks: ValidatorMissedBlocks[]; -} -/** GenesisState defines the slashing module's genesis state. */ - -export interface GenesisStateSDKType { - params?: ParamsSDKType; - signing_infos: SigningInfoSDKType[]; - missed_blocks: ValidatorMissedBlocksSDKType[]; -} -/** SigningInfo stores validator signing info of corresponding address. */ - -export interface SigningInfo { - /** address is the validator address. */ - address: string; - /** validator_signing_info represents the signing info of this validator. */ - - validatorSigningInfo?: ValidatorSigningInfo; -} -/** SigningInfo stores validator signing info of corresponding address. */ - -export interface SigningInfoSDKType { - address: string; - validator_signing_info?: ValidatorSigningInfoSDKType; -} -/** - * ValidatorMissedBlocks contains array of missed blocks of corresponding - * address. - */ - -export interface ValidatorMissedBlocks { - /** address is the validator address. */ - address: string; - /** missed_blocks is an array of missed blocks by the validator. */ - - missedBlocks: MissedBlock[]; -} -/** - * ValidatorMissedBlocks contains array of missed blocks of corresponding - * address. - */ - -export interface ValidatorMissedBlocksSDKType { - address: string; - missed_blocks: MissedBlockSDKType[]; -} -/** MissedBlock contains height and missed status as boolean. */ - -export interface MissedBlock { - /** index is the height at which the block was missed. */ - index: Long; - /** missed is the missed status. */ - - missed: boolean; -} -/** MissedBlock contains height and missed status as boolean. */ - -export interface MissedBlockSDKType { - index: Long; - missed: boolean; -} - -function createBaseGenesisState(): GenesisState { - return { - params: undefined, - signingInfos: [], - missedBlocks: [] - }; -} - -export const GenesisState = { - encode(message: GenesisState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.params !== undefined) { - Params.encode(message.params, writer.uint32(10).fork()).ldelim(); - } - - for (const v of message.signingInfos) { - SigningInfo.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - for (const v of message.missedBlocks) { - ValidatorMissedBlocks.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.params = Params.decode(reader, reader.uint32()); - break; - - case 2: - message.signingInfos.push(SigningInfo.decode(reader, reader.uint32())); - break; - - case 3: - message.missedBlocks.push(ValidatorMissedBlocks.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenesisState { - const message = createBaseGenesisState(); - message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined; - message.signingInfos = object.signingInfos?.map(e => SigningInfo.fromPartial(e)) || []; - message.missedBlocks = object.missedBlocks?.map(e => ValidatorMissedBlocks.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseSigningInfo(): SigningInfo { - return { - address: "", - validatorSigningInfo: undefined - }; -} - -export const SigningInfo = { - encode(message: SigningInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - if (message.validatorSigningInfo !== undefined) { - ValidatorSigningInfo.encode(message.validatorSigningInfo, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SigningInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSigningInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.validatorSigningInfo = ValidatorSigningInfo.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SigningInfo { - const message = createBaseSigningInfo(); - message.address = object.address ?? ""; - message.validatorSigningInfo = object.validatorSigningInfo !== undefined && object.validatorSigningInfo !== null ? ValidatorSigningInfo.fromPartial(object.validatorSigningInfo) : undefined; - return message; - } - -}; - -function createBaseValidatorMissedBlocks(): ValidatorMissedBlocks { - return { - address: "", - missedBlocks: [] - }; -} - -export const ValidatorMissedBlocks = { - encode(message: ValidatorMissedBlocks, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - for (const v of message.missedBlocks) { - MissedBlock.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorMissedBlocks { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidatorMissedBlocks(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.missedBlocks.push(MissedBlock.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ValidatorMissedBlocks { - const message = createBaseValidatorMissedBlocks(); - message.address = object.address ?? ""; - message.missedBlocks = object.missedBlocks?.map(e => MissedBlock.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseMissedBlock(): MissedBlock { - return { - index: Long.ZERO, - missed: false - }; -} - -export const MissedBlock = { - encode(message: MissedBlock, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.index.isZero()) { - writer.uint32(8).int64(message.index); - } - - if (message.missed === true) { - writer.uint32(16).bool(message.missed); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MissedBlock { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMissedBlock(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.index = (reader.int64() as Long); - break; - - case 2: - message.missed = reader.bool(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MissedBlock { - const message = createBaseMissedBlock(); - message.index = object.index !== undefined && object.index !== null ? Long.fromValue(object.index) : Long.ZERO; - message.missed = object.missed ?? false; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/slashing/v1beta1/query.lcd.ts b/packages/codegen/src/cosmos/slashing/v1beta1/query.lcd.ts deleted file mode 100644 index 346fd6cc..00000000 --- a/packages/codegen/src/cosmos/slashing/v1beta1/query.lcd.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { setPaginationParams } from "../../../helpers"; -import { LCDClient } from "@osmonauts/lcd"; -import { QueryParamsRequest, QueryParamsResponseSDKType, QuerySigningInfoRequest, QuerySigningInfoResponseSDKType, QuerySigningInfosRequest, QuerySigningInfosResponseSDKType } from "./query"; -export class LCDQueryClient { - req: LCDClient; - - constructor({ - requestClient - }: { - requestClient: LCDClient; - }) { - this.req = requestClient; - this.params = this.params.bind(this); - this.signingInfo = this.signingInfo.bind(this); - this.signingInfos = this.signingInfos.bind(this); - } - /* Params queries the parameters of slashing module */ - - - async params(_params: QueryParamsRequest = {}): Promise { - const endpoint = `cosmos/slashing/v1beta1/params`; - return await this.req.get(endpoint); - } - /* SigningInfo queries the signing info of given cons address */ - - - async signingInfo(params: QuerySigningInfoRequest): Promise { - const endpoint = `cosmos/slashing/v1beta1/signing_infos/${params.consAddress}`; - return await this.req.get(endpoint); - } - /* SigningInfos queries signing info of all validators */ - - - async signingInfos(params: QuerySigningInfosRequest = { - pagination: undefined - }): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/slashing/v1beta1/signing_infos`; - return await this.req.get(endpoint, options); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/slashing/v1beta1/query.rpc.Query.ts b/packages/codegen/src/cosmos/slashing/v1beta1/query.rpc.Query.ts deleted file mode 100644 index 94cb5ce4..00000000 --- a/packages/codegen/src/cosmos/slashing/v1beta1/query.rpc.Query.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { QueryParamsRequest, QueryParamsResponse, QuerySigningInfoRequest, QuerySigningInfoResponse, QuerySigningInfosRequest, QuerySigningInfosResponse } from "./query"; -/** Query provides defines the gRPC querier service */ - -export interface Query { - /** Params queries the parameters of slashing module */ - params(request?: QueryParamsRequest): Promise; - /** SigningInfo queries the signing info of given cons address */ - - signingInfo(request: QuerySigningInfoRequest): Promise; - /** SigningInfos queries signing info of all validators */ - - signingInfos(request?: QuerySigningInfosRequest): Promise; -} -export class QueryClientImpl implements Query { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.params = this.params.bind(this); - this.signingInfo = this.signingInfo.bind(this); - this.signingInfos = this.signingInfos.bind(this); - } - - params(request: QueryParamsRequest = {}): Promise { - const data = QueryParamsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.slashing.v1beta1.Query", "Params", data); - return promise.then(data => QueryParamsResponse.decode(new _m0.Reader(data))); - } - - signingInfo(request: QuerySigningInfoRequest): Promise { - const data = QuerySigningInfoRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.slashing.v1beta1.Query", "SigningInfo", data); - return promise.then(data => QuerySigningInfoResponse.decode(new _m0.Reader(data))); - } - - signingInfos(request: QuerySigningInfosRequest = { - pagination: undefined - }): Promise { - const data = QuerySigningInfosRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.slashing.v1beta1.Query", "SigningInfos", data); - return promise.then(data => QuerySigningInfosResponse.decode(new _m0.Reader(data))); - } - -} -export const createRpcQueryExtension = (base: QueryClient) => { - const rpc = createProtobufRpcClient(base); - const queryService = new QueryClientImpl(rpc); - return { - params(request?: QueryParamsRequest): Promise { - return queryService.params(request); - }, - - signingInfo(request: QuerySigningInfoRequest): Promise { - return queryService.signingInfo(request); - }, - - signingInfos(request?: QuerySigningInfosRequest): Promise { - return queryService.signingInfos(request); - } - - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/slashing/v1beta1/query.ts b/packages/codegen/src/cosmos/slashing/v1beta1/query.ts deleted file mode 100644 index 98dd5ea5..00000000 --- a/packages/codegen/src/cosmos/slashing/v1beta1/query.ts +++ /dev/null @@ -1,358 +0,0 @@ -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { Params, ParamsSDKType, ValidatorSigningInfo, ValidatorSigningInfoSDKType } from "./slashing"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** QueryParamsRequest is the request type for the Query/Params RPC method */ - -export interface QueryParamsRequest {} -/** QueryParamsRequest is the request type for the Query/Params RPC method */ - -export interface QueryParamsRequestSDKType {} -/** QueryParamsResponse is the response type for the Query/Params RPC method */ - -export interface QueryParamsResponse { - params?: Params; -} -/** QueryParamsResponse is the response type for the Query/Params RPC method */ - -export interface QueryParamsResponseSDKType { - params?: ParamsSDKType; -} -/** - * QuerySigningInfoRequest is the request type for the Query/SigningInfo RPC - * method - */ - -export interface QuerySigningInfoRequest { - /** cons_address is the address to query signing info of */ - consAddress: string; -} -/** - * QuerySigningInfoRequest is the request type for the Query/SigningInfo RPC - * method - */ - -export interface QuerySigningInfoRequestSDKType { - cons_address: string; -} -/** - * QuerySigningInfoResponse is the response type for the Query/SigningInfo RPC - * method - */ - -export interface QuerySigningInfoResponse { - /** val_signing_info is the signing info of requested val cons address */ - valSigningInfo?: ValidatorSigningInfo; -} -/** - * QuerySigningInfoResponse is the response type for the Query/SigningInfo RPC - * method - */ - -export interface QuerySigningInfoResponseSDKType { - val_signing_info?: ValidatorSigningInfoSDKType; -} -/** - * QuerySigningInfosRequest is the request type for the Query/SigningInfos RPC - * method - */ - -export interface QuerySigningInfosRequest { - pagination?: PageRequest; -} -/** - * QuerySigningInfosRequest is the request type for the Query/SigningInfos RPC - * method - */ - -export interface QuerySigningInfosRequestSDKType { - pagination?: PageRequestSDKType; -} -/** - * QuerySigningInfosResponse is the response type for the Query/SigningInfos RPC - * method - */ - -export interface QuerySigningInfosResponse { - /** info is the signing info of all validators */ - info: ValidatorSigningInfo[]; - pagination?: PageResponse; -} -/** - * QuerySigningInfosResponse is the response type for the Query/SigningInfos RPC - * method - */ - -export interface QuerySigningInfosResponseSDKType { - info: ValidatorSigningInfoSDKType[]; - pagination?: PageResponseSDKType; -} - -function createBaseQueryParamsRequest(): QueryParamsRequest { - return {}; -} - -export const QueryParamsRequest = { - encode(_: QueryParamsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): QueryParamsRequest { - const message = createBaseQueryParamsRequest(); - return message; - } - -}; - -function createBaseQueryParamsResponse(): QueryParamsResponse { - return { - params: undefined - }; -} - -export const QueryParamsResponse = { - encode(message: QueryParamsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.params !== undefined) { - Params.encode(message.params, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.params = Params.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryParamsResponse { - const message = createBaseQueryParamsResponse(); - message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined; - return message; - } - -}; - -function createBaseQuerySigningInfoRequest(): QuerySigningInfoRequest { - return { - consAddress: "" - }; -} - -export const QuerySigningInfoRequest = { - encode(message: QuerySigningInfoRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.consAddress !== "") { - writer.uint32(10).string(message.consAddress); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySigningInfoRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQuerySigningInfoRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.consAddress = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QuerySigningInfoRequest { - const message = createBaseQuerySigningInfoRequest(); - message.consAddress = object.consAddress ?? ""; - return message; - } - -}; - -function createBaseQuerySigningInfoResponse(): QuerySigningInfoResponse { - return { - valSigningInfo: undefined - }; -} - -export const QuerySigningInfoResponse = { - encode(message: QuerySigningInfoResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.valSigningInfo !== undefined) { - ValidatorSigningInfo.encode(message.valSigningInfo, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySigningInfoResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQuerySigningInfoResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.valSigningInfo = ValidatorSigningInfo.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QuerySigningInfoResponse { - const message = createBaseQuerySigningInfoResponse(); - message.valSigningInfo = object.valSigningInfo !== undefined && object.valSigningInfo !== null ? ValidatorSigningInfo.fromPartial(object.valSigningInfo) : undefined; - return message; - } - -}; - -function createBaseQuerySigningInfosRequest(): QuerySigningInfosRequest { - return { - pagination: undefined - }; -} - -export const QuerySigningInfosRequest = { - encode(message: QuerySigningInfosRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySigningInfosRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQuerySigningInfosRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QuerySigningInfosRequest { - const message = createBaseQuerySigningInfosRequest(); - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQuerySigningInfosResponse(): QuerySigningInfosResponse { - return { - info: [], - pagination: undefined - }; -} - -export const QuerySigningInfosResponse = { - encode(message: QuerySigningInfosResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.info) { - ValidatorSigningInfo.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySigningInfosResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQuerySigningInfosResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.info.push(ValidatorSigningInfo.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QuerySigningInfosResponse { - const message = createBaseQuerySigningInfosResponse(); - message.info = object.info?.map(e => ValidatorSigningInfo.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/slashing/v1beta1/slashing.ts b/packages/codegen/src/cosmos/slashing/v1beta1/slashing.ts deleted file mode 100644 index 9ef07b05..00000000 --- a/packages/codegen/src/cosmos/slashing/v1beta1/slashing.ts +++ /dev/null @@ -1,248 +0,0 @@ -import { Timestamp } from "../../../google/protobuf/timestamp"; -import { Duration, DurationSDKType } from "../../../google/protobuf/duration"; -import { Long, toTimestamp, fromTimestamp, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * ValidatorSigningInfo defines a validator's signing info for monitoring their - * liveness activity. - */ - -export interface ValidatorSigningInfo { - address: string; - /** Height at which validator was first a candidate OR was unjailed */ - - startHeight: Long; - /** - * Index which is incremented each time the validator was a bonded - * in a block and may have signed a precommit or not. This in conjunction with the - * `SignedBlocksWindow` param determines the index in the `MissedBlocksBitArray`. - */ - - indexOffset: Long; - /** Timestamp until which the validator is jailed due to liveness downtime. */ - - jailedUntil?: Date; - /** - * 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 misbehiavor. - */ - - tombstoned: boolean; - /** - * A counter kept to avoid unnecessary array reads. - * Note that `Sum(MissedBlocksBitArray)` always equals `MissedBlocksCounter`. - */ - - missedBlocksCounter: Long; -} -/** - * ValidatorSigningInfo defines a validator's signing info for monitoring their - * liveness activity. - */ - -export interface ValidatorSigningInfoSDKType { - address: string; - start_height: Long; - index_offset: Long; - jailed_until?: Date; - tombstoned: boolean; - missed_blocks_counter: Long; -} -/** Params represents the parameters used for by the slashing module. */ - -export interface Params { - signedBlocksWindow: Long; - minSignedPerWindow: Uint8Array; - downtimeJailDuration?: Duration; - slashFractionDoubleSign: Uint8Array; - slashFractionDowntime: Uint8Array; -} -/** Params represents the parameters used for by the slashing module. */ - -export interface ParamsSDKType { - signed_blocks_window: Long; - min_signed_per_window: Uint8Array; - downtime_jail_duration?: DurationSDKType; - slash_fraction_double_sign: Uint8Array; - slash_fraction_downtime: Uint8Array; -} - -function createBaseValidatorSigningInfo(): ValidatorSigningInfo { - return { - address: "", - startHeight: Long.ZERO, - indexOffset: Long.ZERO, - jailedUntil: undefined, - tombstoned: false, - missedBlocksCounter: Long.ZERO - }; -} - -export const ValidatorSigningInfo = { - encode(message: ValidatorSigningInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - if (!message.startHeight.isZero()) { - writer.uint32(16).int64(message.startHeight); - } - - if (!message.indexOffset.isZero()) { - writer.uint32(24).int64(message.indexOffset); - } - - if (message.jailedUntil !== undefined) { - Timestamp.encode(toTimestamp(message.jailedUntil), writer.uint32(34).fork()).ldelim(); - } - - if (message.tombstoned === true) { - writer.uint32(40).bool(message.tombstoned); - } - - if (!message.missedBlocksCounter.isZero()) { - writer.uint32(48).int64(message.missedBlocksCounter); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorSigningInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidatorSigningInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.startHeight = (reader.int64() as Long); - break; - - case 3: - message.indexOffset = (reader.int64() as Long); - break; - - case 4: - message.jailedUntil = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - case 5: - message.tombstoned = reader.bool(); - break; - - case 6: - message.missedBlocksCounter = (reader.int64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ValidatorSigningInfo { - const message = createBaseValidatorSigningInfo(); - message.address = object.address ?? ""; - message.startHeight = object.startHeight !== undefined && object.startHeight !== null ? Long.fromValue(object.startHeight) : Long.ZERO; - message.indexOffset = object.indexOffset !== undefined && object.indexOffset !== null ? Long.fromValue(object.indexOffset) : Long.ZERO; - message.jailedUntil = object.jailedUntil ?? undefined; - message.tombstoned = object.tombstoned ?? false; - message.missedBlocksCounter = object.missedBlocksCounter !== undefined && object.missedBlocksCounter !== null ? Long.fromValue(object.missedBlocksCounter) : Long.ZERO; - return message; - } - -}; - -function createBaseParams(): Params { - return { - signedBlocksWindow: Long.ZERO, - minSignedPerWindow: new Uint8Array(), - downtimeJailDuration: undefined, - slashFractionDoubleSign: new Uint8Array(), - slashFractionDowntime: new Uint8Array() - }; -} - -export const Params = { - encode(message: Params, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.signedBlocksWindow.isZero()) { - writer.uint32(8).int64(message.signedBlocksWindow); - } - - if (message.minSignedPerWindow.length !== 0) { - writer.uint32(18).bytes(message.minSignedPerWindow); - } - - if (message.downtimeJailDuration !== undefined) { - Duration.encode(message.downtimeJailDuration, writer.uint32(26).fork()).ldelim(); - } - - if (message.slashFractionDoubleSign.length !== 0) { - writer.uint32(34).bytes(message.slashFractionDoubleSign); - } - - if (message.slashFractionDowntime.length !== 0) { - writer.uint32(42).bytes(message.slashFractionDowntime); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Params { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseParams(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.signedBlocksWindow = (reader.int64() as Long); - break; - - case 2: - message.minSignedPerWindow = reader.bytes(); - break; - - case 3: - message.downtimeJailDuration = Duration.decode(reader, reader.uint32()); - break; - - case 4: - message.slashFractionDoubleSign = reader.bytes(); - break; - - case 5: - message.slashFractionDowntime = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Params { - const message = createBaseParams(); - message.signedBlocksWindow = object.signedBlocksWindow !== undefined && object.signedBlocksWindow !== null ? Long.fromValue(object.signedBlocksWindow) : Long.ZERO; - message.minSignedPerWindow = object.minSignedPerWindow ?? new Uint8Array(); - message.downtimeJailDuration = object.downtimeJailDuration !== undefined && object.downtimeJailDuration !== null ? Duration.fromPartial(object.downtimeJailDuration) : undefined; - message.slashFractionDoubleSign = object.slashFractionDoubleSign ?? new Uint8Array(); - message.slashFractionDowntime = object.slashFractionDowntime ?? new Uint8Array(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/slashing/v1beta1/tx.rpc.msg.ts b/packages/codegen/src/cosmos/slashing/v1beta1/tx.rpc.msg.ts deleted file mode 100644 index 622712b3..00000000 --- a/packages/codegen/src/cosmos/slashing/v1beta1/tx.rpc.msg.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { MsgUnjail, MsgUnjailResponse } from "./tx"; -/** Msg defines the slashing Msg service. */ - -export interface Msg { - /** - * 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. - */ - unjail(request: MsgUnjail): Promise; -} -export class MsgClientImpl implements Msg { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.unjail = this.unjail.bind(this); - } - - unjail(request: MsgUnjail): Promise { - const data = MsgUnjail.encode(request).finish(); - const promise = this.rpc.request("cosmos.slashing.v1beta1.Msg", "Unjail", data); - return promise.then(data => MsgUnjailResponse.decode(new _m0.Reader(data))); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/slashing/v1beta1/tx.ts b/packages/codegen/src/cosmos/slashing/v1beta1/tx.ts deleted file mode 100644 index 2a7e57ef..00000000 --- a/packages/codegen/src/cosmos/slashing/v1beta1/tx.ts +++ /dev/null @@ -1,97 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** MsgUnjail defines the Msg/Unjail request type */ - -export interface MsgUnjail { - validatorAddr: string; -} -/** MsgUnjail defines the Msg/Unjail request type */ - -export interface MsgUnjailSDKType { - validator_addr: string; -} -/** MsgUnjailResponse defines the Msg/Unjail response type */ - -export interface MsgUnjailResponse {} -/** MsgUnjailResponse defines the Msg/Unjail response type */ - -export interface MsgUnjailResponseSDKType {} - -function createBaseMsgUnjail(): MsgUnjail { - return { - validatorAddr: "" - }; -} - -export const MsgUnjail = { - encode(message: MsgUnjail, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.validatorAddr !== "") { - writer.uint32(10).string(message.validatorAddr); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUnjail { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUnjail(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.validatorAddr = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgUnjail { - const message = createBaseMsgUnjail(); - message.validatorAddr = object.validatorAddr ?? ""; - return message; - } - -}; - -function createBaseMsgUnjailResponse(): MsgUnjailResponse { - return {}; -} - -export const MsgUnjailResponse = { - encode(_: MsgUnjailResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUnjailResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUnjailResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgUnjailResponse { - const message = createBaseMsgUnjailResponse(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/staking/v1beta1/authz.ts b/packages/codegen/src/cosmos/staking/v1beta1/authz.ts deleted file mode 100644 index 4be02b69..00000000 --- a/packages/codegen/src/cosmos/staking/v1beta1/authz.ts +++ /dev/null @@ -1,234 +0,0 @@ -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * AuthorizationType defines the type of staking module authorization type - * - * Since: cosmos-sdk 0.43 - */ - -export enum AuthorizationType { - /** AUTHORIZATION_TYPE_UNSPECIFIED - AUTHORIZATION_TYPE_UNSPECIFIED specifies an unknown authorization type */ - AUTHORIZATION_TYPE_UNSPECIFIED = 0, - - /** AUTHORIZATION_TYPE_DELEGATE - AUTHORIZATION_TYPE_DELEGATE defines an authorization type for Msg/Delegate */ - AUTHORIZATION_TYPE_DELEGATE = 1, - - /** AUTHORIZATION_TYPE_UNDELEGATE - AUTHORIZATION_TYPE_UNDELEGATE defines an authorization type for Msg/Undelegate */ - AUTHORIZATION_TYPE_UNDELEGATE = 2, - - /** AUTHORIZATION_TYPE_REDELEGATE - AUTHORIZATION_TYPE_REDELEGATE defines an authorization type for Msg/BeginRedelegate */ - AUTHORIZATION_TYPE_REDELEGATE = 3, - UNRECOGNIZED = -1, -} -export const AuthorizationTypeSDKType = AuthorizationType; -export function authorizationTypeFromJSON(object: any): AuthorizationType { - switch (object) { - case 0: - case "AUTHORIZATION_TYPE_UNSPECIFIED": - return AuthorizationType.AUTHORIZATION_TYPE_UNSPECIFIED; - - case 1: - case "AUTHORIZATION_TYPE_DELEGATE": - return AuthorizationType.AUTHORIZATION_TYPE_DELEGATE; - - case 2: - case "AUTHORIZATION_TYPE_UNDELEGATE": - return AuthorizationType.AUTHORIZATION_TYPE_UNDELEGATE; - - case 3: - case "AUTHORIZATION_TYPE_REDELEGATE": - return AuthorizationType.AUTHORIZATION_TYPE_REDELEGATE; - - case -1: - case "UNRECOGNIZED": - default: - return AuthorizationType.UNRECOGNIZED; - } -} -export function authorizationTypeToJSON(object: AuthorizationType): string { - switch (object) { - case AuthorizationType.AUTHORIZATION_TYPE_UNSPECIFIED: - return "AUTHORIZATION_TYPE_UNSPECIFIED"; - - case AuthorizationType.AUTHORIZATION_TYPE_DELEGATE: - return "AUTHORIZATION_TYPE_DELEGATE"; - - case AuthorizationType.AUTHORIZATION_TYPE_UNDELEGATE: - return "AUTHORIZATION_TYPE_UNDELEGATE"; - - case AuthorizationType.AUTHORIZATION_TYPE_REDELEGATE: - return "AUTHORIZATION_TYPE_REDELEGATE"; - - case AuthorizationType.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** - * StakeAuthorization defines authorization for delegate/undelegate/redelegate. - * - * Since: cosmos-sdk 0.43 - */ - -export interface 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. - */ - maxTokens?: Coin; - /** - * allow_list specifies list of validator addresses to whom grantee can delegate tokens on behalf of granter's - * account. - */ - - allowList?: StakeAuthorization_Validators; - /** deny_list specifies list of validator addresses to whom grantee can not delegate tokens. */ - - denyList?: StakeAuthorization_Validators; - /** authorization_type defines one of AuthorizationType. */ - - authorizationType: AuthorizationType; -} -/** - * StakeAuthorization defines authorization for delegate/undelegate/redelegate. - * - * Since: cosmos-sdk 0.43 - */ - -export interface StakeAuthorizationSDKType { - max_tokens?: CoinSDKType; - allow_list?: StakeAuthorization_ValidatorsSDKType; - deny_list?: StakeAuthorization_ValidatorsSDKType; - authorization_type: AuthorizationType; -} -/** Validators defines list of validator addresses. */ - -export interface StakeAuthorization_Validators { - address: string[]; -} -/** Validators defines list of validator addresses. */ - -export interface StakeAuthorization_ValidatorsSDKType { - address: string[]; -} - -function createBaseStakeAuthorization(): StakeAuthorization { - return { - maxTokens: undefined, - allowList: undefined, - denyList: undefined, - authorizationType: 0 - }; -} - -export const StakeAuthorization = { - encode(message: StakeAuthorization, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.maxTokens !== undefined) { - Coin.encode(message.maxTokens, writer.uint32(10).fork()).ldelim(); - } - - if (message.allowList !== undefined) { - StakeAuthorization_Validators.encode(message.allowList, writer.uint32(18).fork()).ldelim(); - } - - if (message.denyList !== undefined) { - StakeAuthorization_Validators.encode(message.denyList, writer.uint32(26).fork()).ldelim(); - } - - if (message.authorizationType !== 0) { - writer.uint32(32).int32(message.authorizationType); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): StakeAuthorization { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseStakeAuthorization(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.maxTokens = Coin.decode(reader, reader.uint32()); - break; - - case 2: - message.allowList = StakeAuthorization_Validators.decode(reader, reader.uint32()); - break; - - case 3: - message.denyList = StakeAuthorization_Validators.decode(reader, reader.uint32()); - break; - - case 4: - message.authorizationType = (reader.int32() as any); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): StakeAuthorization { - const message = createBaseStakeAuthorization(); - message.maxTokens = object.maxTokens !== undefined && object.maxTokens !== null ? Coin.fromPartial(object.maxTokens) : undefined; - message.allowList = object.allowList !== undefined && object.allowList !== null ? StakeAuthorization_Validators.fromPartial(object.allowList) : undefined; - message.denyList = object.denyList !== undefined && object.denyList !== null ? StakeAuthorization_Validators.fromPartial(object.denyList) : undefined; - message.authorizationType = object.authorizationType ?? 0; - return message; - } - -}; - -function createBaseStakeAuthorization_Validators(): StakeAuthorization_Validators { - return { - address: [] - }; -} - -export const StakeAuthorization_Validators = { - encode(message: StakeAuthorization_Validators, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.address) { - writer.uint32(10).string(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): StakeAuthorization_Validators { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseStakeAuthorization_Validators(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address.push(reader.string()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): StakeAuthorization_Validators { - const message = createBaseStakeAuthorization_Validators(); - message.address = object.address?.map(e => e) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/staking/v1beta1/genesis.ts b/packages/codegen/src/cosmos/staking/v1beta1/genesis.ts deleted file mode 100644 index 30badf95..00000000 --- a/packages/codegen/src/cosmos/staking/v1beta1/genesis.ts +++ /dev/null @@ -1,231 +0,0 @@ -import { Params, ParamsSDKType, Validator, ValidatorSDKType, Delegation, DelegationSDKType, UnbondingDelegation, UnbondingDelegationSDKType, Redelegation, RedelegationSDKType } from "./staking"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** GenesisState defines the staking module's genesis state. */ - -export interface GenesisState { - /** params defines all the paramaters of related to deposit. */ - params?: Params; - /** - * last_total_power tracks the total amounts of bonded tokens recorded during - * the previous end block. - */ - - lastTotalPower: Uint8Array; - /** - * last_validator_powers is a special index that provides a historical list - * of the last-block's bonded validators. - */ - - lastValidatorPowers: LastValidatorPower[]; - /** delegations defines the validator set at genesis. */ - - validators: Validator[]; - /** delegations defines the delegations active at genesis. */ - - delegations: Delegation[]; - /** unbonding_delegations defines the unbonding delegations active at genesis. */ - - unbondingDelegations: UnbondingDelegation[]; - /** redelegations defines the redelegations active at genesis. */ - - redelegations: Redelegation[]; - exported: boolean; -} -/** GenesisState defines the staking module's genesis state. */ - -export interface GenesisStateSDKType { - params?: ParamsSDKType; - last_total_power: Uint8Array; - last_validator_powers: LastValidatorPowerSDKType[]; - validators: ValidatorSDKType[]; - delegations: DelegationSDKType[]; - unbonding_delegations: UnbondingDelegationSDKType[]; - redelegations: RedelegationSDKType[]; - exported: boolean; -} -/** LastValidatorPower required for validator set update logic. */ - -export interface LastValidatorPower { - /** address is the address of the validator. */ - address: string; - /** power defines the power of the validator. */ - - power: Long; -} -/** LastValidatorPower required for validator set update logic. */ - -export interface LastValidatorPowerSDKType { - address: string; - power: Long; -} - -function createBaseGenesisState(): GenesisState { - return { - params: undefined, - lastTotalPower: new Uint8Array(), - lastValidatorPowers: [], - validators: [], - delegations: [], - unbondingDelegations: [], - redelegations: [], - exported: false - }; -} - -export const GenesisState = { - encode(message: GenesisState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.params !== undefined) { - Params.encode(message.params, writer.uint32(10).fork()).ldelim(); - } - - if (message.lastTotalPower.length !== 0) { - writer.uint32(18).bytes(message.lastTotalPower); - } - - for (const v of message.lastValidatorPowers) { - LastValidatorPower.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - for (const v of message.validators) { - Validator.encode(v!, writer.uint32(34).fork()).ldelim(); - } - - for (const v of message.delegations) { - Delegation.encode(v!, writer.uint32(42).fork()).ldelim(); - } - - for (const v of message.unbondingDelegations) { - UnbondingDelegation.encode(v!, writer.uint32(50).fork()).ldelim(); - } - - for (const v of message.redelegations) { - Redelegation.encode(v!, writer.uint32(58).fork()).ldelim(); - } - - if (message.exported === true) { - writer.uint32(64).bool(message.exported); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.params = Params.decode(reader, reader.uint32()); - break; - - case 2: - message.lastTotalPower = reader.bytes(); - break; - - case 3: - message.lastValidatorPowers.push(LastValidatorPower.decode(reader, reader.uint32())); - break; - - case 4: - message.validators.push(Validator.decode(reader, reader.uint32())); - break; - - case 5: - message.delegations.push(Delegation.decode(reader, reader.uint32())); - break; - - case 6: - message.unbondingDelegations.push(UnbondingDelegation.decode(reader, reader.uint32())); - break; - - case 7: - message.redelegations.push(Redelegation.decode(reader, reader.uint32())); - break; - - case 8: - message.exported = reader.bool(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenesisState { - const message = createBaseGenesisState(); - message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined; - message.lastTotalPower = object.lastTotalPower ?? new Uint8Array(); - message.lastValidatorPowers = object.lastValidatorPowers?.map(e => LastValidatorPower.fromPartial(e)) || []; - message.validators = object.validators?.map(e => Validator.fromPartial(e)) || []; - message.delegations = object.delegations?.map(e => Delegation.fromPartial(e)) || []; - message.unbondingDelegations = object.unbondingDelegations?.map(e => UnbondingDelegation.fromPartial(e)) || []; - message.redelegations = object.redelegations?.map(e => Redelegation.fromPartial(e)) || []; - message.exported = object.exported ?? false; - return message; - } - -}; - -function createBaseLastValidatorPower(): LastValidatorPower { - return { - address: "", - power: Long.ZERO - }; -} - -export const LastValidatorPower = { - encode(message: LastValidatorPower, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - if (!message.power.isZero()) { - writer.uint32(16).int64(message.power); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): LastValidatorPower { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseLastValidatorPower(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.power = (reader.int64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): LastValidatorPower { - const message = createBaseLastValidatorPower(); - message.address = object.address ?? ""; - message.power = object.power !== undefined && object.power !== null ? Long.fromValue(object.power) : Long.ZERO; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/staking/v1beta1/query.lcd.ts b/packages/codegen/src/cosmos/staking/v1beta1/query.lcd.ts deleted file mode 100644 index b404abb4..00000000 --- a/packages/codegen/src/cosmos/staking/v1beta1/query.lcd.ts +++ /dev/null @@ -1,199 +0,0 @@ -import { setPaginationParams } from "../../../helpers"; -import { LCDClient } from "@osmonauts/lcd"; -import { QueryValidatorsRequest, QueryValidatorsResponseSDKType, QueryValidatorRequest, QueryValidatorResponseSDKType, QueryValidatorDelegationsRequest, QueryValidatorDelegationsResponseSDKType, QueryValidatorUnbondingDelegationsRequest, QueryValidatorUnbondingDelegationsResponseSDKType, QueryDelegationRequest, QueryDelegationResponseSDKType, QueryUnbondingDelegationRequest, QueryUnbondingDelegationResponseSDKType, QueryDelegatorDelegationsRequest, QueryDelegatorDelegationsResponseSDKType, QueryDelegatorUnbondingDelegationsRequest, QueryDelegatorUnbondingDelegationsResponseSDKType, QueryRedelegationsRequest, QueryRedelegationsResponseSDKType, QueryDelegatorValidatorsRequest, QueryDelegatorValidatorsResponseSDKType, QueryDelegatorValidatorRequest, QueryDelegatorValidatorResponseSDKType, QueryHistoricalInfoRequest, QueryHistoricalInfoResponseSDKType, QueryPoolRequest, QueryPoolResponseSDKType, QueryParamsRequest, QueryParamsResponseSDKType } from "./query"; -export class LCDQueryClient { - req: LCDClient; - - constructor({ - requestClient - }: { - requestClient: LCDClient; - }) { - this.req = requestClient; - this.validators = this.validators.bind(this); - this.validator = this.validator.bind(this); - this.validatorDelegations = this.validatorDelegations.bind(this); - this.validatorUnbondingDelegations = this.validatorUnbondingDelegations.bind(this); - this.delegation = this.delegation.bind(this); - this.unbondingDelegation = this.unbondingDelegation.bind(this); - this.delegatorDelegations = this.delegatorDelegations.bind(this); - this.delegatorUnbondingDelegations = this.delegatorUnbondingDelegations.bind(this); - this.redelegations = this.redelegations.bind(this); - this.delegatorValidators = this.delegatorValidators.bind(this); - this.delegatorValidator = this.delegatorValidator.bind(this); - this.historicalInfo = this.historicalInfo.bind(this); - this.pool = this.pool.bind(this); - this.params = this.params.bind(this); - } - /* Validators queries all validators that match the given status. */ - - - async validators(params: QueryValidatorsRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.status !== "undefined") { - options.params.status = params.status; - } - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/staking/v1beta1/validators`; - return await this.req.get(endpoint, options); - } - /* Validator queries validator info for given validator address. */ - - - async validator(params: QueryValidatorRequest): Promise { - const endpoint = `cosmos/staking/v1beta1/validators/${params.validatorAddr}`; - return await this.req.get(endpoint); - } - /* ValidatorDelegations queries delegate info for given validator. */ - - - async validatorDelegations(params: QueryValidatorDelegationsRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/staking/v1beta1/validators/${params.validatorAddr}/delegations`; - return await this.req.get(endpoint, options); - } - /* ValidatorUnbondingDelegations queries unbonding delegations of a validator. */ - - - async validatorUnbondingDelegations(params: QueryValidatorUnbondingDelegationsRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/staking/v1beta1/validators/${params.validatorAddr}/unbonding_delegations`; - return await this.req.get(endpoint, options); - } - /* Delegation queries delegate info for given validator delegator pair. */ - - - async delegation(params: QueryDelegationRequest): Promise { - const endpoint = `cosmos/staking/v1beta1/validators/${params.validatorAddr}/delegations/${params.delegatorAddr}`; - return await this.req.get(endpoint); - } - /* UnbondingDelegation queries unbonding info for given validator delegator - pair. */ - - - async unbondingDelegation(params: QueryUnbondingDelegationRequest): Promise { - const endpoint = `cosmos/staking/v1beta1/validators/${params.validatorAddr}/delegations/${params.delegatorAddr}/unbonding_delegation`; - return await this.req.get(endpoint); - } - /* DelegatorDelegations queries all delegations of a given delegator address. */ - - - async delegatorDelegations(params: QueryDelegatorDelegationsRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/staking/v1beta1/delegations/${params.delegatorAddr}`; - return await this.req.get(endpoint, options); - } - /* DelegatorUnbondingDelegations queries all unbonding delegations of a given - delegator address. */ - - - async delegatorUnbondingDelegations(params: QueryDelegatorUnbondingDelegationsRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/staking/v1beta1/delegators/${params.delegatorAddr}/unbonding_delegations`; - return await this.req.get(endpoint, options); - } - /* Redelegations queries redelegations of given address. */ - - - async redelegations(params: QueryRedelegationsRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.srcValidatorAddr !== "undefined") { - options.params.src_validator_addr = params.srcValidatorAddr; - } - - if (typeof params?.dstValidatorAddr !== "undefined") { - options.params.dst_validator_addr = params.dstValidatorAddr; - } - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/staking/v1beta1/delegators/${params.delegatorAddr}/redelegations`; - return await this.req.get(endpoint, options); - } - /* DelegatorValidators queries all validators info for given delegator - address. */ - - - async delegatorValidators(params: QueryDelegatorValidatorsRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/staking/v1beta1/delegators/${params.delegatorAddr}/validators`; - return await this.req.get(endpoint, options); - } - /* DelegatorValidator queries validator info for given delegator validator - pair. */ - - - async delegatorValidator(params: QueryDelegatorValidatorRequest): Promise { - const endpoint = `cosmos/staking/v1beta1/delegators/${params.delegatorAddr}/validators/${params.validatorAddr}`; - return await this.req.get(endpoint); - } - /* HistoricalInfo queries the historical info for given height. */ - - - async historicalInfo(params: QueryHistoricalInfoRequest): Promise { - const endpoint = `cosmos/staking/v1beta1/historical_info/${params.height}`; - return await this.req.get(endpoint); - } - /* Pool queries the pool info. */ - - - async pool(_params: QueryPoolRequest = {}): Promise { - const endpoint = `cosmos/staking/v1beta1/pool`; - return await this.req.get(endpoint); - } - /* Parameters queries the staking parameters. */ - - - async params(_params: QueryParamsRequest = {}): Promise { - const endpoint = `cosmos/staking/v1beta1/params`; - return await this.req.get(endpoint); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/staking/v1beta1/query.rpc.Query.ts b/packages/codegen/src/cosmos/staking/v1beta1/query.rpc.Query.ts deleted file mode 100644 index 550f592f..00000000 --- a/packages/codegen/src/cosmos/staking/v1beta1/query.rpc.Query.ts +++ /dev/null @@ -1,229 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { QueryValidatorsRequest, QueryValidatorsResponse, QueryValidatorRequest, QueryValidatorResponse, QueryValidatorDelegationsRequest, QueryValidatorDelegationsResponse, QueryValidatorUnbondingDelegationsRequest, QueryValidatorUnbondingDelegationsResponse, QueryDelegationRequest, QueryDelegationResponse, QueryUnbondingDelegationRequest, QueryUnbondingDelegationResponse, QueryDelegatorDelegationsRequest, QueryDelegatorDelegationsResponse, QueryDelegatorUnbondingDelegationsRequest, QueryDelegatorUnbondingDelegationsResponse, QueryRedelegationsRequest, QueryRedelegationsResponse, QueryDelegatorValidatorsRequest, QueryDelegatorValidatorsResponse, QueryDelegatorValidatorRequest, QueryDelegatorValidatorResponse, QueryHistoricalInfoRequest, QueryHistoricalInfoResponse, QueryPoolRequest, QueryPoolResponse, QueryParamsRequest, QueryParamsResponse } from "./query"; -/** Query defines the gRPC querier service. */ - -export interface Query { - /** Validators queries all validators that match the given status. */ - validators(request: QueryValidatorsRequest): Promise; - /** Validator queries validator info for given validator address. */ - - validator(request: QueryValidatorRequest): Promise; - /** ValidatorDelegations queries delegate info for given validator. */ - - validatorDelegations(request: QueryValidatorDelegationsRequest): Promise; - /** ValidatorUnbondingDelegations queries unbonding delegations of a validator. */ - - validatorUnbondingDelegations(request: QueryValidatorUnbondingDelegationsRequest): Promise; - /** Delegation queries delegate info for given validator delegator pair. */ - - delegation(request: QueryDelegationRequest): Promise; - /** - * UnbondingDelegation queries unbonding info for given validator delegator - * pair. - */ - - unbondingDelegation(request: QueryUnbondingDelegationRequest): Promise; - /** DelegatorDelegations queries all delegations of a given delegator address. */ - - delegatorDelegations(request: QueryDelegatorDelegationsRequest): Promise; - /** - * DelegatorUnbondingDelegations queries all unbonding delegations of a given - * delegator address. - */ - - delegatorUnbondingDelegations(request: QueryDelegatorUnbondingDelegationsRequest): Promise; - /** Redelegations queries redelegations of given address. */ - - redelegations(request: QueryRedelegationsRequest): Promise; - /** - * DelegatorValidators queries all validators info for given delegator - * address. - */ - - delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise; - /** - * DelegatorValidator queries validator info for given delegator validator - * pair. - */ - - delegatorValidator(request: QueryDelegatorValidatorRequest): Promise; - /** HistoricalInfo queries the historical info for given height. */ - - historicalInfo(request: QueryHistoricalInfoRequest): Promise; - /** Pool queries the pool info. */ - - pool(request?: QueryPoolRequest): Promise; - /** Parameters queries the staking parameters. */ - - params(request?: QueryParamsRequest): Promise; -} -export class QueryClientImpl implements Query { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.validators = this.validators.bind(this); - this.validator = this.validator.bind(this); - this.validatorDelegations = this.validatorDelegations.bind(this); - this.validatorUnbondingDelegations = this.validatorUnbondingDelegations.bind(this); - this.delegation = this.delegation.bind(this); - this.unbondingDelegation = this.unbondingDelegation.bind(this); - this.delegatorDelegations = this.delegatorDelegations.bind(this); - this.delegatorUnbondingDelegations = this.delegatorUnbondingDelegations.bind(this); - this.redelegations = this.redelegations.bind(this); - this.delegatorValidators = this.delegatorValidators.bind(this); - this.delegatorValidator = this.delegatorValidator.bind(this); - this.historicalInfo = this.historicalInfo.bind(this); - this.pool = this.pool.bind(this); - this.params = this.params.bind(this); - } - - validators(request: QueryValidatorsRequest): Promise { - const data = QueryValidatorsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "Validators", data); - return promise.then(data => QueryValidatorsResponse.decode(new _m0.Reader(data))); - } - - validator(request: QueryValidatorRequest): Promise { - const data = QueryValidatorRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "Validator", data); - return promise.then(data => QueryValidatorResponse.decode(new _m0.Reader(data))); - } - - validatorDelegations(request: QueryValidatorDelegationsRequest): Promise { - const data = QueryValidatorDelegationsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "ValidatorDelegations", data); - return promise.then(data => QueryValidatorDelegationsResponse.decode(new _m0.Reader(data))); - } - - validatorUnbondingDelegations(request: QueryValidatorUnbondingDelegationsRequest): Promise { - const data = QueryValidatorUnbondingDelegationsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "ValidatorUnbondingDelegations", data); - return promise.then(data => QueryValidatorUnbondingDelegationsResponse.decode(new _m0.Reader(data))); - } - - delegation(request: QueryDelegationRequest): Promise { - const data = QueryDelegationRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "Delegation", data); - return promise.then(data => QueryDelegationResponse.decode(new _m0.Reader(data))); - } - - unbondingDelegation(request: QueryUnbondingDelegationRequest): Promise { - const data = QueryUnbondingDelegationRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "UnbondingDelegation", data); - return promise.then(data => QueryUnbondingDelegationResponse.decode(new _m0.Reader(data))); - } - - delegatorDelegations(request: QueryDelegatorDelegationsRequest): Promise { - const data = QueryDelegatorDelegationsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "DelegatorDelegations", data); - return promise.then(data => QueryDelegatorDelegationsResponse.decode(new _m0.Reader(data))); - } - - delegatorUnbondingDelegations(request: QueryDelegatorUnbondingDelegationsRequest): Promise { - const data = QueryDelegatorUnbondingDelegationsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "DelegatorUnbondingDelegations", data); - return promise.then(data => QueryDelegatorUnbondingDelegationsResponse.decode(new _m0.Reader(data))); - } - - redelegations(request: QueryRedelegationsRequest): Promise { - const data = QueryRedelegationsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "Redelegations", data); - return promise.then(data => QueryRedelegationsResponse.decode(new _m0.Reader(data))); - } - - delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise { - const data = QueryDelegatorValidatorsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "DelegatorValidators", data); - return promise.then(data => QueryDelegatorValidatorsResponse.decode(new _m0.Reader(data))); - } - - delegatorValidator(request: QueryDelegatorValidatorRequest): Promise { - const data = QueryDelegatorValidatorRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "DelegatorValidator", data); - return promise.then(data => QueryDelegatorValidatorResponse.decode(new _m0.Reader(data))); - } - - historicalInfo(request: QueryHistoricalInfoRequest): Promise { - const data = QueryHistoricalInfoRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "HistoricalInfo", data); - return promise.then(data => QueryHistoricalInfoResponse.decode(new _m0.Reader(data))); - } - - pool(request: QueryPoolRequest = {}): Promise { - const data = QueryPoolRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "Pool", data); - return promise.then(data => QueryPoolResponse.decode(new _m0.Reader(data))); - } - - params(request: QueryParamsRequest = {}): Promise { - const data = QueryParamsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "Params", data); - return promise.then(data => QueryParamsResponse.decode(new _m0.Reader(data))); - } - -} -export const createRpcQueryExtension = (base: QueryClient) => { - const rpc = createProtobufRpcClient(base); - const queryService = new QueryClientImpl(rpc); - return { - validators(request: QueryValidatorsRequest): Promise { - return queryService.validators(request); - }, - - validator(request: QueryValidatorRequest): Promise { - return queryService.validator(request); - }, - - validatorDelegations(request: QueryValidatorDelegationsRequest): Promise { - return queryService.validatorDelegations(request); - }, - - validatorUnbondingDelegations(request: QueryValidatorUnbondingDelegationsRequest): Promise { - return queryService.validatorUnbondingDelegations(request); - }, - - delegation(request: QueryDelegationRequest): Promise { - return queryService.delegation(request); - }, - - unbondingDelegation(request: QueryUnbondingDelegationRequest): Promise { - return queryService.unbondingDelegation(request); - }, - - delegatorDelegations(request: QueryDelegatorDelegationsRequest): Promise { - return queryService.delegatorDelegations(request); - }, - - delegatorUnbondingDelegations(request: QueryDelegatorUnbondingDelegationsRequest): Promise { - return queryService.delegatorUnbondingDelegations(request); - }, - - redelegations(request: QueryRedelegationsRequest): Promise { - return queryService.redelegations(request); - }, - - delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise { - return queryService.delegatorValidators(request); - }, - - delegatorValidator(request: QueryDelegatorValidatorRequest): Promise { - return queryService.delegatorValidator(request); - }, - - historicalInfo(request: QueryHistoricalInfoRequest): Promise { - return queryService.historicalInfo(request); - }, - - pool(request?: QueryPoolRequest): Promise { - return queryService.pool(request); - }, - - params(request?: QueryParamsRequest): Promise { - return queryService.params(request); - } - - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/staking/v1beta1/query.ts b/packages/codegen/src/cosmos/staking/v1beta1/query.ts deleted file mode 100644 index cd53260d..00000000 --- a/packages/codegen/src/cosmos/staking/v1beta1/query.ts +++ /dev/null @@ -1,1910 +0,0 @@ -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { Validator, ValidatorSDKType, DelegationResponse, DelegationResponseSDKType, UnbondingDelegation, UnbondingDelegationSDKType, RedelegationResponse, RedelegationResponseSDKType, HistoricalInfo, HistoricalInfoSDKType, Pool, PoolSDKType, Params, ParamsSDKType } from "./staking"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** QueryValidatorsRequest is request type for Query/Validators RPC method. */ - -export interface QueryValidatorsRequest { - /** status enables to query for validators matching a given status. */ - status: string; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** QueryValidatorsRequest is request type for Query/Validators RPC method. */ - -export interface QueryValidatorsRequestSDKType { - status: string; - pagination?: PageRequestSDKType; -} -/** QueryValidatorsResponse is response type for the Query/Validators RPC method */ - -export interface QueryValidatorsResponse { - /** validators contains all the queried validators. */ - validators: Validator[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** QueryValidatorsResponse is response type for the Query/Validators RPC method */ - -export interface QueryValidatorsResponseSDKType { - validators: ValidatorSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryValidatorRequest is response type for the Query/Validator RPC method */ - -export interface QueryValidatorRequest { - /** validator_addr defines the validator address to query for. */ - validatorAddr: string; -} -/** QueryValidatorRequest is response type for the Query/Validator RPC method */ - -export interface QueryValidatorRequestSDKType { - validator_addr: string; -} -/** QueryValidatorResponse is response type for the Query/Validator RPC method */ - -export interface QueryValidatorResponse { - /** validator defines the the validator info. */ - validator?: Validator; -} -/** QueryValidatorResponse is response type for the Query/Validator RPC method */ - -export interface QueryValidatorResponseSDKType { - validator?: ValidatorSDKType; -} -/** - * QueryValidatorDelegationsRequest is request type for the - * Query/ValidatorDelegations RPC method - */ - -export interface QueryValidatorDelegationsRequest { - /** validator_addr defines the validator address to query for. */ - validatorAddr: string; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** - * QueryValidatorDelegationsRequest is request type for the - * Query/ValidatorDelegations RPC method - */ - -export interface QueryValidatorDelegationsRequestSDKType { - validator_addr: string; - pagination?: PageRequestSDKType; -} -/** - * QueryValidatorDelegationsResponse is response type for the - * Query/ValidatorDelegations RPC method - */ - -export interface QueryValidatorDelegationsResponse { - delegationResponses: DelegationResponse[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** - * QueryValidatorDelegationsResponse is response type for the - * Query/ValidatorDelegations RPC method - */ - -export interface QueryValidatorDelegationsResponseSDKType { - delegation_responses: DelegationResponseSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * QueryValidatorUnbondingDelegationsRequest is required type for the - * Query/ValidatorUnbondingDelegations RPC method - */ - -export interface QueryValidatorUnbondingDelegationsRequest { - /** validator_addr defines the validator address to query for. */ - validatorAddr: string; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** - * QueryValidatorUnbondingDelegationsRequest is required type for the - * Query/ValidatorUnbondingDelegations RPC method - */ - -export interface QueryValidatorUnbondingDelegationsRequestSDKType { - validator_addr: string; - pagination?: PageRequestSDKType; -} -/** - * QueryValidatorUnbondingDelegationsResponse is response type for the - * Query/ValidatorUnbondingDelegations RPC method. - */ - -export interface QueryValidatorUnbondingDelegationsResponse { - unbondingResponses: UnbondingDelegation[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** - * QueryValidatorUnbondingDelegationsResponse is response type for the - * Query/ValidatorUnbondingDelegations RPC method. - */ - -export interface QueryValidatorUnbondingDelegationsResponseSDKType { - unbonding_responses: UnbondingDelegationSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryDelegationRequest is request type for the Query/Delegation RPC method. */ - -export interface QueryDelegationRequest { - /** delegator_addr defines the delegator address to query for. */ - delegatorAddr: string; - /** validator_addr defines the validator address to query for. */ - - validatorAddr: string; -} -/** QueryDelegationRequest is request type for the Query/Delegation RPC method. */ - -export interface QueryDelegationRequestSDKType { - delegator_addr: string; - validator_addr: string; -} -/** QueryDelegationResponse is response type for the Query/Delegation RPC method. */ - -export interface QueryDelegationResponse { - /** delegation_responses defines the delegation info of a delegation. */ - delegationResponse?: DelegationResponse; -} -/** QueryDelegationResponse is response type for the Query/Delegation RPC method. */ - -export interface QueryDelegationResponseSDKType { - delegation_response?: DelegationResponseSDKType; -} -/** - * QueryUnbondingDelegationRequest is request type for the - * Query/UnbondingDelegation RPC method. - */ - -export interface QueryUnbondingDelegationRequest { - /** delegator_addr defines the delegator address to query for. */ - delegatorAddr: string; - /** validator_addr defines the validator address to query for. */ - - validatorAddr: string; -} -/** - * QueryUnbondingDelegationRequest is request type for the - * Query/UnbondingDelegation RPC method. - */ - -export interface QueryUnbondingDelegationRequestSDKType { - delegator_addr: string; - validator_addr: string; -} -/** - * QueryDelegationResponse is response type for the Query/UnbondingDelegation - * RPC method. - */ - -export interface QueryUnbondingDelegationResponse { - /** unbond defines the unbonding information of a delegation. */ - unbond?: UnbondingDelegation; -} -/** - * QueryDelegationResponse is response type for the Query/UnbondingDelegation - * RPC method. - */ - -export interface QueryUnbondingDelegationResponseSDKType { - unbond?: UnbondingDelegationSDKType; -} -/** - * QueryDelegatorDelegationsRequest is request type for the - * Query/DelegatorDelegations RPC method. - */ - -export interface QueryDelegatorDelegationsRequest { - /** delegator_addr defines the delegator address to query for. */ - delegatorAddr: string; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** - * QueryDelegatorDelegationsRequest is request type for the - * Query/DelegatorDelegations RPC method. - */ - -export interface QueryDelegatorDelegationsRequestSDKType { - delegator_addr: string; - pagination?: PageRequestSDKType; -} -/** - * QueryDelegatorDelegationsResponse is response type for the - * Query/DelegatorDelegations RPC method. - */ - -export interface QueryDelegatorDelegationsResponse { - /** delegation_responses defines all the delegations' info of a delegator. */ - delegationResponses: DelegationResponse[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** - * QueryDelegatorDelegationsResponse is response type for the - * Query/DelegatorDelegations RPC method. - */ - -export interface QueryDelegatorDelegationsResponseSDKType { - delegation_responses: DelegationResponseSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * QueryDelegatorUnbondingDelegationsRequest is request type for the - * Query/DelegatorUnbondingDelegations RPC method. - */ - -export interface QueryDelegatorUnbondingDelegationsRequest { - /** delegator_addr defines the delegator address to query for. */ - delegatorAddr: string; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** - * QueryDelegatorUnbondingDelegationsRequest is request type for the - * Query/DelegatorUnbondingDelegations RPC method. - */ - -export interface QueryDelegatorUnbondingDelegationsRequestSDKType { - delegator_addr: string; - pagination?: PageRequestSDKType; -} -/** - * QueryUnbondingDelegatorDelegationsResponse is response type for the - * Query/UnbondingDelegatorDelegations RPC method. - */ - -export interface QueryDelegatorUnbondingDelegationsResponse { - unbondingResponses: UnbondingDelegation[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** - * QueryUnbondingDelegatorDelegationsResponse is response type for the - * Query/UnbondingDelegatorDelegations RPC method. - */ - -export interface QueryDelegatorUnbondingDelegationsResponseSDKType { - unbonding_responses: UnbondingDelegationSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * QueryRedelegationsRequest is request type for the Query/Redelegations RPC - * method. - */ - -export interface QueryRedelegationsRequest { - /** delegator_addr defines the delegator address to query for. */ - delegatorAddr: string; - /** src_validator_addr defines the validator address to redelegate from. */ - - srcValidatorAddr: string; - /** dst_validator_addr defines the validator address to redelegate to. */ - - dstValidatorAddr: string; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** - * QueryRedelegationsRequest is request type for the Query/Redelegations RPC - * method. - */ - -export interface QueryRedelegationsRequestSDKType { - delegator_addr: string; - src_validator_addr: string; - dst_validator_addr: string; - pagination?: PageRequestSDKType; -} -/** - * QueryRedelegationsResponse is response type for the Query/Redelegations RPC - * method. - */ - -export interface QueryRedelegationsResponse { - redelegationResponses: RedelegationResponse[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** - * QueryRedelegationsResponse is response type for the Query/Redelegations RPC - * method. - */ - -export interface QueryRedelegationsResponseSDKType { - redelegation_responses: RedelegationResponseSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * QueryDelegatorValidatorsRequest is request type for the - * Query/DelegatorValidators RPC method. - */ - -export interface QueryDelegatorValidatorsRequest { - /** delegator_addr defines the delegator address to query for. */ - delegatorAddr: string; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** - * QueryDelegatorValidatorsRequest is request type for the - * Query/DelegatorValidators RPC method. - */ - -export interface QueryDelegatorValidatorsRequestSDKType { - delegator_addr: string; - pagination?: PageRequestSDKType; -} -/** - * QueryDelegatorValidatorsResponse is response type for the - * Query/DelegatorValidators RPC method. - */ - -export interface QueryDelegatorValidatorsResponse { - /** validators defines the the validators' info of a delegator. */ - validators: Validator[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** - * QueryDelegatorValidatorsResponse is response type for the - * Query/DelegatorValidators RPC method. - */ - -export interface QueryDelegatorValidatorsResponseSDKType { - validators: ValidatorSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * QueryDelegatorValidatorRequest is request type for the - * Query/DelegatorValidator RPC method. - */ - -export interface QueryDelegatorValidatorRequest { - /** delegator_addr defines the delegator address to query for. */ - delegatorAddr: string; - /** validator_addr defines the validator address to query for. */ - - validatorAddr: string; -} -/** - * QueryDelegatorValidatorRequest is request type for the - * Query/DelegatorValidator RPC method. - */ - -export interface QueryDelegatorValidatorRequestSDKType { - delegator_addr: string; - validator_addr: string; -} -/** - * QueryDelegatorValidatorResponse response type for the - * Query/DelegatorValidator RPC method. - */ - -export interface QueryDelegatorValidatorResponse { - /** validator defines the the validator info. */ - validator?: Validator; -} -/** - * QueryDelegatorValidatorResponse response type for the - * Query/DelegatorValidator RPC method. - */ - -export interface QueryDelegatorValidatorResponseSDKType { - validator?: ValidatorSDKType; -} -/** - * QueryHistoricalInfoRequest is request type for the Query/HistoricalInfo RPC - * method. - */ - -export interface QueryHistoricalInfoRequest { - /** height defines at which height to query the historical info. */ - height: Long; -} -/** - * QueryHistoricalInfoRequest is request type for the Query/HistoricalInfo RPC - * method. - */ - -export interface QueryHistoricalInfoRequestSDKType { - height: Long; -} -/** - * QueryHistoricalInfoResponse is response type for the Query/HistoricalInfo RPC - * method. - */ - -export interface QueryHistoricalInfoResponse { - /** hist defines the historical info at the given height. */ - hist?: HistoricalInfo; -} -/** - * QueryHistoricalInfoResponse is response type for the Query/HistoricalInfo RPC - * method. - */ - -export interface QueryHistoricalInfoResponseSDKType { - hist?: HistoricalInfoSDKType; -} -/** QueryPoolRequest is request type for the Query/Pool RPC method. */ - -export interface QueryPoolRequest {} -/** QueryPoolRequest is request type for the Query/Pool RPC method. */ - -export interface QueryPoolRequestSDKType {} -/** QueryPoolResponse is response type for the Query/Pool RPC method. */ - -export interface QueryPoolResponse { - /** pool defines the pool info. */ - pool?: Pool; -} -/** QueryPoolResponse is response type for the Query/Pool RPC method. */ - -export interface QueryPoolResponseSDKType { - pool?: PoolSDKType; -} -/** QueryParamsRequest is request type for the Query/Params RPC method. */ - -export interface QueryParamsRequest {} -/** QueryParamsRequest is request type for the Query/Params RPC method. */ - -export interface QueryParamsRequestSDKType {} -/** QueryParamsResponse is response type for the Query/Params RPC method. */ - -export interface QueryParamsResponse { - /** params holds all the parameters of this module. */ - params?: Params; -} -/** QueryParamsResponse is response type for the Query/Params RPC method. */ - -export interface QueryParamsResponseSDKType { - params?: ParamsSDKType; -} - -function createBaseQueryValidatorsRequest(): QueryValidatorsRequest { - return { - status: "", - pagination: undefined - }; -} - -export const QueryValidatorsRequest = { - encode(message: QueryValidatorsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.status !== "") { - writer.uint32(10).string(message.status); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.status = reader.string(); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryValidatorsRequest { - const message = createBaseQueryValidatorsRequest(); - message.status = object.status ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryValidatorsResponse(): QueryValidatorsResponse { - return { - validators: [], - pagination: undefined - }; -} - -export const QueryValidatorsResponse = { - encode(message: QueryValidatorsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.validators) { - Validator.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.validators.push(Validator.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryValidatorsResponse { - const message = createBaseQueryValidatorsResponse(); - message.validators = object.validators?.map(e => Validator.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryValidatorRequest(): QueryValidatorRequest { - return { - validatorAddr: "" - }; -} - -export const QueryValidatorRequest = { - encode(message: QueryValidatorRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.validatorAddr !== "") { - writer.uint32(10).string(message.validatorAddr); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.validatorAddr = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryValidatorRequest { - const message = createBaseQueryValidatorRequest(); - message.validatorAddr = object.validatorAddr ?? ""; - return message; - } - -}; - -function createBaseQueryValidatorResponse(): QueryValidatorResponse { - return { - validator: undefined - }; -} - -export const QueryValidatorResponse = { - encode(message: QueryValidatorResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.validator !== undefined) { - Validator.encode(message.validator, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.validator = Validator.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryValidatorResponse { - const message = createBaseQueryValidatorResponse(); - message.validator = object.validator !== undefined && object.validator !== null ? Validator.fromPartial(object.validator) : undefined; - return message; - } - -}; - -function createBaseQueryValidatorDelegationsRequest(): QueryValidatorDelegationsRequest { - return { - validatorAddr: "", - pagination: undefined - }; -} - -export const QueryValidatorDelegationsRequest = { - encode(message: QueryValidatorDelegationsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.validatorAddr !== "") { - writer.uint32(10).string(message.validatorAddr); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorDelegationsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorDelegationsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.validatorAddr = reader.string(); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryValidatorDelegationsRequest { - const message = createBaseQueryValidatorDelegationsRequest(); - message.validatorAddr = object.validatorAddr ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryValidatorDelegationsResponse(): QueryValidatorDelegationsResponse { - return { - delegationResponses: [], - pagination: undefined - }; -} - -export const QueryValidatorDelegationsResponse = { - encode(message: QueryValidatorDelegationsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.delegationResponses) { - DelegationResponse.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorDelegationsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorDelegationsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegationResponses.push(DelegationResponse.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryValidatorDelegationsResponse { - const message = createBaseQueryValidatorDelegationsResponse(); - message.delegationResponses = object.delegationResponses?.map(e => DelegationResponse.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryValidatorUnbondingDelegationsRequest(): QueryValidatorUnbondingDelegationsRequest { - return { - validatorAddr: "", - pagination: undefined - }; -} - -export const QueryValidatorUnbondingDelegationsRequest = { - encode(message: QueryValidatorUnbondingDelegationsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.validatorAddr !== "") { - writer.uint32(10).string(message.validatorAddr); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorUnbondingDelegationsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorUnbondingDelegationsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.validatorAddr = reader.string(); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryValidatorUnbondingDelegationsRequest { - const message = createBaseQueryValidatorUnbondingDelegationsRequest(); - message.validatorAddr = object.validatorAddr ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryValidatorUnbondingDelegationsResponse(): QueryValidatorUnbondingDelegationsResponse { - return { - unbondingResponses: [], - pagination: undefined - }; -} - -export const QueryValidatorUnbondingDelegationsResponse = { - encode(message: QueryValidatorUnbondingDelegationsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.unbondingResponses) { - UnbondingDelegation.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryValidatorUnbondingDelegationsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorUnbondingDelegationsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.unbondingResponses.push(UnbondingDelegation.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryValidatorUnbondingDelegationsResponse { - const message = createBaseQueryValidatorUnbondingDelegationsResponse(); - message.unbondingResponses = object.unbondingResponses?.map(e => UnbondingDelegation.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryDelegationRequest(): QueryDelegationRequest { - return { - delegatorAddr: "", - validatorAddr: "" - }; -} - -export const QueryDelegationRequest = { - encode(message: QueryDelegationRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegatorAddr !== "") { - writer.uint32(10).string(message.delegatorAddr); - } - - if (message.validatorAddr !== "") { - writer.uint32(18).string(message.validatorAddr); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegationRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegationRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegatorAddr = reader.string(); - break; - - case 2: - message.validatorAddr = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDelegationRequest { - const message = createBaseQueryDelegationRequest(); - message.delegatorAddr = object.delegatorAddr ?? ""; - message.validatorAddr = object.validatorAddr ?? ""; - return message; - } - -}; - -function createBaseQueryDelegationResponse(): QueryDelegationResponse { - return { - delegationResponse: undefined - }; -} - -export const QueryDelegationResponse = { - encode(message: QueryDelegationResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegationResponse !== undefined) { - DelegationResponse.encode(message.delegationResponse, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegationResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegationResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegationResponse = DelegationResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDelegationResponse { - const message = createBaseQueryDelegationResponse(); - message.delegationResponse = object.delegationResponse !== undefined && object.delegationResponse !== null ? DelegationResponse.fromPartial(object.delegationResponse) : undefined; - return message; - } - -}; - -function createBaseQueryUnbondingDelegationRequest(): QueryUnbondingDelegationRequest { - return { - delegatorAddr: "", - validatorAddr: "" - }; -} - -export const QueryUnbondingDelegationRequest = { - encode(message: QueryUnbondingDelegationRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegatorAddr !== "") { - writer.uint32(10).string(message.delegatorAddr); - } - - if (message.validatorAddr !== "") { - writer.uint32(18).string(message.validatorAddr); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryUnbondingDelegationRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryUnbondingDelegationRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegatorAddr = reader.string(); - break; - - case 2: - message.validatorAddr = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryUnbondingDelegationRequest { - const message = createBaseQueryUnbondingDelegationRequest(); - message.delegatorAddr = object.delegatorAddr ?? ""; - message.validatorAddr = object.validatorAddr ?? ""; - return message; - } - -}; - -function createBaseQueryUnbondingDelegationResponse(): QueryUnbondingDelegationResponse { - return { - unbond: undefined - }; -} - -export const QueryUnbondingDelegationResponse = { - encode(message: QueryUnbondingDelegationResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.unbond !== undefined) { - UnbondingDelegation.encode(message.unbond, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryUnbondingDelegationResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryUnbondingDelegationResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.unbond = UnbondingDelegation.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryUnbondingDelegationResponse { - const message = createBaseQueryUnbondingDelegationResponse(); - message.unbond = object.unbond !== undefined && object.unbond !== null ? UnbondingDelegation.fromPartial(object.unbond) : undefined; - return message; - } - -}; - -function createBaseQueryDelegatorDelegationsRequest(): QueryDelegatorDelegationsRequest { - return { - delegatorAddr: "", - pagination: undefined - }; -} - -export const QueryDelegatorDelegationsRequest = { - encode(message: QueryDelegatorDelegationsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegatorAddr !== "") { - writer.uint32(10).string(message.delegatorAddr); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegatorDelegationsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegatorDelegationsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegatorAddr = reader.string(); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDelegatorDelegationsRequest { - const message = createBaseQueryDelegatorDelegationsRequest(); - message.delegatorAddr = object.delegatorAddr ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryDelegatorDelegationsResponse(): QueryDelegatorDelegationsResponse { - return { - delegationResponses: [], - pagination: undefined - }; -} - -export const QueryDelegatorDelegationsResponse = { - encode(message: QueryDelegatorDelegationsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.delegationResponses) { - DelegationResponse.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegatorDelegationsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegatorDelegationsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegationResponses.push(DelegationResponse.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDelegatorDelegationsResponse { - const message = createBaseQueryDelegatorDelegationsResponse(); - message.delegationResponses = object.delegationResponses?.map(e => DelegationResponse.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryDelegatorUnbondingDelegationsRequest(): QueryDelegatorUnbondingDelegationsRequest { - return { - delegatorAddr: "", - pagination: undefined - }; -} - -export const QueryDelegatorUnbondingDelegationsRequest = { - encode(message: QueryDelegatorUnbondingDelegationsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegatorAddr !== "") { - writer.uint32(10).string(message.delegatorAddr); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegatorUnbondingDelegationsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegatorUnbondingDelegationsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegatorAddr = reader.string(); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDelegatorUnbondingDelegationsRequest { - const message = createBaseQueryDelegatorUnbondingDelegationsRequest(); - message.delegatorAddr = object.delegatorAddr ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryDelegatorUnbondingDelegationsResponse(): QueryDelegatorUnbondingDelegationsResponse { - return { - unbondingResponses: [], - pagination: undefined - }; -} - -export const QueryDelegatorUnbondingDelegationsResponse = { - encode(message: QueryDelegatorUnbondingDelegationsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.unbondingResponses) { - UnbondingDelegation.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegatorUnbondingDelegationsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegatorUnbondingDelegationsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.unbondingResponses.push(UnbondingDelegation.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDelegatorUnbondingDelegationsResponse { - const message = createBaseQueryDelegatorUnbondingDelegationsResponse(); - message.unbondingResponses = object.unbondingResponses?.map(e => UnbondingDelegation.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryRedelegationsRequest(): QueryRedelegationsRequest { - return { - delegatorAddr: "", - srcValidatorAddr: "", - dstValidatorAddr: "", - pagination: undefined - }; -} - -export const QueryRedelegationsRequest = { - encode(message: QueryRedelegationsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegatorAddr !== "") { - writer.uint32(10).string(message.delegatorAddr); - } - - if (message.srcValidatorAddr !== "") { - writer.uint32(18).string(message.srcValidatorAddr); - } - - if (message.dstValidatorAddr !== "") { - writer.uint32(26).string(message.dstValidatorAddr); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryRedelegationsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryRedelegationsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegatorAddr = reader.string(); - break; - - case 2: - message.srcValidatorAddr = reader.string(); - break; - - case 3: - message.dstValidatorAddr = reader.string(); - break; - - case 4: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryRedelegationsRequest { - const message = createBaseQueryRedelegationsRequest(); - message.delegatorAddr = object.delegatorAddr ?? ""; - message.srcValidatorAddr = object.srcValidatorAddr ?? ""; - message.dstValidatorAddr = object.dstValidatorAddr ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryRedelegationsResponse(): QueryRedelegationsResponse { - return { - redelegationResponses: [], - pagination: undefined - }; -} - -export const QueryRedelegationsResponse = { - encode(message: QueryRedelegationsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.redelegationResponses) { - RedelegationResponse.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryRedelegationsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryRedelegationsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.redelegationResponses.push(RedelegationResponse.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryRedelegationsResponse { - const message = createBaseQueryRedelegationsResponse(); - message.redelegationResponses = object.redelegationResponses?.map(e => RedelegationResponse.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryDelegatorValidatorsRequest(): QueryDelegatorValidatorsRequest { - return { - delegatorAddr: "", - pagination: undefined - }; -} - -export const QueryDelegatorValidatorsRequest = { - encode(message: QueryDelegatorValidatorsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegatorAddr !== "") { - writer.uint32(10).string(message.delegatorAddr); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegatorValidatorsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegatorValidatorsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegatorAddr = reader.string(); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDelegatorValidatorsRequest { - const message = createBaseQueryDelegatorValidatorsRequest(); - message.delegatorAddr = object.delegatorAddr ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryDelegatorValidatorsResponse(): QueryDelegatorValidatorsResponse { - return { - validators: [], - pagination: undefined - }; -} - -export const QueryDelegatorValidatorsResponse = { - encode(message: QueryDelegatorValidatorsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.validators) { - Validator.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegatorValidatorsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegatorValidatorsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.validators.push(Validator.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDelegatorValidatorsResponse { - const message = createBaseQueryDelegatorValidatorsResponse(); - message.validators = object.validators?.map(e => Validator.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryDelegatorValidatorRequest(): QueryDelegatorValidatorRequest { - return { - delegatorAddr: "", - validatorAddr: "" - }; -} - -export const QueryDelegatorValidatorRequest = { - encode(message: QueryDelegatorValidatorRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegatorAddr !== "") { - writer.uint32(10).string(message.delegatorAddr); - } - - if (message.validatorAddr !== "") { - writer.uint32(18).string(message.validatorAddr); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegatorValidatorRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegatorValidatorRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegatorAddr = reader.string(); - break; - - case 2: - message.validatorAddr = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDelegatorValidatorRequest { - const message = createBaseQueryDelegatorValidatorRequest(); - message.delegatorAddr = object.delegatorAddr ?? ""; - message.validatorAddr = object.validatorAddr ?? ""; - return message; - } - -}; - -function createBaseQueryDelegatorValidatorResponse(): QueryDelegatorValidatorResponse { - return { - validator: undefined - }; -} - -export const QueryDelegatorValidatorResponse = { - encode(message: QueryDelegatorValidatorResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.validator !== undefined) { - Validator.encode(message.validator, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDelegatorValidatorResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegatorValidatorResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.validator = Validator.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDelegatorValidatorResponse { - const message = createBaseQueryDelegatorValidatorResponse(); - message.validator = object.validator !== undefined && object.validator !== null ? Validator.fromPartial(object.validator) : undefined; - return message; - } - -}; - -function createBaseQueryHistoricalInfoRequest(): QueryHistoricalInfoRequest { - return { - height: Long.ZERO - }; -} - -export const QueryHistoricalInfoRequest = { - encode(message: QueryHistoricalInfoRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.height.isZero()) { - writer.uint32(8).int64(message.height); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryHistoricalInfoRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryHistoricalInfoRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.height = (reader.int64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryHistoricalInfoRequest { - const message = createBaseQueryHistoricalInfoRequest(); - message.height = object.height !== undefined && object.height !== null ? Long.fromValue(object.height) : Long.ZERO; - return message; - } - -}; - -function createBaseQueryHistoricalInfoResponse(): QueryHistoricalInfoResponse { - return { - hist: undefined - }; -} - -export const QueryHistoricalInfoResponse = { - encode(message: QueryHistoricalInfoResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.hist !== undefined) { - HistoricalInfo.encode(message.hist, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryHistoricalInfoResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryHistoricalInfoResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.hist = HistoricalInfo.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryHistoricalInfoResponse { - const message = createBaseQueryHistoricalInfoResponse(); - message.hist = object.hist !== undefined && object.hist !== null ? HistoricalInfo.fromPartial(object.hist) : undefined; - return message; - } - -}; - -function createBaseQueryPoolRequest(): QueryPoolRequest { - return {}; -} - -export const QueryPoolRequest = { - encode(_: QueryPoolRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPoolRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryPoolRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): QueryPoolRequest { - const message = createBaseQueryPoolRequest(); - return message; - } - -}; - -function createBaseQueryPoolResponse(): QueryPoolResponse { - return { - pool: undefined - }; -} - -export const QueryPoolResponse = { - encode(message: QueryPoolResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.pool !== undefined) { - Pool.encode(message.pool, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPoolResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryPoolResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.pool = Pool.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryPoolResponse { - const message = createBaseQueryPoolResponse(); - message.pool = object.pool !== undefined && object.pool !== null ? Pool.fromPartial(object.pool) : undefined; - return message; - } - -}; - -function createBaseQueryParamsRequest(): QueryParamsRequest { - return {}; -} - -export const QueryParamsRequest = { - encode(_: QueryParamsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): QueryParamsRequest { - const message = createBaseQueryParamsRequest(); - return message; - } - -}; - -function createBaseQueryParamsResponse(): QueryParamsResponse { - return { - params: undefined - }; -} - -export const QueryParamsResponse = { - encode(message: QueryParamsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.params !== undefined) { - Params.encode(message.params, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.params = Params.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryParamsResponse { - const message = createBaseQueryParamsResponse(); - message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/staking/v1beta1/staking.ts b/packages/codegen/src/cosmos/staking/v1beta1/staking.ts deleted file mode 100644 index 902f9529..00000000 --- a/packages/codegen/src/cosmos/staking/v1beta1/staking.ts +++ /dev/null @@ -1,1863 +0,0 @@ -import { Header, HeaderSDKType } from "../../../tendermint/types/types"; -import { Timestamp } from "../../../google/protobuf/timestamp"; -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import { Duration, DurationSDKType } from "../../../google/protobuf/duration"; -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, toTimestamp, fromTimestamp, Long } from "../../../helpers"; -/** BondStatus is the status of a validator. */ - -export enum BondStatus { - /** BOND_STATUS_UNSPECIFIED - UNSPECIFIED defines an invalid validator status. */ - BOND_STATUS_UNSPECIFIED = 0, - - /** BOND_STATUS_UNBONDED - UNBONDED defines a validator that is not bonded. */ - BOND_STATUS_UNBONDED = 1, - - /** BOND_STATUS_UNBONDING - UNBONDING defines a validator that is unbonding. */ - BOND_STATUS_UNBONDING = 2, - - /** BOND_STATUS_BONDED - BONDED defines a validator that is bonded. */ - BOND_STATUS_BONDED = 3, - UNRECOGNIZED = -1, -} -export const BondStatusSDKType = BondStatus; -export function bondStatusFromJSON(object: any): BondStatus { - switch (object) { - case 0: - case "BOND_STATUS_UNSPECIFIED": - return BondStatus.BOND_STATUS_UNSPECIFIED; - - case 1: - case "BOND_STATUS_UNBONDED": - return BondStatus.BOND_STATUS_UNBONDED; - - case 2: - case "BOND_STATUS_UNBONDING": - return BondStatus.BOND_STATUS_UNBONDING; - - case 3: - case "BOND_STATUS_BONDED": - return BondStatus.BOND_STATUS_BONDED; - - case -1: - case "UNRECOGNIZED": - default: - return BondStatus.UNRECOGNIZED; - } -} -export function bondStatusToJSON(object: BondStatus): string { - switch (object) { - case BondStatus.BOND_STATUS_UNSPECIFIED: - return "BOND_STATUS_UNSPECIFIED"; - - case BondStatus.BOND_STATUS_UNBONDED: - return "BOND_STATUS_UNBONDED"; - - case BondStatus.BOND_STATUS_UNBONDING: - return "BOND_STATUS_UNBONDING"; - - case BondStatus.BOND_STATUS_BONDED: - return "BOND_STATUS_BONDED"; - - case BondStatus.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** - * 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). - */ - -export interface HistoricalInfo { - header?: Header; - valset: Validator[]; -} -/** - * 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). - */ - -export interface HistoricalInfoSDKType { - header?: HeaderSDKType; - valset: ValidatorSDKType[]; -} -/** - * CommissionRates defines the initial commission rates to be used for creating - * a validator. - */ - -export interface CommissionRates { - /** rate is the commission rate charged to delegators, as a fraction. */ - rate: string; - /** max_rate defines the maximum commission rate which validator can ever charge, as a fraction. */ - - maxRate: string; - /** max_change_rate defines the maximum daily increase of the validator commission, as a fraction. */ - - maxChangeRate: string; -} -/** - * CommissionRates defines the initial commission rates to be used for creating - * a validator. - */ - -export interface CommissionRatesSDKType { - rate: string; - max_rate: string; - max_change_rate: string; -} -/** Commission defines commission parameters for a given validator. */ - -export interface Commission { - /** commission_rates defines the initial commission rates to be used for creating a validator. */ - commissionRates?: CommissionRates; - /** update_time is the last time the commission rate was changed. */ - - updateTime?: Date; -} -/** Commission defines commission parameters for a given validator. */ - -export interface CommissionSDKType { - commission_rates?: CommissionRatesSDKType; - update_time?: Date; -} -/** Description defines a validator description. */ - -export interface Description { - /** moniker defines a human-readable name for the validator. */ - moniker: string; - /** identity defines an optional identity signature (ex. UPort or Keybase). */ - - identity: string; - /** website defines an optional website link. */ - - website: string; - /** security_contact defines an optional email for security contact. */ - - securityContact: string; - /** details define other optional details. */ - - details: string; -} -/** Description defines a validator description. */ - -export interface DescriptionSDKType { - moniker: string; - identity: string; - website: string; - security_contact: string; - details: string; -} -/** - * 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. - */ - -export interface Validator { - /** operator_address defines the address of the validator's operator; bech encoded in JSON. */ - operatorAddress: string; - /** consensus_pubkey is the consensus public key of the validator, as a Protobuf Any. */ - - consensusPubkey?: Any; - /** jailed defined whether the validator has been jailed from bonded status or not. */ - - jailed: boolean; - /** status is the validator status (bonded/unbonding/unbonded). */ - - status: BondStatus; - /** tokens define the delegated tokens (incl. self-delegation). */ - - tokens: string; - /** delegator_shares defines total shares issued to a validator's delegators. */ - - delegatorShares: string; - /** description defines the description terms for the validator. */ - - description?: Description; - /** unbonding_height defines, if unbonding, the height at which this validator has begun unbonding. */ - - unbondingHeight: Long; - /** unbonding_time defines, if unbonding, the min time for the validator to complete unbonding. */ - - unbondingTime?: Date; - /** commission defines the commission parameters. */ - - commission?: Commission; - /** min_self_delegation is the validator's self declared minimum self delegation. */ - - minSelfDelegation: string; -} -/** - * 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. - */ - -export interface ValidatorSDKType { - operator_address: string; - consensus_pubkey?: AnySDKType; - jailed: boolean; - status: BondStatus; - tokens: string; - delegator_shares: string; - description?: DescriptionSDKType; - unbonding_height: Long; - unbonding_time?: Date; - commission?: CommissionSDKType; - min_self_delegation: string; -} -/** ValAddresses defines a repeated set of validator addresses. */ - -export interface ValAddresses { - addresses: string[]; -} -/** ValAddresses defines a repeated set of validator addresses. */ - -export interface ValAddressesSDKType { - addresses: string[]; -} -/** - * 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. - */ - -export interface DVPair { - delegatorAddress: string; - validatorAddress: string; -} -/** - * 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. - */ - -export interface DVPairSDKType { - delegator_address: string; - validator_address: string; -} -/** DVPairs defines an array of DVPair objects. */ - -export interface DVPairs { - pairs: DVPair[]; -} -/** DVPairs defines an array of DVPair objects. */ - -export interface DVPairsSDKType { - pairs: DVPairSDKType[]; -} -/** - * 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. - */ - -export interface DVVTriplet { - delegatorAddress: string; - validatorSrcAddress: string; - validatorDstAddress: string; -} -/** - * 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. - */ - -export interface DVVTripletSDKType { - delegator_address: string; - validator_src_address: string; - validator_dst_address: string; -} -/** DVVTriplets defines an array of DVVTriplet objects. */ - -export interface DVVTriplets { - triplets: DVVTriplet[]; -} -/** DVVTriplets defines an array of DVVTriplet objects. */ - -export interface DVVTripletsSDKType { - triplets: DVVTripletSDKType[]; -} -/** - * 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. - */ - -export interface Delegation { - /** delegator_address is the bech32-encoded address of the delegator. */ - delegatorAddress: string; - /** validator_address is the bech32-encoded address of the validator. */ - - validatorAddress: string; - /** shares define the delegation shares received. */ - - shares: string; -} -/** - * 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. - */ - -export interface DelegationSDKType { - delegator_address: string; - validator_address: string; - shares: string; -} -/** - * UnbondingDelegation stores all of a single delegator's unbonding bonds - * for a single validator in an time-ordered list. - */ - -export interface UnbondingDelegation { - /** delegator_address is the bech32-encoded address of the delegator. */ - delegatorAddress: string; - /** validator_address is the bech32-encoded address of the validator. */ - - validatorAddress: string; - /** entries are the unbonding delegation entries. */ - - entries: UnbondingDelegationEntry[]; -} -/** - * UnbondingDelegation stores all of a single delegator's unbonding bonds - * for a single validator in an time-ordered list. - */ - -export interface UnbondingDelegationSDKType { - delegator_address: string; - validator_address: string; - entries: UnbondingDelegationEntrySDKType[]; -} -/** UnbondingDelegationEntry defines an unbonding object with relevant metadata. */ - -export interface UnbondingDelegationEntry { - /** creation_height is the height which the unbonding took place. */ - creationHeight: Long; - /** completion_time is the unix time for unbonding completion. */ - - completionTime?: Date; - /** initial_balance defines the tokens initially scheduled to receive at completion. */ - - initialBalance: string; - /** balance defines the tokens to receive at completion. */ - - balance: string; -} -/** UnbondingDelegationEntry defines an unbonding object with relevant metadata. */ - -export interface UnbondingDelegationEntrySDKType { - creation_height: Long; - completion_time?: Date; - initial_balance: string; - balance: string; -} -/** RedelegationEntry defines a redelegation object with relevant metadata. */ - -export interface RedelegationEntry { - /** creation_height defines the height which the redelegation took place. */ - creationHeight: Long; - /** completion_time defines the unix time for redelegation completion. */ - - completionTime?: Date; - /** initial_balance defines the initial balance when redelegation started. */ - - initialBalance: string; - /** shares_dst is the amount of destination-validator shares created by redelegation. */ - - sharesDst: string; -} -/** RedelegationEntry defines a redelegation object with relevant metadata. */ - -export interface RedelegationEntrySDKType { - creation_height: Long; - completion_time?: Date; - initial_balance: string; - shares_dst: string; -} -/** - * Redelegation contains the list of a particular delegator's redelegating bonds - * from a particular source validator to a particular destination validator. - */ - -export interface Redelegation { - /** delegator_address is the bech32-encoded address of the delegator. */ - delegatorAddress: string; - /** validator_src_address is the validator redelegation source operator address. */ - - validatorSrcAddress: string; - /** validator_dst_address is the validator redelegation destination operator address. */ - - validatorDstAddress: string; - /** entries are the redelegation entries. */ - - entries: RedelegationEntry[]; -} -/** - * Redelegation contains the list of a particular delegator's redelegating bonds - * from a particular source validator to a particular destination validator. - */ - -export interface RedelegationSDKType { - delegator_address: string; - validator_src_address: string; - validator_dst_address: string; - entries: RedelegationEntrySDKType[]; -} -/** Params defines the parameters for the staking module. */ - -export interface Params { - /** unbonding_time is the time duration of unbonding. */ - unbondingTime?: Duration; - /** max_validators is the maximum number of validators. */ - - maxValidators: number; - /** max_entries is the max entries for either unbonding delegation or redelegation (per pair/trio). */ - - maxEntries: number; - /** historical_entries is the number of historical entries to persist. */ - - historicalEntries: number; - /** bond_denom defines the bondable coin denomination. */ - - bondDenom: string; - /** min_commission_rate is the chain-wide minimum commission rate that a validator can charge their delegators */ - - minCommissionRate: string; -} -/** Params defines the parameters for the staking module. */ - -export interface ParamsSDKType { - unbonding_time?: DurationSDKType; - max_validators: number; - max_entries: number; - historical_entries: number; - bond_denom: string; - min_commission_rate: string; -} -/** - * DelegationResponse is equivalent to Delegation except that it contains a - * balance in addition to shares which is more suitable for client responses. - */ - -export interface DelegationResponse { - delegation?: Delegation; - balance?: Coin; -} -/** - * DelegationResponse is equivalent to Delegation except that it contains a - * balance in addition to shares which is more suitable for client responses. - */ - -export interface DelegationResponseSDKType { - delegation?: DelegationSDKType; - balance?: CoinSDKType; -} -/** - * RedelegationEntryResponse is equivalent to a RedelegationEntry except that it - * contains a balance in addition to shares which is more suitable for client - * responses. - */ - -export interface RedelegationEntryResponse { - redelegationEntry?: RedelegationEntry; - balance: string; -} -/** - * RedelegationEntryResponse is equivalent to a RedelegationEntry except that it - * contains a balance in addition to shares which is more suitable for client - * responses. - */ - -export interface RedelegationEntryResponseSDKType { - redelegation_entry?: RedelegationEntrySDKType; - balance: string; -} -/** - * RedelegationResponse is equivalent to a Redelegation except that its entries - * contain a balance in addition to shares which is more suitable for client - * responses. - */ - -export interface RedelegationResponse { - redelegation?: Redelegation; - entries: 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. - */ - -export interface RedelegationResponseSDKType { - redelegation?: RedelegationSDKType; - entries: RedelegationEntryResponseSDKType[]; -} -/** - * Pool is used for tracking bonded and not-bonded token supply of the bond - * denomination. - */ - -export interface Pool { - notBondedTokens: string; - bondedTokens: string; -} -/** - * Pool is used for tracking bonded and not-bonded token supply of the bond - * denomination. - */ - -export interface PoolSDKType { - not_bonded_tokens: string; - bonded_tokens: string; -} - -function createBaseHistoricalInfo(): HistoricalInfo { - return { - header: undefined, - valset: [] - }; -} - -export const HistoricalInfo = { - encode(message: HistoricalInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.header !== undefined) { - Header.encode(message.header, writer.uint32(10).fork()).ldelim(); - } - - for (const v of message.valset) { - Validator.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): HistoricalInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseHistoricalInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.header = Header.decode(reader, reader.uint32()); - break; - - case 2: - message.valset.push(Validator.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): HistoricalInfo { - const message = createBaseHistoricalInfo(); - message.header = object.header !== undefined && object.header !== null ? Header.fromPartial(object.header) : undefined; - message.valset = object.valset?.map(e => Validator.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseCommissionRates(): CommissionRates { - return { - rate: "", - maxRate: "", - maxChangeRate: "" - }; -} - -export const CommissionRates = { - encode(message: CommissionRates, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.rate !== "") { - writer.uint32(10).string(message.rate); - } - - if (message.maxRate !== "") { - writer.uint32(18).string(message.maxRate); - } - - if (message.maxChangeRate !== "") { - writer.uint32(26).string(message.maxChangeRate); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): CommissionRates { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCommissionRates(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.rate = reader.string(); - break; - - case 2: - message.maxRate = reader.string(); - break; - - case 3: - message.maxChangeRate = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): CommissionRates { - const message = createBaseCommissionRates(); - message.rate = object.rate ?? ""; - message.maxRate = object.maxRate ?? ""; - message.maxChangeRate = object.maxChangeRate ?? ""; - return message; - } - -}; - -function createBaseCommission(): Commission { - return { - commissionRates: undefined, - updateTime: undefined - }; -} - -export const Commission = { - encode(message: Commission, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.commissionRates !== undefined) { - CommissionRates.encode(message.commissionRates, writer.uint32(10).fork()).ldelim(); - } - - if (message.updateTime !== undefined) { - Timestamp.encode(toTimestamp(message.updateTime), writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Commission { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCommission(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.commissionRates = CommissionRates.decode(reader, reader.uint32()); - break; - - case 2: - message.updateTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Commission { - const message = createBaseCommission(); - message.commissionRates = object.commissionRates !== undefined && object.commissionRates !== null ? CommissionRates.fromPartial(object.commissionRates) : undefined; - message.updateTime = object.updateTime ?? undefined; - return message; - } - -}; - -function createBaseDescription(): Description { - return { - moniker: "", - identity: "", - website: "", - securityContact: "", - details: "" - }; -} - -export const Description = { - encode(message: Description, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.moniker !== "") { - writer.uint32(10).string(message.moniker); - } - - if (message.identity !== "") { - writer.uint32(18).string(message.identity); - } - - if (message.website !== "") { - writer.uint32(26).string(message.website); - } - - if (message.securityContact !== "") { - writer.uint32(34).string(message.securityContact); - } - - if (message.details !== "") { - writer.uint32(42).string(message.details); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Description { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDescription(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.moniker = reader.string(); - break; - - case 2: - message.identity = reader.string(); - break; - - case 3: - message.website = reader.string(); - break; - - case 4: - message.securityContact = reader.string(); - break; - - case 5: - message.details = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Description { - const message = createBaseDescription(); - message.moniker = object.moniker ?? ""; - message.identity = object.identity ?? ""; - message.website = object.website ?? ""; - message.securityContact = object.securityContact ?? ""; - message.details = object.details ?? ""; - return message; - } - -}; - -function createBaseValidator(): Validator { - return { - operatorAddress: "", - consensusPubkey: undefined, - jailed: false, - status: 0, - tokens: "", - delegatorShares: "", - description: undefined, - unbondingHeight: Long.ZERO, - unbondingTime: undefined, - commission: undefined, - minSelfDelegation: "" - }; -} - -export const Validator = { - encode(message: Validator, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.operatorAddress !== "") { - writer.uint32(10).string(message.operatorAddress); - } - - if (message.consensusPubkey !== undefined) { - Any.encode(message.consensusPubkey, writer.uint32(18).fork()).ldelim(); - } - - if (message.jailed === true) { - writer.uint32(24).bool(message.jailed); - } - - if (message.status !== 0) { - writer.uint32(32).int32(message.status); - } - - if (message.tokens !== "") { - writer.uint32(42).string(message.tokens); - } - - if (message.delegatorShares !== "") { - writer.uint32(50).string(message.delegatorShares); - } - - if (message.description !== undefined) { - Description.encode(message.description, writer.uint32(58).fork()).ldelim(); - } - - if (!message.unbondingHeight.isZero()) { - writer.uint32(64).int64(message.unbondingHeight); - } - - if (message.unbondingTime !== undefined) { - Timestamp.encode(toTimestamp(message.unbondingTime), writer.uint32(74).fork()).ldelim(); - } - - if (message.commission !== undefined) { - Commission.encode(message.commission, writer.uint32(82).fork()).ldelim(); - } - - if (message.minSelfDelegation !== "") { - writer.uint32(90).string(message.minSelfDelegation); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Validator { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidator(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.operatorAddress = reader.string(); - break; - - case 2: - message.consensusPubkey = Any.decode(reader, reader.uint32()); - break; - - case 3: - message.jailed = reader.bool(); - break; - - case 4: - message.status = (reader.int32() as any); - break; - - case 5: - message.tokens = reader.string(); - break; - - case 6: - message.delegatorShares = reader.string(); - break; - - case 7: - message.description = Description.decode(reader, reader.uint32()); - break; - - case 8: - message.unbondingHeight = (reader.int64() as Long); - break; - - case 9: - message.unbondingTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - case 10: - message.commission = Commission.decode(reader, reader.uint32()); - break; - - case 11: - message.minSelfDelegation = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Validator { - const message = createBaseValidator(); - message.operatorAddress = object.operatorAddress ?? ""; - message.consensusPubkey = object.consensusPubkey !== undefined && object.consensusPubkey !== null ? Any.fromPartial(object.consensusPubkey) : undefined; - message.jailed = object.jailed ?? false; - message.status = object.status ?? 0; - message.tokens = object.tokens ?? ""; - message.delegatorShares = object.delegatorShares ?? ""; - message.description = object.description !== undefined && object.description !== null ? Description.fromPartial(object.description) : undefined; - message.unbondingHeight = object.unbondingHeight !== undefined && object.unbondingHeight !== null ? Long.fromValue(object.unbondingHeight) : Long.ZERO; - message.unbondingTime = object.unbondingTime ?? undefined; - message.commission = object.commission !== undefined && object.commission !== null ? Commission.fromPartial(object.commission) : undefined; - message.minSelfDelegation = object.minSelfDelegation ?? ""; - return message; - } - -}; - -function createBaseValAddresses(): ValAddresses { - return { - addresses: [] - }; -} - -export const ValAddresses = { - encode(message: ValAddresses, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.addresses) { - writer.uint32(10).string(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ValAddresses { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValAddresses(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.addresses.push(reader.string()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ValAddresses { - const message = createBaseValAddresses(); - message.addresses = object.addresses?.map(e => e) || []; - return message; - } - -}; - -function createBaseDVPair(): DVPair { - return { - delegatorAddress: "", - validatorAddress: "" - }; -} - -export const DVPair = { - encode(message: DVPair, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); - } - - if (message.validatorAddress !== "") { - writer.uint32(18).string(message.validatorAddress); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): DVPair { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDVPair(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegatorAddress = reader.string(); - break; - - case 2: - message.validatorAddress = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): DVPair { - const message = createBaseDVPair(); - message.delegatorAddress = object.delegatorAddress ?? ""; - message.validatorAddress = object.validatorAddress ?? ""; - return message; - } - -}; - -function createBaseDVPairs(): DVPairs { - return { - pairs: [] - }; -} - -export const DVPairs = { - encode(message: DVPairs, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.pairs) { - DVPair.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): DVPairs { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDVPairs(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.pairs.push(DVPair.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): DVPairs { - const message = createBaseDVPairs(); - message.pairs = object.pairs?.map(e => DVPair.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseDVVTriplet(): DVVTriplet { - return { - delegatorAddress: "", - validatorSrcAddress: "", - validatorDstAddress: "" - }; -} - -export const DVVTriplet = { - encode(message: DVVTriplet, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); - } - - if (message.validatorSrcAddress !== "") { - writer.uint32(18).string(message.validatorSrcAddress); - } - - if (message.validatorDstAddress !== "") { - writer.uint32(26).string(message.validatorDstAddress); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): DVVTriplet { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDVVTriplet(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegatorAddress = reader.string(); - break; - - case 2: - message.validatorSrcAddress = reader.string(); - break; - - case 3: - message.validatorDstAddress = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): DVVTriplet { - const message = createBaseDVVTriplet(); - message.delegatorAddress = object.delegatorAddress ?? ""; - message.validatorSrcAddress = object.validatorSrcAddress ?? ""; - message.validatorDstAddress = object.validatorDstAddress ?? ""; - return message; - } - -}; - -function createBaseDVVTriplets(): DVVTriplets { - return { - triplets: [] - }; -} - -export const DVVTriplets = { - encode(message: DVVTriplets, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.triplets) { - DVVTriplet.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): DVVTriplets { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDVVTriplets(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.triplets.push(DVVTriplet.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): DVVTriplets { - const message = createBaseDVVTriplets(); - message.triplets = object.triplets?.map(e => DVVTriplet.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseDelegation(): Delegation { - return { - delegatorAddress: "", - validatorAddress: "", - shares: "" - }; -} - -export const Delegation = { - encode(message: Delegation, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); - } - - if (message.validatorAddress !== "") { - writer.uint32(18).string(message.validatorAddress); - } - - if (message.shares !== "") { - writer.uint32(26).string(message.shares); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Delegation { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDelegation(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegatorAddress = reader.string(); - break; - - case 2: - message.validatorAddress = reader.string(); - break; - - case 3: - message.shares = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Delegation { - const message = createBaseDelegation(); - message.delegatorAddress = object.delegatorAddress ?? ""; - message.validatorAddress = object.validatorAddress ?? ""; - message.shares = object.shares ?? ""; - return message; - } - -}; - -function createBaseUnbondingDelegation(): UnbondingDelegation { - return { - delegatorAddress: "", - validatorAddress: "", - entries: [] - }; -} - -export const UnbondingDelegation = { - encode(message: UnbondingDelegation, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); - } - - if (message.validatorAddress !== "") { - writer.uint32(18).string(message.validatorAddress); - } - - for (const v of message.entries) { - UnbondingDelegationEntry.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): UnbondingDelegation { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseUnbondingDelegation(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegatorAddress = reader.string(); - break; - - case 2: - message.validatorAddress = reader.string(); - break; - - case 3: - message.entries.push(UnbondingDelegationEntry.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): UnbondingDelegation { - const message = createBaseUnbondingDelegation(); - message.delegatorAddress = object.delegatorAddress ?? ""; - message.validatorAddress = object.validatorAddress ?? ""; - message.entries = object.entries?.map(e => UnbondingDelegationEntry.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseUnbondingDelegationEntry(): UnbondingDelegationEntry { - return { - creationHeight: Long.ZERO, - completionTime: undefined, - initialBalance: "", - balance: "" - }; -} - -export const UnbondingDelegationEntry = { - encode(message: UnbondingDelegationEntry, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.creationHeight.isZero()) { - writer.uint32(8).int64(message.creationHeight); - } - - if (message.completionTime !== undefined) { - Timestamp.encode(toTimestamp(message.completionTime), writer.uint32(18).fork()).ldelim(); - } - - if (message.initialBalance !== "") { - writer.uint32(26).string(message.initialBalance); - } - - if (message.balance !== "") { - writer.uint32(34).string(message.balance); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): UnbondingDelegationEntry { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseUnbondingDelegationEntry(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.creationHeight = (reader.int64() as Long); - break; - - case 2: - message.completionTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - case 3: - message.initialBalance = reader.string(); - break; - - case 4: - message.balance = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): UnbondingDelegationEntry { - const message = createBaseUnbondingDelegationEntry(); - message.creationHeight = object.creationHeight !== undefined && object.creationHeight !== null ? Long.fromValue(object.creationHeight) : Long.ZERO; - message.completionTime = object.completionTime ?? undefined; - message.initialBalance = object.initialBalance ?? ""; - message.balance = object.balance ?? ""; - return message; - } - -}; - -function createBaseRedelegationEntry(): RedelegationEntry { - return { - creationHeight: Long.ZERO, - completionTime: undefined, - initialBalance: "", - sharesDst: "" - }; -} - -export const RedelegationEntry = { - encode(message: RedelegationEntry, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.creationHeight.isZero()) { - writer.uint32(8).int64(message.creationHeight); - } - - if (message.completionTime !== undefined) { - Timestamp.encode(toTimestamp(message.completionTime), writer.uint32(18).fork()).ldelim(); - } - - if (message.initialBalance !== "") { - writer.uint32(26).string(message.initialBalance); - } - - if (message.sharesDst !== "") { - writer.uint32(34).string(message.sharesDst); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): RedelegationEntry { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRedelegationEntry(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.creationHeight = (reader.int64() as Long); - break; - - case 2: - message.completionTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - case 3: - message.initialBalance = reader.string(); - break; - - case 4: - message.sharesDst = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): RedelegationEntry { - const message = createBaseRedelegationEntry(); - message.creationHeight = object.creationHeight !== undefined && object.creationHeight !== null ? Long.fromValue(object.creationHeight) : Long.ZERO; - message.completionTime = object.completionTime ?? undefined; - message.initialBalance = object.initialBalance ?? ""; - message.sharesDst = object.sharesDst ?? ""; - return message; - } - -}; - -function createBaseRedelegation(): Redelegation { - return { - delegatorAddress: "", - validatorSrcAddress: "", - validatorDstAddress: "", - entries: [] - }; -} - -export const Redelegation = { - encode(message: Redelegation, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); - } - - if (message.validatorSrcAddress !== "") { - writer.uint32(18).string(message.validatorSrcAddress); - } - - if (message.validatorDstAddress !== "") { - writer.uint32(26).string(message.validatorDstAddress); - } - - for (const v of message.entries) { - RedelegationEntry.encode(v!, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Redelegation { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRedelegation(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegatorAddress = reader.string(); - break; - - case 2: - message.validatorSrcAddress = reader.string(); - break; - - case 3: - message.validatorDstAddress = reader.string(); - break; - - case 4: - message.entries.push(RedelegationEntry.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Redelegation { - const message = createBaseRedelegation(); - message.delegatorAddress = object.delegatorAddress ?? ""; - message.validatorSrcAddress = object.validatorSrcAddress ?? ""; - message.validatorDstAddress = object.validatorDstAddress ?? ""; - message.entries = object.entries?.map(e => RedelegationEntry.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseParams(): Params { - return { - unbondingTime: undefined, - maxValidators: 0, - maxEntries: 0, - historicalEntries: 0, - bondDenom: "", - minCommissionRate: "" - }; -} - -export const Params = { - encode(message: Params, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.unbondingTime !== undefined) { - Duration.encode(message.unbondingTime, writer.uint32(10).fork()).ldelim(); - } - - if (message.maxValidators !== 0) { - writer.uint32(16).uint32(message.maxValidators); - } - - if (message.maxEntries !== 0) { - writer.uint32(24).uint32(message.maxEntries); - } - - if (message.historicalEntries !== 0) { - writer.uint32(32).uint32(message.historicalEntries); - } - - if (message.bondDenom !== "") { - writer.uint32(42).string(message.bondDenom); - } - - if (message.minCommissionRate !== "") { - writer.uint32(50).string(message.minCommissionRate); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Params { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseParams(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.unbondingTime = Duration.decode(reader, reader.uint32()); - break; - - case 2: - message.maxValidators = reader.uint32(); - break; - - case 3: - message.maxEntries = reader.uint32(); - break; - - case 4: - message.historicalEntries = reader.uint32(); - break; - - case 5: - message.bondDenom = reader.string(); - break; - - case 6: - message.minCommissionRate = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Params { - const message = createBaseParams(); - message.unbondingTime = object.unbondingTime !== undefined && object.unbondingTime !== null ? Duration.fromPartial(object.unbondingTime) : undefined; - message.maxValidators = object.maxValidators ?? 0; - message.maxEntries = object.maxEntries ?? 0; - message.historicalEntries = object.historicalEntries ?? 0; - message.bondDenom = object.bondDenom ?? ""; - message.minCommissionRate = object.minCommissionRate ?? ""; - return message; - } - -}; - -function createBaseDelegationResponse(): DelegationResponse { - return { - delegation: undefined, - balance: undefined - }; -} - -export const DelegationResponse = { - encode(message: DelegationResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegation !== undefined) { - Delegation.encode(message.delegation, writer.uint32(10).fork()).ldelim(); - } - - if (message.balance !== undefined) { - Coin.encode(message.balance, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): DelegationResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDelegationResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegation = Delegation.decode(reader, reader.uint32()); - break; - - case 2: - message.balance = Coin.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): DelegationResponse { - const message = createBaseDelegationResponse(); - message.delegation = object.delegation !== undefined && object.delegation !== null ? Delegation.fromPartial(object.delegation) : undefined; - message.balance = object.balance !== undefined && object.balance !== null ? Coin.fromPartial(object.balance) : undefined; - return message; - } - -}; - -function createBaseRedelegationEntryResponse(): RedelegationEntryResponse { - return { - redelegationEntry: undefined, - balance: "" - }; -} - -export const RedelegationEntryResponse = { - encode(message: RedelegationEntryResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.redelegationEntry !== undefined) { - RedelegationEntry.encode(message.redelegationEntry, writer.uint32(10).fork()).ldelim(); - } - - if (message.balance !== "") { - writer.uint32(34).string(message.balance); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): RedelegationEntryResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRedelegationEntryResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.redelegationEntry = RedelegationEntry.decode(reader, reader.uint32()); - break; - - case 4: - message.balance = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): RedelegationEntryResponse { - const message = createBaseRedelegationEntryResponse(); - message.redelegationEntry = object.redelegationEntry !== undefined && object.redelegationEntry !== null ? RedelegationEntry.fromPartial(object.redelegationEntry) : undefined; - message.balance = object.balance ?? ""; - return message; - } - -}; - -function createBaseRedelegationResponse(): RedelegationResponse { - return { - redelegation: undefined, - entries: [] - }; -} - -export const RedelegationResponse = { - encode(message: RedelegationResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.redelegation !== undefined) { - Redelegation.encode(message.redelegation, writer.uint32(10).fork()).ldelim(); - } - - for (const v of message.entries) { - RedelegationEntryResponse.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): RedelegationResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRedelegationResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.redelegation = Redelegation.decode(reader, reader.uint32()); - break; - - case 2: - message.entries.push(RedelegationEntryResponse.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): RedelegationResponse { - const message = createBaseRedelegationResponse(); - message.redelegation = object.redelegation !== undefined && object.redelegation !== null ? Redelegation.fromPartial(object.redelegation) : undefined; - message.entries = object.entries?.map(e => RedelegationEntryResponse.fromPartial(e)) || []; - return message; - } - -}; - -function createBasePool(): Pool { - return { - notBondedTokens: "", - bondedTokens: "" - }; -} - -export const Pool = { - encode(message: Pool, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.notBondedTokens !== "") { - writer.uint32(10).string(message.notBondedTokens); - } - - if (message.bondedTokens !== "") { - writer.uint32(18).string(message.bondedTokens); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Pool { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePool(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.notBondedTokens = reader.string(); - break; - - case 2: - message.bondedTokens = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Pool { - const message = createBasePool(); - message.notBondedTokens = object.notBondedTokens ?? ""; - message.bondedTokens = object.bondedTokens ?? ""; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/staking/v1beta1/tx.rpc.msg.ts b/packages/codegen/src/cosmos/staking/v1beta1/tx.rpc.msg.ts deleted file mode 100644 index b530ca14..00000000 --- a/packages/codegen/src/cosmos/staking/v1beta1/tx.rpc.msg.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { MsgCreateValidator, MsgCreateValidatorResponse, MsgEditValidator, MsgEditValidatorResponse, MsgDelegate, MsgDelegateResponse, MsgBeginRedelegate, MsgBeginRedelegateResponse, MsgUndelegate, MsgUndelegateResponse } from "./tx"; -/** Msg defines the staking Msg service. */ - -export interface Msg { - /** CreateValidator defines a method for creating a new validator. */ - createValidator(request: MsgCreateValidator): Promise; - /** EditValidator defines a method for editing an existing validator. */ - - editValidator(request: MsgEditValidator): Promise; - /** - * Delegate defines a method for performing a delegation of coins - * from a delegator to a validator. - */ - - delegate(request: MsgDelegate): Promise; - /** - * BeginRedelegate defines a method for performing a redelegation - * of coins from a delegator and source validator to a destination validator. - */ - - beginRedelegate(request: MsgBeginRedelegate): Promise; - /** - * Undelegate defines a method for performing an undelegation from a - * delegate and a validator. - */ - - undelegate(request: MsgUndelegate): Promise; -} -export class MsgClientImpl implements Msg { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.createValidator = this.createValidator.bind(this); - this.editValidator = this.editValidator.bind(this); - this.delegate = this.delegate.bind(this); - this.beginRedelegate = this.beginRedelegate.bind(this); - this.undelegate = this.undelegate.bind(this); - } - - createValidator(request: MsgCreateValidator): Promise { - const data = MsgCreateValidator.encode(request).finish(); - const promise = this.rpc.request("cosmos.staking.v1beta1.Msg", "CreateValidator", data); - return promise.then(data => MsgCreateValidatorResponse.decode(new _m0.Reader(data))); - } - - editValidator(request: MsgEditValidator): Promise { - const data = MsgEditValidator.encode(request).finish(); - const promise = this.rpc.request("cosmos.staking.v1beta1.Msg", "EditValidator", data); - return promise.then(data => MsgEditValidatorResponse.decode(new _m0.Reader(data))); - } - - delegate(request: MsgDelegate): Promise { - const data = MsgDelegate.encode(request).finish(); - const promise = this.rpc.request("cosmos.staking.v1beta1.Msg", "Delegate", data); - return promise.then(data => MsgDelegateResponse.decode(new _m0.Reader(data))); - } - - beginRedelegate(request: MsgBeginRedelegate): Promise { - const data = MsgBeginRedelegate.encode(request).finish(); - const promise = this.rpc.request("cosmos.staking.v1beta1.Msg", "BeginRedelegate", data); - return promise.then(data => MsgBeginRedelegateResponse.decode(new _m0.Reader(data))); - } - - undelegate(request: MsgUndelegate): Promise { - const data = MsgUndelegate.encode(request).finish(); - const promise = this.rpc.request("cosmos.staking.v1beta1.Msg", "Undelegate", data); - return promise.then(data => MsgUndelegateResponse.decode(new _m0.Reader(data))); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/staking/v1beta1/tx.ts b/packages/codegen/src/cosmos/staking/v1beta1/tx.ts deleted file mode 100644 index df65c4af..00000000 --- a/packages/codegen/src/cosmos/staking/v1beta1/tx.ts +++ /dev/null @@ -1,728 +0,0 @@ -import { Description, DescriptionSDKType, CommissionRates, CommissionRatesSDKType } from "./staking"; -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import { Timestamp } from "../../../google/protobuf/timestamp"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, toTimestamp, fromTimestamp } from "../../../helpers"; -/** MsgCreateValidator defines a SDK message for creating a new validator. */ - -export interface MsgCreateValidator { - description?: Description; - commission?: CommissionRates; - minSelfDelegation: string; - delegatorAddress: string; - validatorAddress: string; - pubkey?: Any; - value?: Coin; -} -/** MsgCreateValidator defines a SDK message for creating a new validator. */ - -export interface MsgCreateValidatorSDKType { - description?: DescriptionSDKType; - commission?: CommissionRatesSDKType; - min_self_delegation: string; - delegator_address: string; - validator_address: string; - pubkey?: AnySDKType; - value?: CoinSDKType; -} -/** MsgCreateValidatorResponse defines the Msg/CreateValidator response type. */ - -export interface MsgCreateValidatorResponse {} -/** MsgCreateValidatorResponse defines the Msg/CreateValidator response type. */ - -export interface MsgCreateValidatorResponseSDKType {} -/** MsgEditValidator defines a SDK message for editing an existing validator. */ - -export interface MsgEditValidator { - description?: Description; - validatorAddress: string; - /** - * 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 - */ - - commissionRate: string; - minSelfDelegation: string; -} -/** MsgEditValidator defines a SDK message for editing an existing validator. */ - -export interface MsgEditValidatorSDKType { - description?: DescriptionSDKType; - validator_address: string; - commission_rate: string; - min_self_delegation: string; -} -/** MsgEditValidatorResponse defines the Msg/EditValidator response type. */ - -export interface MsgEditValidatorResponse {} -/** MsgEditValidatorResponse defines the Msg/EditValidator response type. */ - -export interface MsgEditValidatorResponseSDKType {} -/** - * MsgDelegate defines a SDK message for performing a delegation of coins - * from a delegator to a validator. - */ - -export interface MsgDelegate { - delegatorAddress: string; - validatorAddress: string; - amount?: Coin; -} -/** - * MsgDelegate defines a SDK message for performing a delegation of coins - * from a delegator to a validator. - */ - -export interface MsgDelegateSDKType { - delegator_address: string; - validator_address: string; - amount?: CoinSDKType; -} -/** MsgDelegateResponse defines the Msg/Delegate response type. */ - -export interface MsgDelegateResponse {} -/** MsgDelegateResponse defines the Msg/Delegate response type. */ - -export interface MsgDelegateResponseSDKType {} -/** - * MsgBeginRedelegate defines a SDK message for performing a redelegation - * of coins from a delegator and source validator to a destination validator. - */ - -export interface MsgBeginRedelegate { - delegatorAddress: string; - validatorSrcAddress: string; - validatorDstAddress: string; - amount?: Coin; -} -/** - * MsgBeginRedelegate defines a SDK message for performing a redelegation - * of coins from a delegator and source validator to a destination validator. - */ - -export interface MsgBeginRedelegateSDKType { - delegator_address: string; - validator_src_address: string; - validator_dst_address: string; - amount?: CoinSDKType; -} -/** MsgBeginRedelegateResponse defines the Msg/BeginRedelegate response type. */ - -export interface MsgBeginRedelegateResponse { - completionTime?: Date; -} -/** MsgBeginRedelegateResponse defines the Msg/BeginRedelegate response type. */ - -export interface MsgBeginRedelegateResponseSDKType { - completion_time?: Date; -} -/** - * MsgUndelegate defines a SDK message for performing an undelegation from a - * delegate and a validator. - */ - -export interface MsgUndelegate { - delegatorAddress: string; - validatorAddress: string; - amount?: Coin; -} -/** - * MsgUndelegate defines a SDK message for performing an undelegation from a - * delegate and a validator. - */ - -export interface MsgUndelegateSDKType { - delegator_address: string; - validator_address: string; - amount?: CoinSDKType; -} -/** MsgUndelegateResponse defines the Msg/Undelegate response type. */ - -export interface MsgUndelegateResponse { - completionTime?: Date; -} -/** MsgUndelegateResponse defines the Msg/Undelegate response type. */ - -export interface MsgUndelegateResponseSDKType { - completion_time?: Date; -} - -function createBaseMsgCreateValidator(): MsgCreateValidator { - return { - description: undefined, - commission: undefined, - minSelfDelegation: "", - delegatorAddress: "", - validatorAddress: "", - pubkey: undefined, - value: undefined - }; -} - -export const MsgCreateValidator = { - encode(message: MsgCreateValidator, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.description !== undefined) { - Description.encode(message.description, writer.uint32(10).fork()).ldelim(); - } - - if (message.commission !== undefined) { - CommissionRates.encode(message.commission, writer.uint32(18).fork()).ldelim(); - } - - if (message.minSelfDelegation !== "") { - writer.uint32(26).string(message.minSelfDelegation); - } - - if (message.delegatorAddress !== "") { - writer.uint32(34).string(message.delegatorAddress); - } - - if (message.validatorAddress !== "") { - writer.uint32(42).string(message.validatorAddress); - } - - if (message.pubkey !== undefined) { - Any.encode(message.pubkey, writer.uint32(50).fork()).ldelim(); - } - - if (message.value !== undefined) { - Coin.encode(message.value, writer.uint32(58).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateValidator { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgCreateValidator(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.description = Description.decode(reader, reader.uint32()); - break; - - case 2: - message.commission = CommissionRates.decode(reader, reader.uint32()); - break; - - case 3: - message.minSelfDelegation = reader.string(); - break; - - case 4: - message.delegatorAddress = reader.string(); - break; - - case 5: - message.validatorAddress = reader.string(); - break; - - case 6: - message.pubkey = Any.decode(reader, reader.uint32()); - break; - - case 7: - message.value = Coin.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgCreateValidator { - const message = createBaseMsgCreateValidator(); - message.description = object.description !== undefined && object.description !== null ? Description.fromPartial(object.description) : undefined; - message.commission = object.commission !== undefined && object.commission !== null ? CommissionRates.fromPartial(object.commission) : undefined; - message.minSelfDelegation = object.minSelfDelegation ?? ""; - message.delegatorAddress = object.delegatorAddress ?? ""; - message.validatorAddress = object.validatorAddress ?? ""; - message.pubkey = object.pubkey !== undefined && object.pubkey !== null ? Any.fromPartial(object.pubkey) : undefined; - message.value = object.value !== undefined && object.value !== null ? Coin.fromPartial(object.value) : undefined; - return message; - } - -}; - -function createBaseMsgCreateValidatorResponse(): MsgCreateValidatorResponse { - return {}; -} - -export const MsgCreateValidatorResponse = { - encode(_: MsgCreateValidatorResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateValidatorResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgCreateValidatorResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgCreateValidatorResponse { - const message = createBaseMsgCreateValidatorResponse(); - return message; - } - -}; - -function createBaseMsgEditValidator(): MsgEditValidator { - return { - description: undefined, - validatorAddress: "", - commissionRate: "", - minSelfDelegation: "" - }; -} - -export const MsgEditValidator = { - encode(message: MsgEditValidator, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.description !== undefined) { - Description.encode(message.description, writer.uint32(10).fork()).ldelim(); - } - - if (message.validatorAddress !== "") { - writer.uint32(18).string(message.validatorAddress); - } - - if (message.commissionRate !== "") { - writer.uint32(26).string(message.commissionRate); - } - - if (message.minSelfDelegation !== "") { - writer.uint32(34).string(message.minSelfDelegation); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgEditValidator { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgEditValidator(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.description = Description.decode(reader, reader.uint32()); - break; - - case 2: - message.validatorAddress = reader.string(); - break; - - case 3: - message.commissionRate = reader.string(); - break; - - case 4: - message.minSelfDelegation = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgEditValidator { - const message = createBaseMsgEditValidator(); - message.description = object.description !== undefined && object.description !== null ? Description.fromPartial(object.description) : undefined; - message.validatorAddress = object.validatorAddress ?? ""; - message.commissionRate = object.commissionRate ?? ""; - message.minSelfDelegation = object.minSelfDelegation ?? ""; - return message; - } - -}; - -function createBaseMsgEditValidatorResponse(): MsgEditValidatorResponse { - return {}; -} - -export const MsgEditValidatorResponse = { - encode(_: MsgEditValidatorResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgEditValidatorResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgEditValidatorResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgEditValidatorResponse { - const message = createBaseMsgEditValidatorResponse(); - return message; - } - -}; - -function createBaseMsgDelegate(): MsgDelegate { - return { - delegatorAddress: "", - validatorAddress: "", - amount: undefined - }; -} - -export const MsgDelegate = { - encode(message: MsgDelegate, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); - } - - if (message.validatorAddress !== "") { - writer.uint32(18).string(message.validatorAddress); - } - - if (message.amount !== undefined) { - Coin.encode(message.amount, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgDelegate { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgDelegate(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegatorAddress = reader.string(); - break; - - case 2: - message.validatorAddress = reader.string(); - break; - - case 3: - message.amount = Coin.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgDelegate { - const message = createBaseMsgDelegate(); - message.delegatorAddress = object.delegatorAddress ?? ""; - message.validatorAddress = object.validatorAddress ?? ""; - message.amount = object.amount !== undefined && object.amount !== null ? Coin.fromPartial(object.amount) : undefined; - return message; - } - -}; - -function createBaseMsgDelegateResponse(): MsgDelegateResponse { - return {}; -} - -export const MsgDelegateResponse = { - encode(_: MsgDelegateResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgDelegateResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgDelegateResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgDelegateResponse { - const message = createBaseMsgDelegateResponse(); - return message; - } - -}; - -function createBaseMsgBeginRedelegate(): MsgBeginRedelegate { - return { - delegatorAddress: "", - validatorSrcAddress: "", - validatorDstAddress: "", - amount: undefined - }; -} - -export const MsgBeginRedelegate = { - encode(message: MsgBeginRedelegate, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); - } - - if (message.validatorSrcAddress !== "") { - writer.uint32(18).string(message.validatorSrcAddress); - } - - if (message.validatorDstAddress !== "") { - writer.uint32(26).string(message.validatorDstAddress); - } - - if (message.amount !== undefined) { - Coin.encode(message.amount, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgBeginRedelegate { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgBeginRedelegate(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegatorAddress = reader.string(); - break; - - case 2: - message.validatorSrcAddress = reader.string(); - break; - - case 3: - message.validatorDstAddress = reader.string(); - break; - - case 4: - message.amount = Coin.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgBeginRedelegate { - const message = createBaseMsgBeginRedelegate(); - message.delegatorAddress = object.delegatorAddress ?? ""; - message.validatorSrcAddress = object.validatorSrcAddress ?? ""; - message.validatorDstAddress = object.validatorDstAddress ?? ""; - message.amount = object.amount !== undefined && object.amount !== null ? Coin.fromPartial(object.amount) : undefined; - return message; - } - -}; - -function createBaseMsgBeginRedelegateResponse(): MsgBeginRedelegateResponse { - return { - completionTime: undefined - }; -} - -export const MsgBeginRedelegateResponse = { - encode(message: MsgBeginRedelegateResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.completionTime !== undefined) { - Timestamp.encode(toTimestamp(message.completionTime), writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgBeginRedelegateResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgBeginRedelegateResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.completionTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgBeginRedelegateResponse { - const message = createBaseMsgBeginRedelegateResponse(); - message.completionTime = object.completionTime ?? undefined; - return message; - } - -}; - -function createBaseMsgUndelegate(): MsgUndelegate { - return { - delegatorAddress: "", - validatorAddress: "", - amount: undefined - }; -} - -export const MsgUndelegate = { - encode(message: MsgUndelegate, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); - } - - if (message.validatorAddress !== "") { - writer.uint32(18).string(message.validatorAddress); - } - - if (message.amount !== undefined) { - Coin.encode(message.amount, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUndelegate { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUndelegate(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.delegatorAddress = reader.string(); - break; - - case 2: - message.validatorAddress = reader.string(); - break; - - case 3: - message.amount = Coin.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgUndelegate { - const message = createBaseMsgUndelegate(); - message.delegatorAddress = object.delegatorAddress ?? ""; - message.validatorAddress = object.validatorAddress ?? ""; - message.amount = object.amount !== undefined && object.amount !== null ? Coin.fromPartial(object.amount) : undefined; - return message; - } - -}; - -function createBaseMsgUndelegateResponse(): MsgUndelegateResponse { - return { - completionTime: undefined - }; -} - -export const MsgUndelegateResponse = { - encode(message: MsgUndelegateResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.completionTime !== undefined) { - Timestamp.encode(toTimestamp(message.completionTime), writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUndelegateResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUndelegateResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.completionTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgUndelegateResponse { - const message = createBaseMsgUndelegateResponse(); - message.completionTime = object.completionTime ?? undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/tx/signing/v1beta1/signing.ts b/packages/codegen/src/cosmos/tx/signing/v1beta1/signing.ts deleted file mode 100644 index a13bd8ec..00000000 --- a/packages/codegen/src/cosmos/tx/signing/v1beta1/signing.ts +++ /dev/null @@ -1,465 +0,0 @@ -import { CompactBitArray, CompactBitArraySDKType } from "../../../crypto/multisig/v1beta1/multisig"; -import { Any, AnySDKType } from "../../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../../helpers"; -/** - * 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. - */ - -export enum SignMode { - /** - * SIGN_MODE_UNSPECIFIED - SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be - * rejected. - */ - SIGN_MODE_UNSPECIFIED = 0, - - /** - * SIGN_MODE_DIRECT - 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 - 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 not supported. - */ - SIGN_MODE_TEXTUAL = 2, - - /** - * SIGN_MODE_DIRECT_AUX - 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 - 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, - UNRECOGNIZED = -1, -} -export const SignModeSDKType = SignMode; -export function signModeFromJSON(object: any): SignMode { - switch (object) { - case 0: - case "SIGN_MODE_UNSPECIFIED": - return SignMode.SIGN_MODE_UNSPECIFIED; - - case 1: - case "SIGN_MODE_DIRECT": - return SignMode.SIGN_MODE_DIRECT; - - case 2: - case "SIGN_MODE_TEXTUAL": - return SignMode.SIGN_MODE_TEXTUAL; - - case 3: - case "SIGN_MODE_DIRECT_AUX": - return SignMode.SIGN_MODE_DIRECT_AUX; - - case 127: - case "SIGN_MODE_LEGACY_AMINO_JSON": - return SignMode.SIGN_MODE_LEGACY_AMINO_JSON; - - case -1: - case "UNRECOGNIZED": - default: - return SignMode.UNRECOGNIZED; - } -} -export function signModeToJSON(object: SignMode): string { - switch (object) { - case SignMode.SIGN_MODE_UNSPECIFIED: - return "SIGN_MODE_UNSPECIFIED"; - - case SignMode.SIGN_MODE_DIRECT: - return "SIGN_MODE_DIRECT"; - - case SignMode.SIGN_MODE_TEXTUAL: - return "SIGN_MODE_TEXTUAL"; - - case SignMode.SIGN_MODE_DIRECT_AUX: - return "SIGN_MODE_DIRECT_AUX"; - - case SignMode.SIGN_MODE_LEGACY_AMINO_JSON: - return "SIGN_MODE_LEGACY_AMINO_JSON"; - - case SignMode.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** SignatureDescriptors wraps multiple SignatureDescriptor's. */ - -export interface SignatureDescriptors { - /** signatures are the signature descriptors */ - signatures: SignatureDescriptor[]; -} -/** SignatureDescriptors wraps multiple SignatureDescriptor's. */ - -export interface SignatureDescriptorsSDKType { - signatures: SignatureDescriptorSDKType[]; -} -/** - * 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. - */ - -export interface SignatureDescriptor { - /** public_key is the public key of the signer */ - publicKey?: Any; - data?: SignatureDescriptor_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. - */ - - sequence: Long; -} -/** - * 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. - */ - -export interface SignatureDescriptorSDKType { - public_key?: AnySDKType; - data?: SignatureDescriptor_DataSDKType; - sequence: Long; -} -/** Data represents signature data */ - -export interface SignatureDescriptor_Data { - /** single represents a single signer */ - single?: SignatureDescriptor_Data_Single; - /** multi represents a multisig signer */ - - multi?: SignatureDescriptor_Data_Multi; -} -/** Data represents signature data */ - -export interface SignatureDescriptor_DataSDKType { - single?: SignatureDescriptor_Data_SingleSDKType; - multi?: SignatureDescriptor_Data_MultiSDKType; -} -/** Single is the signature data for a single signer */ - -export interface SignatureDescriptor_Data_Single { - /** mode is the signing mode of the single signer */ - mode: SignMode; - /** signature is the raw signature bytes */ - - signature: Uint8Array; -} -/** Single is the signature data for a single signer */ - -export interface SignatureDescriptor_Data_SingleSDKType { - mode: SignMode; - signature: Uint8Array; -} -/** Multi is the signature data for a multisig public key */ - -export interface SignatureDescriptor_Data_Multi { - /** bitarray specifies which keys within the multisig are signing */ - bitarray?: CompactBitArray; - /** signatures is the signatures of the multi-signature */ - - signatures: SignatureDescriptor_Data[]; -} -/** Multi is the signature data for a multisig public key */ - -export interface SignatureDescriptor_Data_MultiSDKType { - bitarray?: CompactBitArraySDKType; - signatures: SignatureDescriptor_DataSDKType[]; -} - -function createBaseSignatureDescriptors(): SignatureDescriptors { - return { - signatures: [] - }; -} - -export const SignatureDescriptors = { - encode(message: SignatureDescriptors, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.signatures) { - SignatureDescriptor.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SignatureDescriptors { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSignatureDescriptors(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.signatures.push(SignatureDescriptor.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SignatureDescriptors { - const message = createBaseSignatureDescriptors(); - message.signatures = object.signatures?.map(e => SignatureDescriptor.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseSignatureDescriptor(): SignatureDescriptor { - return { - publicKey: undefined, - data: undefined, - sequence: Long.UZERO - }; -} - -export const SignatureDescriptor = { - encode(message: SignatureDescriptor, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.publicKey !== undefined) { - Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim(); - } - - if (message.data !== undefined) { - SignatureDescriptor_Data.encode(message.data, writer.uint32(18).fork()).ldelim(); - } - - if (!message.sequence.isZero()) { - writer.uint32(24).uint64(message.sequence); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SignatureDescriptor { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSignatureDescriptor(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.publicKey = Any.decode(reader, reader.uint32()); - break; - - case 2: - message.data = SignatureDescriptor_Data.decode(reader, reader.uint32()); - break; - - case 3: - message.sequence = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SignatureDescriptor { - const message = createBaseSignatureDescriptor(); - message.publicKey = object.publicKey !== undefined && object.publicKey !== null ? Any.fromPartial(object.publicKey) : undefined; - message.data = object.data !== undefined && object.data !== null ? SignatureDescriptor_Data.fromPartial(object.data) : undefined; - message.sequence = object.sequence !== undefined && object.sequence !== null ? Long.fromValue(object.sequence) : Long.UZERO; - return message; - } - -}; - -function createBaseSignatureDescriptor_Data(): SignatureDescriptor_Data { - return { - single: undefined, - multi: undefined - }; -} - -export const SignatureDescriptor_Data = { - encode(message: SignatureDescriptor_Data, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.single !== undefined) { - SignatureDescriptor_Data_Single.encode(message.single, writer.uint32(10).fork()).ldelim(); - } - - if (message.multi !== undefined) { - SignatureDescriptor_Data_Multi.encode(message.multi, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SignatureDescriptor_Data { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSignatureDescriptor_Data(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.single = SignatureDescriptor_Data_Single.decode(reader, reader.uint32()); - break; - - case 2: - message.multi = SignatureDescriptor_Data_Multi.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SignatureDescriptor_Data { - const message = createBaseSignatureDescriptor_Data(); - message.single = object.single !== undefined && object.single !== null ? SignatureDescriptor_Data_Single.fromPartial(object.single) : undefined; - message.multi = object.multi !== undefined && object.multi !== null ? SignatureDescriptor_Data_Multi.fromPartial(object.multi) : undefined; - return message; - } - -}; - -function createBaseSignatureDescriptor_Data_Single(): SignatureDescriptor_Data_Single { - return { - mode: 0, - signature: new Uint8Array() - }; -} - -export const SignatureDescriptor_Data_Single = { - encode(message: SignatureDescriptor_Data_Single, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.mode !== 0) { - writer.uint32(8).int32(message.mode); - } - - if (message.signature.length !== 0) { - writer.uint32(18).bytes(message.signature); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SignatureDescriptor_Data_Single { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSignatureDescriptor_Data_Single(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.mode = (reader.int32() as any); - break; - - case 2: - message.signature = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SignatureDescriptor_Data_Single { - const message = createBaseSignatureDescriptor_Data_Single(); - message.mode = object.mode ?? 0; - message.signature = object.signature ?? new Uint8Array(); - return message; - } - -}; - -function createBaseSignatureDescriptor_Data_Multi(): SignatureDescriptor_Data_Multi { - return { - bitarray: undefined, - signatures: [] - }; -} - -export const SignatureDescriptor_Data_Multi = { - encode(message: SignatureDescriptor_Data_Multi, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.bitarray !== undefined) { - CompactBitArray.encode(message.bitarray, writer.uint32(10).fork()).ldelim(); - } - - for (const v of message.signatures) { - SignatureDescriptor_Data.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SignatureDescriptor_Data_Multi { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSignatureDescriptor_Data_Multi(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.bitarray = CompactBitArray.decode(reader, reader.uint32()); - break; - - case 2: - message.signatures.push(SignatureDescriptor_Data.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SignatureDescriptor_Data_Multi { - const message = createBaseSignatureDescriptor_Data_Multi(); - message.bitarray = object.bitarray !== undefined && object.bitarray !== null ? CompactBitArray.fromPartial(object.bitarray) : undefined; - message.signatures = object.signatures?.map(e => SignatureDescriptor_Data.fromPartial(e)) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/tx/v1beta1/service.lcd.ts b/packages/codegen/src/cosmos/tx/v1beta1/service.lcd.ts deleted file mode 100644 index ee31b21e..00000000 --- a/packages/codegen/src/cosmos/tx/v1beta1/service.lcd.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { setPaginationParams } from "../../../helpers"; -import { LCDClient } from "@osmonauts/lcd"; -import { GetTxRequest, GetTxResponseSDKType, GetTxsEventRequest, GetTxsEventResponseSDKType, GetBlockWithTxsRequest, GetBlockWithTxsResponseSDKType } from "./service"; -export class LCDQueryClient { - req: LCDClient; - - constructor({ - requestClient - }: { - requestClient: LCDClient; - }) { - this.req = requestClient; - this.getTx = this.getTx.bind(this); - this.getTxsEvent = this.getTxsEvent.bind(this); - this.getBlockWithTxs = this.getBlockWithTxs.bind(this); - } - /* GetTx fetches a tx by hash. */ - - - async getTx(params: GetTxRequest): Promise { - const endpoint = `cosmos/tx/v1beta1/txs/${params.hash}`; - return await this.req.get(endpoint); - } - /* GetTxsEvent fetches txs by event. */ - - - async getTxsEvent(params: GetTxsEventRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.events !== "undefined") { - options.params.events = params.events; - } - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - if (typeof params?.orderBy !== "undefined") { - options.params.order_by = params.orderBy; - } - - const endpoint = `cosmos/tx/v1beta1/txs`; - return await this.req.get(endpoint, options); - } - /* GetBlockWithTxs fetches a block with decoded txs. - - Since: cosmos-sdk 0.45.2 */ - - - async getBlockWithTxs(params: GetBlockWithTxsRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmos/tx/v1beta1/txs/block/${params.height}`; - return await this.req.get(endpoint, options); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/tx/v1beta1/service.rpc.Service.ts b/packages/codegen/src/cosmos/tx/v1beta1/service.rpc.Service.ts deleted file mode 100644 index 385b42d5..00000000 --- a/packages/codegen/src/cosmos/tx/v1beta1/service.rpc.Service.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { SimulateRequest, SimulateResponse, GetTxRequest, GetTxResponse, BroadcastTxRequest, BroadcastTxResponse, GetTxsEventRequest, GetTxsEventResponse, GetBlockWithTxsRequest, GetBlockWithTxsResponse } from "./service"; -/** Service defines a gRPC service for interacting with transactions. */ - -export interface Service { - /** Simulate simulates executing a transaction for estimating gas usage. */ - simulate(request: SimulateRequest): Promise; - /** GetTx fetches a tx by hash. */ - - getTx(request: GetTxRequest): Promise; - /** BroadcastTx broadcast transaction. */ - - broadcastTx(request: BroadcastTxRequest): Promise; - /** GetTxsEvent fetches txs by event. */ - - getTxsEvent(request: GetTxsEventRequest): Promise; - /** - * GetBlockWithTxs fetches a block with decoded txs. - * - * Since: cosmos-sdk 0.45.2 - */ - - getBlockWithTxs(request: GetBlockWithTxsRequest): Promise; -} -export class ServiceClientImpl implements Service { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.simulate = this.simulate.bind(this); - this.getTx = this.getTx.bind(this); - this.broadcastTx = this.broadcastTx.bind(this); - this.getTxsEvent = this.getTxsEvent.bind(this); - this.getBlockWithTxs = this.getBlockWithTxs.bind(this); - } - - simulate(request: SimulateRequest): Promise { - const data = SimulateRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.tx.v1beta1.Service", "Simulate", data); - return promise.then(data => SimulateResponse.decode(new _m0.Reader(data))); - } - - getTx(request: GetTxRequest): Promise { - const data = GetTxRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.tx.v1beta1.Service", "GetTx", data); - return promise.then(data => GetTxResponse.decode(new _m0.Reader(data))); - } - - broadcastTx(request: BroadcastTxRequest): Promise { - const data = BroadcastTxRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.tx.v1beta1.Service", "BroadcastTx", data); - return promise.then(data => BroadcastTxResponse.decode(new _m0.Reader(data))); - } - - getTxsEvent(request: GetTxsEventRequest): Promise { - const data = GetTxsEventRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.tx.v1beta1.Service", "GetTxsEvent", data); - return promise.then(data => GetTxsEventResponse.decode(new _m0.Reader(data))); - } - - getBlockWithTxs(request: GetBlockWithTxsRequest): Promise { - const data = GetBlockWithTxsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.tx.v1beta1.Service", "GetBlockWithTxs", data); - return promise.then(data => GetBlockWithTxsResponse.decode(new _m0.Reader(data))); - } - -} -export const createRpcQueryExtension = (base: QueryClient) => { - const rpc = createProtobufRpcClient(base); - const queryService = new ServiceClientImpl(rpc); - return { - simulate(request: SimulateRequest): Promise { - return queryService.simulate(request); - }, - - getTx(request: GetTxRequest): Promise { - return queryService.getTx(request); - }, - - broadcastTx(request: BroadcastTxRequest): Promise { - return queryService.broadcastTx(request); - }, - - getTxsEvent(request: GetTxsEventRequest): Promise { - return queryService.getTxsEvent(request); - }, - - getBlockWithTxs(request: GetBlockWithTxsRequest): Promise { - return queryService.getBlockWithTxs(request); - } - - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/tx/v1beta1/service.ts b/packages/codegen/src/cosmos/tx/v1beta1/service.ts deleted file mode 100644 index cd94819d..00000000 --- a/packages/codegen/src/cosmos/tx/v1beta1/service.ts +++ /dev/null @@ -1,916 +0,0 @@ -import { Tx, TxSDKType } from "./tx"; -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../base/query/v1beta1/pagination"; -import { TxResponse, TxResponseSDKType, GasInfo, GasInfoSDKType, Result, ResultSDKType } from "../../base/abci/v1beta1/abci"; -import { BlockID, BlockIDSDKType } from "../../../tendermint/types/types"; -import { Block, BlockSDKType } from "../../../tendermint/types/block"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** OrderBy defines the sorting order */ - -export enum OrderBy { - /** ORDER_BY_UNSPECIFIED - ORDER_BY_UNSPECIFIED specifies an unknown sorting order. OrderBy defaults to ASC in this case. */ - ORDER_BY_UNSPECIFIED = 0, - - /** ORDER_BY_ASC - ORDER_BY_ASC defines ascending order */ - ORDER_BY_ASC = 1, - - /** ORDER_BY_DESC - ORDER_BY_DESC defines descending order */ - ORDER_BY_DESC = 2, - UNRECOGNIZED = -1, -} -export const OrderBySDKType = OrderBy; -export function orderByFromJSON(object: any): OrderBy { - switch (object) { - case 0: - case "ORDER_BY_UNSPECIFIED": - return OrderBy.ORDER_BY_UNSPECIFIED; - - case 1: - case "ORDER_BY_ASC": - return OrderBy.ORDER_BY_ASC; - - case 2: - case "ORDER_BY_DESC": - return OrderBy.ORDER_BY_DESC; - - case -1: - case "UNRECOGNIZED": - default: - return OrderBy.UNRECOGNIZED; - } -} -export function orderByToJSON(object: OrderBy): string { - switch (object) { - case OrderBy.ORDER_BY_UNSPECIFIED: - return "ORDER_BY_UNSPECIFIED"; - - case OrderBy.ORDER_BY_ASC: - return "ORDER_BY_ASC"; - - case OrderBy.ORDER_BY_DESC: - return "ORDER_BY_DESC"; - - case OrderBy.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** BroadcastMode specifies the broadcast mode for the TxService.Broadcast RPC method. */ - -export enum BroadcastMode { - /** BROADCAST_MODE_UNSPECIFIED - zero-value for mode ordering */ - BROADCAST_MODE_UNSPECIFIED = 0, - - /** - * BROADCAST_MODE_BLOCK - BROADCAST_MODE_BLOCK defines a tx broadcasting mode where the client waits for - * the tx to be committed in a block. - */ - BROADCAST_MODE_BLOCK = 1, - - /** - * BROADCAST_MODE_SYNC - 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 - BROADCAST_MODE_ASYNC defines a tx broadcasting mode where the client returns - * immediately. - */ - BROADCAST_MODE_ASYNC = 3, - UNRECOGNIZED = -1, -} -export const BroadcastModeSDKType = BroadcastMode; -export function broadcastModeFromJSON(object: any): BroadcastMode { - switch (object) { - case 0: - case "BROADCAST_MODE_UNSPECIFIED": - return BroadcastMode.BROADCAST_MODE_UNSPECIFIED; - - case 1: - case "BROADCAST_MODE_BLOCK": - return BroadcastMode.BROADCAST_MODE_BLOCK; - - case 2: - case "BROADCAST_MODE_SYNC": - return BroadcastMode.BROADCAST_MODE_SYNC; - - case 3: - case "BROADCAST_MODE_ASYNC": - return BroadcastMode.BROADCAST_MODE_ASYNC; - - case -1: - case "UNRECOGNIZED": - default: - return BroadcastMode.UNRECOGNIZED; - } -} -export function broadcastModeToJSON(object: BroadcastMode): string { - switch (object) { - case BroadcastMode.BROADCAST_MODE_UNSPECIFIED: - return "BROADCAST_MODE_UNSPECIFIED"; - - case BroadcastMode.BROADCAST_MODE_BLOCK: - return "BROADCAST_MODE_BLOCK"; - - case BroadcastMode.BROADCAST_MODE_SYNC: - return "BROADCAST_MODE_SYNC"; - - case BroadcastMode.BROADCAST_MODE_ASYNC: - return "BROADCAST_MODE_ASYNC"; - - case BroadcastMode.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** - * GetTxsEventRequest is the request type for the Service.TxsByEvents - * RPC method. - */ - -export interface GetTxsEventRequest { - /** events is the list of transaction event type. */ - events: string[]; - /** pagination defines a pagination for the request. */ - - pagination?: PageRequest; - orderBy: OrderBy; -} -/** - * GetTxsEventRequest is the request type for the Service.TxsByEvents - * RPC method. - */ - -export interface GetTxsEventRequestSDKType { - events: string[]; - pagination?: PageRequestSDKType; - order_by: OrderBy; -} -/** - * GetTxsEventResponse is the response type for the Service.TxsByEvents - * RPC method. - */ - -export interface GetTxsEventResponse { - /** txs is the list of queried transactions. */ - txs: Tx[]; - /** tx_responses is the list of queried TxResponses. */ - - txResponses: TxResponse[]; - /** pagination defines a pagination for the response. */ - - pagination?: PageResponse; -} -/** - * GetTxsEventResponse is the response type for the Service.TxsByEvents - * RPC method. - */ - -export interface GetTxsEventResponseSDKType { - txs: TxSDKType[]; - tx_responses: TxResponseSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * BroadcastTxRequest is the request type for the Service.BroadcastTxRequest - * RPC method. - */ - -export interface BroadcastTxRequest { - /** tx_bytes is the raw transaction. */ - txBytes: Uint8Array; - mode: BroadcastMode; -} -/** - * BroadcastTxRequest is the request type for the Service.BroadcastTxRequest - * RPC method. - */ - -export interface BroadcastTxRequestSDKType { - tx_bytes: Uint8Array; - mode: BroadcastMode; -} -/** - * BroadcastTxResponse is the response type for the - * Service.BroadcastTx method. - */ - -export interface BroadcastTxResponse { - /** tx_response is the queried TxResponses. */ - txResponse?: TxResponse; -} -/** - * BroadcastTxResponse is the response type for the - * Service.BroadcastTx method. - */ - -export interface BroadcastTxResponseSDKType { - tx_response?: TxResponseSDKType; -} -/** - * SimulateRequest is the request type for the Service.Simulate - * RPC method. - */ - -export interface SimulateRequest { - /** - * tx is the transaction to simulate. - * Deprecated. Send raw tx bytes instead. - */ - - /** @deprecated */ - tx?: Tx; - /** - * tx_bytes is the raw transaction. - * - * Since: cosmos-sdk 0.43 - */ - - txBytes: Uint8Array; -} -/** - * SimulateRequest is the request type for the Service.Simulate - * RPC method. - */ - -export interface SimulateRequestSDKType { - /** @deprecated */ - tx?: TxSDKType; - tx_bytes: Uint8Array; -} -/** - * SimulateResponse is the response type for the - * Service.SimulateRPC method. - */ - -export interface SimulateResponse { - /** gas_info is the information about gas used in the simulation. */ - gasInfo?: GasInfo; - /** result is the result of the simulation. */ - - result?: Result; -} -/** - * SimulateResponse is the response type for the - * Service.SimulateRPC method. - */ - -export interface SimulateResponseSDKType { - gas_info?: GasInfoSDKType; - result?: ResultSDKType; -} -/** - * GetTxRequest is the request type for the Service.GetTx - * RPC method. - */ - -export interface GetTxRequest { - /** hash is the tx hash to query, encoded as a hex string. */ - hash: string; -} -/** - * GetTxRequest is the request type for the Service.GetTx - * RPC method. - */ - -export interface GetTxRequestSDKType { - hash: string; -} -/** GetTxResponse is the response type for the Service.GetTx method. */ - -export interface GetTxResponse { - /** tx is the queried transaction. */ - tx?: Tx; - /** tx_response is the queried TxResponses. */ - - txResponse?: TxResponse; -} -/** GetTxResponse is the response type for the Service.GetTx method. */ - -export interface GetTxResponseSDKType { - tx?: TxSDKType; - tx_response?: TxResponseSDKType; -} -/** - * GetBlockWithTxsRequest is the request type for the Service.GetBlockWithTxs - * RPC method. - * - * Since: cosmos-sdk 0.45.2 - */ - -export interface GetBlockWithTxsRequest { - /** height is the height of the block to query. */ - height: Long; - /** pagination defines a pagination for the request. */ - - pagination?: PageRequest; -} -/** - * GetBlockWithTxsRequest is the request type for the Service.GetBlockWithTxs - * RPC method. - * - * Since: cosmos-sdk 0.45.2 - */ - -export interface GetBlockWithTxsRequestSDKType { - height: Long; - pagination?: PageRequestSDKType; -} -/** - * GetBlockWithTxsResponse is the response type for the Service.GetBlockWithTxs method. - * - * Since: cosmos-sdk 0.45.2 - */ - -export interface GetBlockWithTxsResponse { - /** txs are the transactions in the block. */ - txs: Tx[]; - blockId?: BlockID; - block?: Block; - /** pagination defines a pagination for the response. */ - - pagination?: PageResponse; -} -/** - * GetBlockWithTxsResponse is the response type for the Service.GetBlockWithTxs method. - * - * Since: cosmos-sdk 0.45.2 - */ - -export interface GetBlockWithTxsResponseSDKType { - txs: TxSDKType[]; - block_id?: BlockIDSDKType; - block?: BlockSDKType; - pagination?: PageResponseSDKType; -} - -function createBaseGetTxsEventRequest(): GetTxsEventRequest { - return { - events: [], - pagination: undefined, - orderBy: 0 - }; -} - -export const GetTxsEventRequest = { - encode(message: GetTxsEventRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.events) { - writer.uint32(10).string(v!); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - if (message.orderBy !== 0) { - writer.uint32(24).int32(message.orderBy); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetTxsEventRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetTxsEventRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.events.push(reader.string()); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - case 3: - message.orderBy = (reader.int32() as any); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GetTxsEventRequest { - const message = createBaseGetTxsEventRequest(); - message.events = object.events?.map(e => e) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - message.orderBy = object.orderBy ?? 0; - return message; - } - -}; - -function createBaseGetTxsEventResponse(): GetTxsEventResponse { - return { - txs: [], - txResponses: [], - pagination: undefined - }; -} - -export const GetTxsEventResponse = { - encode(message: GetTxsEventResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.txs) { - Tx.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - for (const v of message.txResponses) { - TxResponse.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetTxsEventResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetTxsEventResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.txs.push(Tx.decode(reader, reader.uint32())); - break; - - case 2: - message.txResponses.push(TxResponse.decode(reader, reader.uint32())); - break; - - case 3: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GetTxsEventResponse { - const message = createBaseGetTxsEventResponse(); - message.txs = object.txs?.map(e => Tx.fromPartial(e)) || []; - message.txResponses = object.txResponses?.map(e => TxResponse.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseBroadcastTxRequest(): BroadcastTxRequest { - return { - txBytes: new Uint8Array(), - mode: 0 - }; -} - -export const BroadcastTxRequest = { - encode(message: BroadcastTxRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.txBytes.length !== 0) { - writer.uint32(10).bytes(message.txBytes); - } - - if (message.mode !== 0) { - writer.uint32(16).int32(message.mode); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): BroadcastTxRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBroadcastTxRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.txBytes = reader.bytes(); - break; - - case 2: - message.mode = (reader.int32() as any); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): BroadcastTxRequest { - const message = createBaseBroadcastTxRequest(); - message.txBytes = object.txBytes ?? new Uint8Array(); - message.mode = object.mode ?? 0; - return message; - } - -}; - -function createBaseBroadcastTxResponse(): BroadcastTxResponse { - return { - txResponse: undefined - }; -} - -export const BroadcastTxResponse = { - encode(message: BroadcastTxResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.txResponse !== undefined) { - TxResponse.encode(message.txResponse, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): BroadcastTxResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBroadcastTxResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.txResponse = TxResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): BroadcastTxResponse { - const message = createBaseBroadcastTxResponse(); - message.txResponse = object.txResponse !== undefined && object.txResponse !== null ? TxResponse.fromPartial(object.txResponse) : undefined; - return message; - } - -}; - -function createBaseSimulateRequest(): SimulateRequest { - return { - tx: undefined, - txBytes: new Uint8Array() - }; -} - -export const SimulateRequest = { - encode(message: SimulateRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.tx !== undefined) { - Tx.encode(message.tx, writer.uint32(10).fork()).ldelim(); - } - - if (message.txBytes.length !== 0) { - writer.uint32(18).bytes(message.txBytes); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SimulateRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSimulateRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.tx = Tx.decode(reader, reader.uint32()); - break; - - case 2: - message.txBytes = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SimulateRequest { - const message = createBaseSimulateRequest(); - message.tx = object.tx !== undefined && object.tx !== null ? Tx.fromPartial(object.tx) : undefined; - message.txBytes = object.txBytes ?? new Uint8Array(); - return message; - } - -}; - -function createBaseSimulateResponse(): SimulateResponse { - return { - gasInfo: undefined, - result: undefined - }; -} - -export const SimulateResponse = { - encode(message: SimulateResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.gasInfo !== undefined) { - GasInfo.encode(message.gasInfo, writer.uint32(10).fork()).ldelim(); - } - - if (message.result !== undefined) { - Result.encode(message.result, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SimulateResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSimulateResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.gasInfo = GasInfo.decode(reader, reader.uint32()); - break; - - case 2: - message.result = Result.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SimulateResponse { - const message = createBaseSimulateResponse(); - message.gasInfo = object.gasInfo !== undefined && object.gasInfo !== null ? GasInfo.fromPartial(object.gasInfo) : undefined; - message.result = object.result !== undefined && object.result !== null ? Result.fromPartial(object.result) : undefined; - return message; - } - -}; - -function createBaseGetTxRequest(): GetTxRequest { - return { - hash: "" - }; -} - -export const GetTxRequest = { - encode(message: GetTxRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.hash !== "") { - writer.uint32(10).string(message.hash); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetTxRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetTxRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.hash = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GetTxRequest { - const message = createBaseGetTxRequest(); - message.hash = object.hash ?? ""; - return message; - } - -}; - -function createBaseGetTxResponse(): GetTxResponse { - return { - tx: undefined, - txResponse: undefined - }; -} - -export const GetTxResponse = { - encode(message: GetTxResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.tx !== undefined) { - Tx.encode(message.tx, writer.uint32(10).fork()).ldelim(); - } - - if (message.txResponse !== undefined) { - TxResponse.encode(message.txResponse, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetTxResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetTxResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.tx = Tx.decode(reader, reader.uint32()); - break; - - case 2: - message.txResponse = TxResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GetTxResponse { - const message = createBaseGetTxResponse(); - message.tx = object.tx !== undefined && object.tx !== null ? Tx.fromPartial(object.tx) : undefined; - message.txResponse = object.txResponse !== undefined && object.txResponse !== null ? TxResponse.fromPartial(object.txResponse) : undefined; - return message; - } - -}; - -function createBaseGetBlockWithTxsRequest(): GetBlockWithTxsRequest { - return { - height: Long.ZERO, - pagination: undefined - }; -} - -export const GetBlockWithTxsRequest = { - encode(message: GetBlockWithTxsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.height.isZero()) { - writer.uint32(8).int64(message.height); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetBlockWithTxsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetBlockWithTxsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.height = (reader.int64() as Long); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GetBlockWithTxsRequest { - const message = createBaseGetBlockWithTxsRequest(); - message.height = object.height !== undefined && object.height !== null ? Long.fromValue(object.height) : Long.ZERO; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseGetBlockWithTxsResponse(): GetBlockWithTxsResponse { - return { - txs: [], - blockId: undefined, - block: undefined, - pagination: undefined - }; -} - -export const GetBlockWithTxsResponse = { - encode(message: GetBlockWithTxsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.txs) { - Tx.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.blockId !== undefined) { - BlockID.encode(message.blockId, writer.uint32(18).fork()).ldelim(); - } - - if (message.block !== undefined) { - Block.encode(message.block, writer.uint32(26).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GetBlockWithTxsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGetBlockWithTxsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.txs.push(Tx.decode(reader, reader.uint32())); - break; - - case 2: - message.blockId = BlockID.decode(reader, reader.uint32()); - break; - - case 3: - message.block = Block.decode(reader, reader.uint32()); - break; - - case 4: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GetBlockWithTxsResponse { - const message = createBaseGetBlockWithTxsResponse(); - message.txs = object.txs?.map(e => Tx.fromPartial(e)) || []; - message.blockId = object.blockId !== undefined && object.blockId !== null ? BlockID.fromPartial(object.blockId) : undefined; - message.block = object.block !== undefined && object.block !== null ? Block.fromPartial(object.block) : undefined; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/tx/v1beta1/tx.ts b/packages/codegen/src/cosmos/tx/v1beta1/tx.ts deleted file mode 100644 index a2aa5acd..00000000 --- a/packages/codegen/src/cosmos/tx/v1beta1/tx.ts +++ /dev/null @@ -1,1319 +0,0 @@ -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import { SignMode } from "../signing/v1beta1/signing"; -import { CompactBitArray, CompactBitArraySDKType } from "../../crypto/multisig/v1beta1/multisig"; -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** Tx is the standard type used for broadcasting transactions. */ - -export interface Tx { - /** body is the processable content of the transaction */ - body?: TxBody; - /** - * auth_info is the authorization related content of the transaction, - * specifically signers, signer modes and fee - */ - - authInfo?: AuthInfo; - /** - * 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. - */ - - signatures: Uint8Array[]; -} -/** Tx is the standard type used for broadcasting transactions. */ - -export interface TxSDKType { - body?: TxBodySDKType; - auth_info?: AuthInfoSDKType; - signatures: Uint8Array[]; -} -/** - * 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. - */ - -export interface TxRaw { - /** - * body_bytes is a protobuf serialization of a TxBody that matches the - * representation in SignDoc. - */ - bodyBytes: Uint8Array; - /** - * auth_info_bytes is a protobuf serialization of an AuthInfo that matches the - * representation in SignDoc. - */ - - authInfoBytes: Uint8Array; - /** - * 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. - */ - - signatures: Uint8Array[]; -} -/** - * 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. - */ - -export interface TxRawSDKType { - body_bytes: Uint8Array; - auth_info_bytes: Uint8Array; - signatures: Uint8Array[]; -} -/** SignDoc is the type used for generating sign bytes for SIGN_MODE_DIRECT. */ - -export interface SignDoc { - /** - * body_bytes is protobuf serialization of a TxBody that matches the - * representation in TxRaw. - */ - bodyBytes: Uint8Array; - /** - * auth_info_bytes is a protobuf serialization of an AuthInfo that matches the - * representation in TxRaw. - */ - - authInfoBytes: Uint8Array; - /** - * 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 - */ - - chainId: string; - /** account_number is the account number of the account in state */ - - accountNumber: Long; -} -/** SignDoc is the type used for generating sign bytes for SIGN_MODE_DIRECT. */ - -export interface SignDocSDKType { - body_bytes: Uint8Array; - auth_info_bytes: Uint8Array; - chain_id: string; - account_number: Long; -} -/** - * SignDocDirectAux is the type used for generating sign bytes for - * SIGN_MODE_DIRECT_AUX. - * - * Since: cosmos-sdk 0.46 - */ - -export interface SignDocDirectAux { - /** - * body_bytes is protobuf serialization of a TxBody that matches the - * representation in TxRaw. - */ - bodyBytes: Uint8Array; - /** public_key is the public key of the signing account. */ - - publicKey?: Any; - /** - * chain_id is the identifier of the chain this transaction targets. - * It prevents signed transactions from being used on another chain by an - * attacker. - */ - - chainId: string; - /** account_number is the account number of the account in state. */ - - accountNumber: Long; - /** sequence is the sequence number of the signing account. */ - - sequence: Long; - /** - * Tip is the optional tip used for meta-transactions. It should be left - * empty if the signer is not the tipper for this transaction. - */ - - tip?: Tip; -} -/** - * SignDocDirectAux is the type used for generating sign bytes for - * SIGN_MODE_DIRECT_AUX. - * - * Since: cosmos-sdk 0.46 - */ - -export interface SignDocDirectAuxSDKType { - body_bytes: Uint8Array; - public_key?: AnySDKType; - chain_id: string; - account_number: Long; - sequence: Long; - tip?: TipSDKType; -} -/** TxBody is the body of a transaction that all signers sign over. */ - -export interface 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. - */ - messages: Any[]; - /** - * 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). - */ - - memo: string; - /** - * timeout is the block height after which this transaction will not - * be processed by the chain - */ - - timeoutHeight: Long; - /** - * 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 - */ - - extensionOptions: Any[]; - /** - * 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 - */ - - nonCriticalExtensionOptions: Any[]; -} -/** TxBody is the body of a transaction that all signers sign over. */ - -export interface TxBodySDKType { - messages: AnySDKType[]; - memo: string; - timeout_height: Long; - extension_options: AnySDKType[]; - non_critical_extension_options: AnySDKType[]; -} -/** - * AuthInfo describes the fee and signer modes that are used to sign a - * transaction. - */ - -export interface 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. - */ - signerInfos: SignerInfo[]; - /** - * 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; - /** - * Tip is the optional tip used for meta-transactions. - * - * Since: cosmos-sdk 0.46 - */ - - tip?: Tip; -} -/** - * AuthInfo describes the fee and signer modes that are used to sign a - * transaction. - */ - -export interface AuthInfoSDKType { - signer_infos: SignerInfoSDKType[]; - fee?: FeeSDKType; - tip?: TipSDKType; -} -/** - * SignerInfo describes the public key and signing mode of a single top-level - * signer. - */ - -export interface 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. - */ - publicKey?: Any; - /** - * mode_info describes the signing mode of the signer and is a nested - * structure to support nested multisig pubkey's - */ - - modeInfo?: ModeInfo; - /** - * 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. - */ - - sequence: Long; -} -/** - * SignerInfo describes the public key and signing mode of a single top-level - * signer. - */ - -export interface SignerInfoSDKType { - public_key?: AnySDKType; - mode_info?: ModeInfoSDKType; - sequence: Long; -} -/** ModeInfo describes the signing mode of a single or nested multisig signer. */ - -export interface ModeInfo { - /** single represents a single signer */ - single?: ModeInfo_Single; - /** multi represents a nested multisig signer */ - - multi?: ModeInfo_Multi; -} -/** ModeInfo describes the signing mode of a single or nested multisig signer. */ - -export interface ModeInfoSDKType { - single?: ModeInfo_SingleSDKType; - multi?: ModeInfo_MultiSDKType; -} -/** - * 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 - */ - -export interface ModeInfo_Single { - /** mode is the signing mode of the single signer */ - mode: SignMode; -} -/** - * 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 - */ - -export interface ModeInfo_SingleSDKType { - mode: SignMode; -} -/** Multi is the mode info for a multisig public key */ - -export interface ModeInfo_Multi { - /** bitarray specifies which keys within the multisig are signing */ - bitarray?: CompactBitArray; - /** - * mode_infos is the corresponding modes of the signers of the multisig - * which could include nested multisig public keys - */ - - modeInfos: ModeInfo[]; -} -/** Multi is the mode info for a multisig public key */ - -export interface ModeInfo_MultiSDKType { - bitarray?: CompactBitArraySDKType; - mode_infos: ModeInfoSDKType[]; -} -/** - * 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. - */ - -export interface Fee { - /** amount is the amount of coins to be paid as a fee */ - amount: Coin[]; - /** - * gas_limit is the maximum gas that can be used in transaction processing - * before an out of gas error occurs - */ - - gasLimit: Long; - /** - * 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. - */ - - payer: string; - /** - * 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 - */ - - granter: string; -} -/** - * 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. - */ - -export interface FeeSDKType { - amount: CoinSDKType[]; - gas_limit: Long; - payer: string; - granter: string; -} -/** - * Tip is the tip used for meta-transactions. - * - * Since: cosmos-sdk 0.46 - */ - -export interface Tip { - /** amount is the amount of the tip */ - amount: Coin[]; - /** tipper is the address of the account paying for the tip */ - - tipper: string; -} -/** - * Tip is the tip used for meta-transactions. - * - * Since: cosmos-sdk 0.46 - */ - -export interface TipSDKType { - amount: CoinSDKType[]; - tipper: string; -} -/** - * 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 - */ - -export interface 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. - */ - address: string; - /** - * sign_doc is the SIGN_MOD_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. - */ - - signDoc?: SignDocDirectAux; - /** mode is the signing mode of the single signer */ - - mode: SignMode; - /** sig is the signature of the sign doc. */ - - sig: Uint8Array; -} -/** - * 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 - */ - -export interface AuxSignerDataSDKType { - address: string; - sign_doc?: SignDocDirectAuxSDKType; - mode: SignMode; - sig: Uint8Array; -} - -function createBaseTx(): Tx { - return { - body: undefined, - authInfo: undefined, - signatures: [] - }; -} - -export const Tx = { - encode(message: Tx, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.body !== undefined) { - TxBody.encode(message.body, writer.uint32(10).fork()).ldelim(); - } - - if (message.authInfo !== undefined) { - AuthInfo.encode(message.authInfo, writer.uint32(18).fork()).ldelim(); - } - - for (const v of message.signatures) { - writer.uint32(26).bytes(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Tx { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTx(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.body = TxBody.decode(reader, reader.uint32()); - break; - - case 2: - message.authInfo = AuthInfo.decode(reader, reader.uint32()); - break; - - case 3: - message.signatures.push(reader.bytes()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Tx { - const message = createBaseTx(); - message.body = object.body !== undefined && object.body !== null ? TxBody.fromPartial(object.body) : undefined; - message.authInfo = object.authInfo !== undefined && object.authInfo !== null ? AuthInfo.fromPartial(object.authInfo) : undefined; - message.signatures = object.signatures?.map(e => e) || []; - return message; - } - -}; - -function createBaseTxRaw(): TxRaw { - return { - bodyBytes: new Uint8Array(), - authInfoBytes: new Uint8Array(), - signatures: [] - }; -} - -export const TxRaw = { - encode(message: TxRaw, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.bodyBytes.length !== 0) { - writer.uint32(10).bytes(message.bodyBytes); - } - - if (message.authInfoBytes.length !== 0) { - writer.uint32(18).bytes(message.authInfoBytes); - } - - for (const v of message.signatures) { - writer.uint32(26).bytes(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): TxRaw { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTxRaw(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.bodyBytes = reader.bytes(); - break; - - case 2: - message.authInfoBytes = reader.bytes(); - break; - - case 3: - message.signatures.push(reader.bytes()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): TxRaw { - const message = createBaseTxRaw(); - message.bodyBytes = object.bodyBytes ?? new Uint8Array(); - message.authInfoBytes = object.authInfoBytes ?? new Uint8Array(); - message.signatures = object.signatures?.map(e => e) || []; - return message; - } - -}; - -function createBaseSignDoc(): SignDoc { - return { - bodyBytes: new Uint8Array(), - authInfoBytes: new Uint8Array(), - chainId: "", - accountNumber: Long.UZERO - }; -} - -export const SignDoc = { - encode(message: SignDoc, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.bodyBytes.length !== 0) { - writer.uint32(10).bytes(message.bodyBytes); - } - - if (message.authInfoBytes.length !== 0) { - writer.uint32(18).bytes(message.authInfoBytes); - } - - if (message.chainId !== "") { - writer.uint32(26).string(message.chainId); - } - - if (!message.accountNumber.isZero()) { - writer.uint32(32).uint64(message.accountNumber); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SignDoc { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSignDoc(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.bodyBytes = reader.bytes(); - break; - - case 2: - message.authInfoBytes = reader.bytes(); - break; - - case 3: - message.chainId = reader.string(); - break; - - case 4: - message.accountNumber = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SignDoc { - const message = createBaseSignDoc(); - message.bodyBytes = object.bodyBytes ?? new Uint8Array(); - message.authInfoBytes = object.authInfoBytes ?? new Uint8Array(); - message.chainId = object.chainId ?? ""; - message.accountNumber = object.accountNumber !== undefined && object.accountNumber !== null ? Long.fromValue(object.accountNumber) : Long.UZERO; - return message; - } - -}; - -function createBaseSignDocDirectAux(): SignDocDirectAux { - return { - bodyBytes: new Uint8Array(), - publicKey: undefined, - chainId: "", - accountNumber: Long.UZERO, - sequence: Long.UZERO, - tip: undefined - }; -} - -export const SignDocDirectAux = { - encode(message: SignDocDirectAux, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.bodyBytes.length !== 0) { - writer.uint32(10).bytes(message.bodyBytes); - } - - if (message.publicKey !== undefined) { - Any.encode(message.publicKey, writer.uint32(18).fork()).ldelim(); - } - - if (message.chainId !== "") { - writer.uint32(26).string(message.chainId); - } - - if (!message.accountNumber.isZero()) { - writer.uint32(32).uint64(message.accountNumber); - } - - if (!message.sequence.isZero()) { - writer.uint32(40).uint64(message.sequence); - } - - if (message.tip !== undefined) { - Tip.encode(message.tip, writer.uint32(50).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SignDocDirectAux { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSignDocDirectAux(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.bodyBytes = reader.bytes(); - break; - - case 2: - message.publicKey = Any.decode(reader, reader.uint32()); - break; - - case 3: - message.chainId = reader.string(); - break; - - case 4: - message.accountNumber = (reader.uint64() as Long); - break; - - case 5: - message.sequence = (reader.uint64() as Long); - break; - - case 6: - message.tip = Tip.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SignDocDirectAux { - const message = createBaseSignDocDirectAux(); - message.bodyBytes = object.bodyBytes ?? new Uint8Array(); - message.publicKey = object.publicKey !== undefined && object.publicKey !== null ? Any.fromPartial(object.publicKey) : undefined; - message.chainId = object.chainId ?? ""; - message.accountNumber = object.accountNumber !== undefined && object.accountNumber !== null ? Long.fromValue(object.accountNumber) : Long.UZERO; - message.sequence = object.sequence !== undefined && object.sequence !== null ? Long.fromValue(object.sequence) : Long.UZERO; - message.tip = object.tip !== undefined && object.tip !== null ? Tip.fromPartial(object.tip) : undefined; - return message; - } - -}; - -function createBaseTxBody(): TxBody { - return { - messages: [], - memo: "", - timeoutHeight: Long.UZERO, - extensionOptions: [], - nonCriticalExtensionOptions: [] - }; -} - -export const TxBody = { - encode(message: TxBody, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.messages) { - Any.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.memo !== "") { - writer.uint32(18).string(message.memo); - } - - if (!message.timeoutHeight.isZero()) { - writer.uint32(24).uint64(message.timeoutHeight); - } - - for (const v of message.extensionOptions) { - Any.encode(v!, writer.uint32(8186).fork()).ldelim(); - } - - for (const v of message.nonCriticalExtensionOptions) { - Any.encode(v!, writer.uint32(16378).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): TxBody { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTxBody(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.messages.push(Any.decode(reader, reader.uint32())); - break; - - case 2: - message.memo = reader.string(); - break; - - case 3: - message.timeoutHeight = (reader.uint64() as Long); - break; - - case 1023: - message.extensionOptions.push(Any.decode(reader, reader.uint32())); - break; - - case 2047: - message.nonCriticalExtensionOptions.push(Any.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): TxBody { - const message = createBaseTxBody(); - message.messages = object.messages?.map(e => Any.fromPartial(e)) || []; - message.memo = object.memo ?? ""; - message.timeoutHeight = object.timeoutHeight !== undefined && object.timeoutHeight !== null ? Long.fromValue(object.timeoutHeight) : Long.UZERO; - message.extensionOptions = object.extensionOptions?.map(e => Any.fromPartial(e)) || []; - message.nonCriticalExtensionOptions = object.nonCriticalExtensionOptions?.map(e => Any.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseAuthInfo(): AuthInfo { - return { - signerInfos: [], - fee: undefined, - tip: undefined - }; -} - -export const AuthInfo = { - encode(message: AuthInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.signerInfos) { - SignerInfo.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.fee !== undefined) { - Fee.encode(message.fee, writer.uint32(18).fork()).ldelim(); - } - - if (message.tip !== undefined) { - Tip.encode(message.tip, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): AuthInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAuthInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.signerInfos.push(SignerInfo.decode(reader, reader.uint32())); - break; - - case 2: - message.fee = Fee.decode(reader, reader.uint32()); - break; - - case 3: - message.tip = Tip.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): AuthInfo { - const message = createBaseAuthInfo(); - message.signerInfos = object.signerInfos?.map(e => SignerInfo.fromPartial(e)) || []; - message.fee = object.fee !== undefined && object.fee !== null ? Fee.fromPartial(object.fee) : undefined; - message.tip = object.tip !== undefined && object.tip !== null ? Tip.fromPartial(object.tip) : undefined; - return message; - } - -}; - -function createBaseSignerInfo(): SignerInfo { - return { - publicKey: undefined, - modeInfo: undefined, - sequence: Long.UZERO - }; -} - -export const SignerInfo = { - encode(message: SignerInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.publicKey !== undefined) { - Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim(); - } - - if (message.modeInfo !== undefined) { - ModeInfo.encode(message.modeInfo, writer.uint32(18).fork()).ldelim(); - } - - if (!message.sequence.isZero()) { - writer.uint32(24).uint64(message.sequence); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SignerInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSignerInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.publicKey = Any.decode(reader, reader.uint32()); - break; - - case 2: - message.modeInfo = ModeInfo.decode(reader, reader.uint32()); - break; - - case 3: - message.sequence = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SignerInfo { - const message = createBaseSignerInfo(); - message.publicKey = object.publicKey !== undefined && object.publicKey !== null ? Any.fromPartial(object.publicKey) : undefined; - message.modeInfo = object.modeInfo !== undefined && object.modeInfo !== null ? ModeInfo.fromPartial(object.modeInfo) : undefined; - message.sequence = object.sequence !== undefined && object.sequence !== null ? Long.fromValue(object.sequence) : Long.UZERO; - return message; - } - -}; - -function createBaseModeInfo(): ModeInfo { - return { - single: undefined, - multi: undefined - }; -} - -export const ModeInfo = { - encode(message: ModeInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.single !== undefined) { - ModeInfo_Single.encode(message.single, writer.uint32(10).fork()).ldelim(); - } - - if (message.multi !== undefined) { - ModeInfo_Multi.encode(message.multi, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ModeInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseModeInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.single = ModeInfo_Single.decode(reader, reader.uint32()); - break; - - case 2: - message.multi = ModeInfo_Multi.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ModeInfo { - const message = createBaseModeInfo(); - message.single = object.single !== undefined && object.single !== null ? ModeInfo_Single.fromPartial(object.single) : undefined; - message.multi = object.multi !== undefined && object.multi !== null ? ModeInfo_Multi.fromPartial(object.multi) : undefined; - return message; - } - -}; - -function createBaseModeInfo_Single(): ModeInfo_Single { - return { - mode: 0 - }; -} - -export const ModeInfo_Single = { - encode(message: ModeInfo_Single, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.mode !== 0) { - writer.uint32(8).int32(message.mode); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ModeInfo_Single { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseModeInfo_Single(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.mode = (reader.int32() as any); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ModeInfo_Single { - const message = createBaseModeInfo_Single(); - message.mode = object.mode ?? 0; - return message; - } - -}; - -function createBaseModeInfo_Multi(): ModeInfo_Multi { - return { - bitarray: undefined, - modeInfos: [] - }; -} - -export const ModeInfo_Multi = { - encode(message: ModeInfo_Multi, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.bitarray !== undefined) { - CompactBitArray.encode(message.bitarray, writer.uint32(10).fork()).ldelim(); - } - - for (const v of message.modeInfos) { - ModeInfo.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ModeInfo_Multi { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseModeInfo_Multi(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.bitarray = CompactBitArray.decode(reader, reader.uint32()); - break; - - case 2: - message.modeInfos.push(ModeInfo.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ModeInfo_Multi { - const message = createBaseModeInfo_Multi(); - message.bitarray = object.bitarray !== undefined && object.bitarray !== null ? CompactBitArray.fromPartial(object.bitarray) : undefined; - message.modeInfos = object.modeInfos?.map(e => ModeInfo.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseFee(): Fee { - return { - amount: [], - gasLimit: Long.UZERO, - payer: "", - granter: "" - }; -} - -export const Fee = { - encode(message: Fee, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.amount) { - Coin.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (!message.gasLimit.isZero()) { - writer.uint32(16).uint64(message.gasLimit); - } - - if (message.payer !== "") { - writer.uint32(26).string(message.payer); - } - - if (message.granter !== "") { - writer.uint32(34).string(message.granter); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Fee { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseFee(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.amount.push(Coin.decode(reader, reader.uint32())); - break; - - case 2: - message.gasLimit = (reader.uint64() as Long); - break; - - case 3: - message.payer = reader.string(); - break; - - case 4: - message.granter = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Fee { - const message = createBaseFee(); - message.amount = object.amount?.map(e => Coin.fromPartial(e)) || []; - message.gasLimit = object.gasLimit !== undefined && object.gasLimit !== null ? Long.fromValue(object.gasLimit) : Long.UZERO; - message.payer = object.payer ?? ""; - message.granter = object.granter ?? ""; - return message; - } - -}; - -function createBaseTip(): Tip { - return { - amount: [], - tipper: "" - }; -} - -export const Tip = { - encode(message: Tip, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.amount) { - Coin.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.tipper !== "") { - writer.uint32(18).string(message.tipper); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Tip { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTip(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.amount.push(Coin.decode(reader, reader.uint32())); - break; - - case 2: - message.tipper = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Tip { - const message = createBaseTip(); - message.amount = object.amount?.map(e => Coin.fromPartial(e)) || []; - message.tipper = object.tipper ?? ""; - return message; - } - -}; - -function createBaseAuxSignerData(): AuxSignerData { - return { - address: "", - signDoc: undefined, - mode: 0, - sig: new Uint8Array() - }; -} - -export const AuxSignerData = { - encode(message: AuxSignerData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - if (message.signDoc !== undefined) { - SignDocDirectAux.encode(message.signDoc, writer.uint32(18).fork()).ldelim(); - } - - if (message.mode !== 0) { - writer.uint32(24).int32(message.mode); - } - - if (message.sig.length !== 0) { - writer.uint32(34).bytes(message.sig); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): AuxSignerData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAuxSignerData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.signDoc = SignDocDirectAux.decode(reader, reader.uint32()); - break; - - case 3: - message.mode = (reader.int32() as any); - break; - - case 4: - message.sig = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): AuxSignerData { - const message = createBaseAuxSignerData(); - message.address = object.address ?? ""; - message.signDoc = object.signDoc !== undefined && object.signDoc !== null ? SignDocDirectAux.fromPartial(object.signDoc) : undefined; - message.mode = object.mode ?? 0; - message.sig = object.sig ?? new Uint8Array(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/upgrade/v1beta1/query.lcd.ts b/packages/codegen/src/cosmos/upgrade/v1beta1/query.lcd.ts deleted file mode 100644 index 36a7cf66..00000000 --- a/packages/codegen/src/cosmos/upgrade/v1beta1/query.lcd.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -import { QueryCurrentPlanRequest, QueryCurrentPlanResponseSDKType, QueryAppliedPlanRequest, QueryAppliedPlanResponseSDKType, QueryUpgradedConsensusStateRequest, QueryUpgradedConsensusStateResponseSDKType, QueryModuleVersionsRequest, QueryModuleVersionsResponseSDKType, QueryAuthorityRequest, QueryAuthorityResponseSDKType } from "./query"; -export class LCDQueryClient { - req: LCDClient; - - constructor({ - requestClient - }: { - requestClient: LCDClient; - }) { - this.req = requestClient; - this.currentPlan = this.currentPlan.bind(this); - this.appliedPlan = this.appliedPlan.bind(this); - this.upgradedConsensusState = this.upgradedConsensusState.bind(this); - this.moduleVersions = this.moduleVersions.bind(this); - this.authority = this.authority.bind(this); - } - /* CurrentPlan queries the current upgrade plan. */ - - - async currentPlan(_params: QueryCurrentPlanRequest = {}): Promise { - const endpoint = `cosmos/upgrade/v1beta1/current_plan`; - return await this.req.get(endpoint); - } - /* AppliedPlan queries a previously applied upgrade plan by its name. */ - - - async appliedPlan(params: QueryAppliedPlanRequest): Promise { - const endpoint = `cosmos/upgrade/v1beta1/applied_plan/${params.name}`; - return await this.req.get(endpoint); - } - /* 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) */ - - - async upgradedConsensusState(params: QueryUpgradedConsensusStateRequest): Promise { - const endpoint = `cosmos/upgrade/v1beta1/upgraded_consensus_state/${params.lastHeight}`; - return await this.req.get(endpoint); - } - /* ModuleVersions queries the list of module versions from state. - - Since: cosmos-sdk 0.43 */ - - - async moduleVersions(params: QueryModuleVersionsRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.moduleName !== "undefined") { - options.params.module_name = params.moduleName; - } - - const endpoint = `cosmos/upgrade/v1beta1/module_versions`; - return await this.req.get(endpoint, options); - } - /* Returns the account with authority to conduct upgrades */ - - - async authority(_params: QueryAuthorityRequest = {}): Promise { - const endpoint = `cosmos/upgrade/v1beta1/authority`; - return await this.req.get(endpoint); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/upgrade/v1beta1/query.rpc.Query.ts b/packages/codegen/src/cosmos/upgrade/v1beta1/query.rpc.Query.ts deleted file mode 100644 index d2cea4ed..00000000 --- a/packages/codegen/src/cosmos/upgrade/v1beta1/query.rpc.Query.ts +++ /dev/null @@ -1,102 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { QueryCurrentPlanRequest, QueryCurrentPlanResponse, QueryAppliedPlanRequest, QueryAppliedPlanResponse, QueryUpgradedConsensusStateRequest, QueryUpgradedConsensusStateResponse, QueryModuleVersionsRequest, QueryModuleVersionsResponse, QueryAuthorityRequest, QueryAuthorityResponse } from "./query"; -/** Query defines the gRPC upgrade querier service. */ - -export interface Query { - /** CurrentPlan queries the current upgrade plan. */ - currentPlan(request?: QueryCurrentPlanRequest): Promise; - /** AppliedPlan queries a previously applied upgrade plan by its name. */ - - appliedPlan(request: QueryAppliedPlanRequest): Promise; - /** - * 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) - */ - - upgradedConsensusState(request: QueryUpgradedConsensusStateRequest): Promise; - /** - * ModuleVersions queries the list of module versions from state. - * - * Since: cosmos-sdk 0.43 - */ - - moduleVersions(request: QueryModuleVersionsRequest): Promise; - /** Returns the account with authority to conduct upgrades */ - - authority(request?: QueryAuthorityRequest): Promise; -} -export class QueryClientImpl implements Query { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.currentPlan = this.currentPlan.bind(this); - this.appliedPlan = this.appliedPlan.bind(this); - this.upgradedConsensusState = this.upgradedConsensusState.bind(this); - this.moduleVersions = this.moduleVersions.bind(this); - this.authority = this.authority.bind(this); - } - - currentPlan(request: QueryCurrentPlanRequest = {}): Promise { - const data = QueryCurrentPlanRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.upgrade.v1beta1.Query", "CurrentPlan", data); - return promise.then(data => QueryCurrentPlanResponse.decode(new _m0.Reader(data))); - } - - appliedPlan(request: QueryAppliedPlanRequest): Promise { - const data = QueryAppliedPlanRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.upgrade.v1beta1.Query", "AppliedPlan", data); - return promise.then(data => QueryAppliedPlanResponse.decode(new _m0.Reader(data))); - } - - upgradedConsensusState(request: QueryUpgradedConsensusStateRequest): Promise { - const data = QueryUpgradedConsensusStateRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.upgrade.v1beta1.Query", "UpgradedConsensusState", data); - return promise.then(data => QueryUpgradedConsensusStateResponse.decode(new _m0.Reader(data))); - } - - moduleVersions(request: QueryModuleVersionsRequest): Promise { - const data = QueryModuleVersionsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.upgrade.v1beta1.Query", "ModuleVersions", data); - return promise.then(data => QueryModuleVersionsResponse.decode(new _m0.Reader(data))); - } - - authority(request: QueryAuthorityRequest = {}): Promise { - const data = QueryAuthorityRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.upgrade.v1beta1.Query", "Authority", data); - return promise.then(data => QueryAuthorityResponse.decode(new _m0.Reader(data))); - } - -} -export const createRpcQueryExtension = (base: QueryClient) => { - const rpc = createProtobufRpcClient(base); - const queryService = new QueryClientImpl(rpc); - return { - currentPlan(request?: QueryCurrentPlanRequest): Promise { - return queryService.currentPlan(request); - }, - - appliedPlan(request: QueryAppliedPlanRequest): Promise { - return queryService.appliedPlan(request); - }, - - upgradedConsensusState(request: QueryUpgradedConsensusStateRequest): Promise { - return queryService.upgradedConsensusState(request); - }, - - moduleVersions(request: QueryModuleVersionsRequest): Promise { - return queryService.moduleVersions(request); - }, - - authority(request?: QueryAuthorityRequest): Promise { - return queryService.authority(request); - } - - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/upgrade/v1beta1/query.ts b/packages/codegen/src/cosmos/upgrade/v1beta1/query.ts deleted file mode 100644 index e676c1d2..00000000 --- a/packages/codegen/src/cosmos/upgrade/v1beta1/query.ts +++ /dev/null @@ -1,617 +0,0 @@ -import { Plan, PlanSDKType, ModuleVersion, ModuleVersionSDKType } from "./upgrade"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** - * QueryCurrentPlanRequest is the request type for the Query/CurrentPlan RPC - * method. - */ - -export interface QueryCurrentPlanRequest {} -/** - * QueryCurrentPlanRequest is the request type for the Query/CurrentPlan RPC - * method. - */ - -export interface QueryCurrentPlanRequestSDKType {} -/** - * QueryCurrentPlanResponse is the response type for the Query/CurrentPlan RPC - * method. - */ - -export interface QueryCurrentPlanResponse { - /** plan is the current upgrade plan. */ - plan?: Plan; -} -/** - * QueryCurrentPlanResponse is the response type for the Query/CurrentPlan RPC - * method. - */ - -export interface QueryCurrentPlanResponseSDKType { - plan?: PlanSDKType; -} -/** - * QueryCurrentPlanRequest is the request type for the Query/AppliedPlan RPC - * method. - */ - -export interface QueryAppliedPlanRequest { - /** name is the name of the applied plan to query for. */ - name: string; -} -/** - * QueryCurrentPlanRequest is the request type for the Query/AppliedPlan RPC - * method. - */ - -export interface QueryAppliedPlanRequestSDKType { - name: string; -} -/** - * QueryAppliedPlanResponse is the response type for the Query/AppliedPlan RPC - * method. - */ - -export interface QueryAppliedPlanResponse { - /** height is the block height at which the plan was applied. */ - height: Long; -} -/** - * QueryAppliedPlanResponse is the response type for the Query/AppliedPlan RPC - * method. - */ - -export interface QueryAppliedPlanResponseSDKType { - height: Long; -} -/** - * QueryUpgradedConsensusStateRequest is the request type for the Query/UpgradedConsensusState - * RPC method. - */ - -/** @deprecated */ - -export interface QueryUpgradedConsensusStateRequest { - /** - * last height of the current chain must be sent in request - * as this is the height under which next consensus state is stored - */ - lastHeight: Long; -} -/** - * QueryUpgradedConsensusStateRequest is the request type for the Query/UpgradedConsensusState - * RPC method. - */ - -/** @deprecated */ - -export interface QueryUpgradedConsensusStateRequestSDKType { - last_height: Long; -} -/** - * QueryUpgradedConsensusStateResponse is the response type for the Query/UpgradedConsensusState - * RPC method. - */ - -/** @deprecated */ - -export interface QueryUpgradedConsensusStateResponse { - /** Since: cosmos-sdk 0.43 */ - upgradedConsensusState: Uint8Array; -} -/** - * QueryUpgradedConsensusStateResponse is the response type for the Query/UpgradedConsensusState - * RPC method. - */ - -/** @deprecated */ - -export interface QueryUpgradedConsensusStateResponseSDKType { - upgraded_consensus_state: Uint8Array; -} -/** - * QueryModuleVersionsRequest is the request type for the Query/ModuleVersions - * RPC method. - * - * Since: cosmos-sdk 0.43 - */ - -export interface 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 - */ - moduleName: string; -} -/** - * QueryModuleVersionsRequest is the request type for the Query/ModuleVersions - * RPC method. - * - * Since: cosmos-sdk 0.43 - */ - -export interface QueryModuleVersionsRequestSDKType { - module_name: string; -} -/** - * QueryModuleVersionsResponse is the response type for the Query/ModuleVersions - * RPC method. - * - * Since: cosmos-sdk 0.43 - */ - -export interface QueryModuleVersionsResponse { - /** module_versions is a list of module names with their consensus versions. */ - moduleVersions: ModuleVersion[]; -} -/** - * QueryModuleVersionsResponse is the response type for the Query/ModuleVersions - * RPC method. - * - * Since: cosmos-sdk 0.43 - */ - -export interface QueryModuleVersionsResponseSDKType { - module_versions: ModuleVersionSDKType[]; -} -/** - * QueryAuthorityRequest is the request type for Query/Authority - * - * Since: cosmos-sdk 0.46 - */ - -export interface QueryAuthorityRequest {} -/** - * QueryAuthorityRequest is the request type for Query/Authority - * - * Since: cosmos-sdk 0.46 - */ - -export interface QueryAuthorityRequestSDKType {} -/** - * QueryAuthorityResponse is the response type for Query/Authority - * - * Since: cosmos-sdk 0.46 - */ - -export interface QueryAuthorityResponse { - address: string; -} -/** - * QueryAuthorityResponse is the response type for Query/Authority - * - * Since: cosmos-sdk 0.46 - */ - -export interface QueryAuthorityResponseSDKType { - address: string; -} - -function createBaseQueryCurrentPlanRequest(): QueryCurrentPlanRequest { - return {}; -} - -export const QueryCurrentPlanRequest = { - encode(_: QueryCurrentPlanRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryCurrentPlanRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryCurrentPlanRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): QueryCurrentPlanRequest { - const message = createBaseQueryCurrentPlanRequest(); - return message; - } - -}; - -function createBaseQueryCurrentPlanResponse(): QueryCurrentPlanResponse { - return { - plan: undefined - }; -} - -export const QueryCurrentPlanResponse = { - encode(message: QueryCurrentPlanResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.plan !== undefined) { - Plan.encode(message.plan, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryCurrentPlanResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryCurrentPlanResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.plan = Plan.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryCurrentPlanResponse { - const message = createBaseQueryCurrentPlanResponse(); - message.plan = object.plan !== undefined && object.plan !== null ? Plan.fromPartial(object.plan) : undefined; - return message; - } - -}; - -function createBaseQueryAppliedPlanRequest(): QueryAppliedPlanRequest { - return { - name: "" - }; -} - -export const QueryAppliedPlanRequest = { - encode(message: QueryAppliedPlanRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.name !== "") { - writer.uint32(10).string(message.name); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAppliedPlanRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAppliedPlanRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryAppliedPlanRequest { - const message = createBaseQueryAppliedPlanRequest(); - message.name = object.name ?? ""; - return message; - } - -}; - -function createBaseQueryAppliedPlanResponse(): QueryAppliedPlanResponse { - return { - height: Long.ZERO - }; -} - -export const QueryAppliedPlanResponse = { - encode(message: QueryAppliedPlanResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.height.isZero()) { - writer.uint32(8).int64(message.height); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAppliedPlanResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAppliedPlanResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.height = (reader.int64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryAppliedPlanResponse { - const message = createBaseQueryAppliedPlanResponse(); - message.height = object.height !== undefined && object.height !== null ? Long.fromValue(object.height) : Long.ZERO; - return message; - } - -}; - -function createBaseQueryUpgradedConsensusStateRequest(): QueryUpgradedConsensusStateRequest { - return { - lastHeight: Long.ZERO - }; -} - -export const QueryUpgradedConsensusStateRequest = { - encode(message: QueryUpgradedConsensusStateRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.lastHeight.isZero()) { - writer.uint32(8).int64(message.lastHeight); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryUpgradedConsensusStateRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryUpgradedConsensusStateRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.lastHeight = (reader.int64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryUpgradedConsensusStateRequest { - const message = createBaseQueryUpgradedConsensusStateRequest(); - message.lastHeight = object.lastHeight !== undefined && object.lastHeight !== null ? Long.fromValue(object.lastHeight) : Long.ZERO; - return message; - } - -}; - -function createBaseQueryUpgradedConsensusStateResponse(): QueryUpgradedConsensusStateResponse { - return { - upgradedConsensusState: new Uint8Array() - }; -} - -export const QueryUpgradedConsensusStateResponse = { - encode(message: QueryUpgradedConsensusStateResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.upgradedConsensusState.length !== 0) { - writer.uint32(18).bytes(message.upgradedConsensusState); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryUpgradedConsensusStateResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryUpgradedConsensusStateResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 2: - message.upgradedConsensusState = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryUpgradedConsensusStateResponse { - const message = createBaseQueryUpgradedConsensusStateResponse(); - message.upgradedConsensusState = object.upgradedConsensusState ?? new Uint8Array(); - return message; - } - -}; - -function createBaseQueryModuleVersionsRequest(): QueryModuleVersionsRequest { - return { - moduleName: "" - }; -} - -export const QueryModuleVersionsRequest = { - encode(message: QueryModuleVersionsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.moduleName !== "") { - writer.uint32(10).string(message.moduleName); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryModuleVersionsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryModuleVersionsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.moduleName = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryModuleVersionsRequest { - const message = createBaseQueryModuleVersionsRequest(); - message.moduleName = object.moduleName ?? ""; - return message; - } - -}; - -function createBaseQueryModuleVersionsResponse(): QueryModuleVersionsResponse { - return { - moduleVersions: [] - }; -} - -export const QueryModuleVersionsResponse = { - encode(message: QueryModuleVersionsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.moduleVersions) { - ModuleVersion.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryModuleVersionsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryModuleVersionsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.moduleVersions.push(ModuleVersion.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryModuleVersionsResponse { - const message = createBaseQueryModuleVersionsResponse(); - message.moduleVersions = object.moduleVersions?.map(e => ModuleVersion.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseQueryAuthorityRequest(): QueryAuthorityRequest { - return {}; -} - -export const QueryAuthorityRequest = { - encode(_: QueryAuthorityRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAuthorityRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAuthorityRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): QueryAuthorityRequest { - const message = createBaseQueryAuthorityRequest(); - return message; - } - -}; - -function createBaseQueryAuthorityResponse(): QueryAuthorityResponse { - return { - address: "" - }; -} - -export const QueryAuthorityResponse = { - encode(message: QueryAuthorityResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAuthorityResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAuthorityResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryAuthorityResponse { - const message = createBaseQueryAuthorityResponse(); - message.address = object.address ?? ""; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/upgrade/v1beta1/tx.rpc.msg.ts b/packages/codegen/src/cosmos/upgrade/v1beta1/tx.rpc.msg.ts deleted file mode 100644 index 901bdbd0..00000000 --- a/packages/codegen/src/cosmos/upgrade/v1beta1/tx.rpc.msg.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { MsgSoftwareUpgrade, MsgSoftwareUpgradeResponse, MsgCancelUpgrade, MsgCancelUpgradeResponse } from "./tx"; -/** Msg defines the upgrade Msg service. */ - -export interface Msg { - /** - * SoftwareUpgrade is a governance operation for initiating a software upgrade. - * - * Since: cosmos-sdk 0.46 - */ - softwareUpgrade(request: MsgSoftwareUpgrade): Promise; - /** - * CancelUpgrade is a governance operation for cancelling a previously - * approvid software upgrade. - * - * Since: cosmos-sdk 0.46 - */ - - cancelUpgrade(request: MsgCancelUpgrade): Promise; -} -export class MsgClientImpl implements Msg { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.softwareUpgrade = this.softwareUpgrade.bind(this); - this.cancelUpgrade = this.cancelUpgrade.bind(this); - } - - softwareUpgrade(request: MsgSoftwareUpgrade): Promise { - const data = MsgSoftwareUpgrade.encode(request).finish(); - const promise = this.rpc.request("cosmos.upgrade.v1beta1.Msg", "SoftwareUpgrade", data); - return promise.then(data => MsgSoftwareUpgradeResponse.decode(new _m0.Reader(data))); - } - - cancelUpgrade(request: MsgCancelUpgrade): Promise { - const data = MsgCancelUpgrade.encode(request).finish(); - const promise = this.rpc.request("cosmos.upgrade.v1beta1.Msg", "CancelUpgrade", data); - return promise.then(data => MsgCancelUpgradeResponse.decode(new _m0.Reader(data))); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/upgrade/v1beta1/tx.ts b/packages/codegen/src/cosmos/upgrade/v1beta1/tx.ts deleted file mode 100644 index def2c4c4..00000000 --- a/packages/codegen/src/cosmos/upgrade/v1beta1/tx.ts +++ /dev/null @@ -1,241 +0,0 @@ -import { Plan, PlanSDKType } from "./upgrade"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../helpers"; -/** - * MsgSoftwareUpgrade is the Msg/SoftwareUpgrade request type. - * - * Since: cosmos-sdk 0.46 - */ - -export interface MsgSoftwareUpgrade { - /** authority is the address of the governance account. */ - authority: string; - /** plan is the upgrade plan. */ - - plan?: Plan; -} -/** - * MsgSoftwareUpgrade is the Msg/SoftwareUpgrade request type. - * - * Since: cosmos-sdk 0.46 - */ - -export interface MsgSoftwareUpgradeSDKType { - authority: string; - plan?: PlanSDKType; -} -/** - * MsgSoftwareUpgradeResponse is the Msg/SoftwareUpgrade response type. - * - * Since: cosmos-sdk 0.46 - */ - -export interface MsgSoftwareUpgradeResponse {} -/** - * MsgSoftwareUpgradeResponse is the Msg/SoftwareUpgrade response type. - * - * Since: cosmos-sdk 0.46 - */ - -export interface MsgSoftwareUpgradeResponseSDKType {} -/** - * MsgCancelUpgrade is the Msg/CancelUpgrade request type. - * - * Since: cosmos-sdk 0.46 - */ - -export interface MsgCancelUpgrade { - /** authority is the address of the governance account. */ - authority: string; -} -/** - * MsgCancelUpgrade is the Msg/CancelUpgrade request type. - * - * Since: cosmos-sdk 0.46 - */ - -export interface MsgCancelUpgradeSDKType { - authority: string; -} -/** - * MsgCancelUpgradeResponse is the Msg/CancelUpgrade response type. - * - * Since: cosmos-sdk 0.46 - */ - -export interface MsgCancelUpgradeResponse {} -/** - * MsgCancelUpgradeResponse is the Msg/CancelUpgrade response type. - * - * Since: cosmos-sdk 0.46 - */ - -export interface MsgCancelUpgradeResponseSDKType {} - -function createBaseMsgSoftwareUpgrade(): MsgSoftwareUpgrade { - return { - authority: "", - plan: undefined - }; -} - -export const MsgSoftwareUpgrade = { - encode(message: MsgSoftwareUpgrade, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.authority !== "") { - writer.uint32(10).string(message.authority); - } - - if (message.plan !== undefined) { - Plan.encode(message.plan, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSoftwareUpgrade { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgSoftwareUpgrade(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.authority = reader.string(); - break; - - case 2: - message.plan = Plan.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgSoftwareUpgrade { - const message = createBaseMsgSoftwareUpgrade(); - message.authority = object.authority ?? ""; - message.plan = object.plan !== undefined && object.plan !== null ? Plan.fromPartial(object.plan) : undefined; - return message; - } - -}; - -function createBaseMsgSoftwareUpgradeResponse(): MsgSoftwareUpgradeResponse { - return {}; -} - -export const MsgSoftwareUpgradeResponse = { - encode(_: MsgSoftwareUpgradeResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSoftwareUpgradeResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgSoftwareUpgradeResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgSoftwareUpgradeResponse { - const message = createBaseMsgSoftwareUpgradeResponse(); - return message; - } - -}; - -function createBaseMsgCancelUpgrade(): MsgCancelUpgrade { - return { - authority: "" - }; -} - -export const MsgCancelUpgrade = { - encode(message: MsgCancelUpgrade, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.authority !== "") { - writer.uint32(10).string(message.authority); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCancelUpgrade { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgCancelUpgrade(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.authority = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgCancelUpgrade { - const message = createBaseMsgCancelUpgrade(); - message.authority = object.authority ?? ""; - return message; - } - -}; - -function createBaseMsgCancelUpgradeResponse(): MsgCancelUpgradeResponse { - return {}; -} - -export const MsgCancelUpgradeResponse = { - encode(_: MsgCancelUpgradeResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCancelUpgradeResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgCancelUpgradeResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgCancelUpgradeResponse { - const message = createBaseMsgCancelUpgradeResponse(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/upgrade/v1beta1/upgrade.ts b/packages/codegen/src/cosmos/upgrade/v1beta1/upgrade.ts deleted file mode 100644 index 5ca78d54..00000000 --- a/packages/codegen/src/cosmos/upgrade/v1beta1/upgrade.ts +++ /dev/null @@ -1,398 +0,0 @@ -import { Timestamp } from "../../../google/protobuf/timestamp"; -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import { Long, toTimestamp, fromTimestamp, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** Plan specifies information about a planned upgrade and when it should occur. */ - -export interface 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. - */ - name: string; - /** - * 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. - */ - - /** @deprecated */ - - time?: Date; - /** - * The height at which the upgrade must be performed. - * Only used if Time is not set. - */ - - height: Long; - /** - * Any application specific upgrade info to be included on-chain - * such as a git commit that validators could automatically upgrade to - */ - - info: string; - /** - * 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. - */ - - /** @deprecated */ - - upgradedClientState?: Any; -} -/** Plan specifies information about a planned upgrade and when it should occur. */ - -export interface PlanSDKType { - name: string; - /** @deprecated */ - - time?: Date; - height: Long; - info: string; - /** @deprecated */ - - upgraded_client_state?: AnySDKType; -} -/** - * 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. - */ - -/** @deprecated */ - -export interface SoftwareUpgradeProposal { - title: string; - description: string; - plan?: 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. - */ - -/** @deprecated */ - -export interface SoftwareUpgradeProposalSDKType { - title: string; - description: string; - plan?: PlanSDKType; -} -/** - * 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. - */ - -/** @deprecated */ - -export interface CancelSoftwareUpgradeProposal { - title: string; - description: string; -} -/** - * 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. - */ - -/** @deprecated */ - -export interface CancelSoftwareUpgradeProposalSDKType { - title: string; - description: string; -} -/** - * ModuleVersion specifies a module and its consensus version. - * - * Since: cosmos-sdk 0.43 - */ - -export interface ModuleVersion { - /** name of the app module */ - name: string; - /** consensus version of the app module */ - - version: Long; -} -/** - * ModuleVersion specifies a module and its consensus version. - * - * Since: cosmos-sdk 0.43 - */ - -export interface ModuleVersionSDKType { - name: string; - version: Long; -} - -function createBasePlan(): Plan { - return { - name: "", - time: undefined, - height: Long.ZERO, - info: "", - upgradedClientState: undefined - }; -} - -export const Plan = { - encode(message: Plan, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.name !== "") { - writer.uint32(10).string(message.name); - } - - if (message.time !== undefined) { - Timestamp.encode(toTimestamp(message.time), writer.uint32(18).fork()).ldelim(); - } - - if (!message.height.isZero()) { - writer.uint32(24).int64(message.height); - } - - if (message.info !== "") { - writer.uint32(34).string(message.info); - } - - if (message.upgradedClientState !== undefined) { - Any.encode(message.upgradedClientState, writer.uint32(42).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Plan { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePlan(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - - case 2: - message.time = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - case 3: - message.height = (reader.int64() as Long); - break; - - case 4: - message.info = reader.string(); - break; - - case 5: - message.upgradedClientState = Any.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Plan { - const message = createBasePlan(); - message.name = object.name ?? ""; - message.time = object.time ?? undefined; - message.height = object.height !== undefined && object.height !== null ? Long.fromValue(object.height) : Long.ZERO; - message.info = object.info ?? ""; - message.upgradedClientState = object.upgradedClientState !== undefined && object.upgradedClientState !== null ? Any.fromPartial(object.upgradedClientState) : undefined; - return message; - } - -}; - -function createBaseSoftwareUpgradeProposal(): SoftwareUpgradeProposal { - return { - title: "", - description: "", - plan: undefined - }; -} - -export const SoftwareUpgradeProposal = { - encode(message: SoftwareUpgradeProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.title !== "") { - writer.uint32(10).string(message.title); - } - - if (message.description !== "") { - writer.uint32(18).string(message.description); - } - - if (message.plan !== undefined) { - Plan.encode(message.plan, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SoftwareUpgradeProposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSoftwareUpgradeProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.title = reader.string(); - break; - - case 2: - message.description = reader.string(); - break; - - case 3: - message.plan = Plan.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SoftwareUpgradeProposal { - const message = createBaseSoftwareUpgradeProposal(); - message.title = object.title ?? ""; - message.description = object.description ?? ""; - message.plan = object.plan !== undefined && object.plan !== null ? Plan.fromPartial(object.plan) : undefined; - return message; - } - -}; - -function createBaseCancelSoftwareUpgradeProposal(): CancelSoftwareUpgradeProposal { - return { - title: "", - description: "" - }; -} - -export const CancelSoftwareUpgradeProposal = { - encode(message: CancelSoftwareUpgradeProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.title !== "") { - writer.uint32(10).string(message.title); - } - - if (message.description !== "") { - writer.uint32(18).string(message.description); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): CancelSoftwareUpgradeProposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCancelSoftwareUpgradeProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.title = reader.string(); - break; - - case 2: - message.description = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): CancelSoftwareUpgradeProposal { - const message = createBaseCancelSoftwareUpgradeProposal(); - message.title = object.title ?? ""; - message.description = object.description ?? ""; - return message; - } - -}; - -function createBaseModuleVersion(): ModuleVersion { - return { - name: "", - version: Long.UZERO - }; -} - -export const ModuleVersion = { - encode(message: ModuleVersion, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.name !== "") { - writer.uint32(10).string(message.name); - } - - if (!message.version.isZero()) { - writer.uint32(16).uint64(message.version); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ModuleVersion { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseModuleVersion(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - - case 2: - message.version = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ModuleVersion { - const message = createBaseModuleVersion(); - message.name = object.name ?? ""; - message.version = object.version !== undefined && object.version !== null ? Long.fromValue(object.version) : Long.UZERO; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/vesting/v1beta1/tx.rpc.msg.ts b/packages/codegen/src/cosmos/vesting/v1beta1/tx.rpc.msg.ts deleted file mode 100644 index f0728ea1..00000000 --- a/packages/codegen/src/cosmos/vesting/v1beta1/tx.rpc.msg.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { MsgCreateVestingAccount, MsgCreateVestingAccountResponse, MsgCreatePermanentLockedAccount, MsgCreatePermanentLockedAccountResponse, MsgCreatePeriodicVestingAccount, MsgCreatePeriodicVestingAccountResponse } from "./tx"; -/** Msg defines the bank Msg service. */ - -export interface Msg { - /** - * CreateVestingAccount defines a method that enables creating a vesting - * account. - */ - createVestingAccount(request: MsgCreateVestingAccount): Promise; - /** - * CreatePermanentLockedAccount defines a method that enables creating a permanent - * locked account. - */ - - createPermanentLockedAccount(request: MsgCreatePermanentLockedAccount): Promise; - /** - * CreatePeriodicVestingAccount defines a method that enables creating a - * periodic vesting account. - */ - - createPeriodicVestingAccount(request: MsgCreatePeriodicVestingAccount): Promise; -} -export class MsgClientImpl implements Msg { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.createVestingAccount = this.createVestingAccount.bind(this); - this.createPermanentLockedAccount = this.createPermanentLockedAccount.bind(this); - this.createPeriodicVestingAccount = this.createPeriodicVestingAccount.bind(this); - } - - createVestingAccount(request: MsgCreateVestingAccount): Promise { - const data = MsgCreateVestingAccount.encode(request).finish(); - const promise = this.rpc.request("cosmos.vesting.v1beta1.Msg", "CreateVestingAccount", data); - return promise.then(data => MsgCreateVestingAccountResponse.decode(new _m0.Reader(data))); - } - - createPermanentLockedAccount(request: MsgCreatePermanentLockedAccount): Promise { - const data = MsgCreatePermanentLockedAccount.encode(request).finish(); - const promise = this.rpc.request("cosmos.vesting.v1beta1.Msg", "CreatePermanentLockedAccount", data); - return promise.then(data => MsgCreatePermanentLockedAccountResponse.decode(new _m0.Reader(data))); - } - - createPeriodicVestingAccount(request: MsgCreatePeriodicVestingAccount): Promise { - const data = MsgCreatePeriodicVestingAccount.encode(request).finish(); - const promise = this.rpc.request("cosmos.vesting.v1beta1.Msg", "CreatePeriodicVestingAccount", data); - return promise.then(data => MsgCreatePeriodicVestingAccountResponse.decode(new _m0.Reader(data))); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmos/vesting/v1beta1/tx.ts b/packages/codegen/src/cosmos/vesting/v1beta1/tx.ts deleted file mode 100644 index cad743c8..00000000 --- a/packages/codegen/src/cosmos/vesting/v1beta1/tx.ts +++ /dev/null @@ -1,421 +0,0 @@ -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import { Period, PeriodSDKType } from "./vesting"; -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * MsgCreateVestingAccount defines a message that enables creating a vesting - * account. - */ - -export interface MsgCreateVestingAccount { - fromAddress: string; - toAddress: string; - amount: Coin[]; - endTime: Long; - delayed: boolean; -} -/** - * MsgCreateVestingAccount defines a message that enables creating a vesting - * account. - */ - -export interface MsgCreateVestingAccountSDKType { - from_address: string; - to_address: string; - amount: CoinSDKType[]; - end_time: Long; - delayed: boolean; -} -/** MsgCreateVestingAccountResponse defines the Msg/CreateVestingAccount response type. */ - -export interface MsgCreateVestingAccountResponse {} -/** MsgCreateVestingAccountResponse defines the Msg/CreateVestingAccount response type. */ - -export interface MsgCreateVestingAccountResponseSDKType {} -/** - * MsgCreatePermanentLockedAccount defines a message that enables creating a permanent - * locked account. - */ - -export interface MsgCreatePermanentLockedAccount { - fromAddress: string; - toAddress: string; - amount: Coin[]; -} -/** - * MsgCreatePermanentLockedAccount defines a message that enables creating a permanent - * locked account. - */ - -export interface MsgCreatePermanentLockedAccountSDKType { - from_address: string; - to_address: string; - amount: CoinSDKType[]; -} -/** MsgCreatePermanentLockedAccountResponse defines the Msg/CreatePermanentLockedAccount response type. */ - -export interface MsgCreatePermanentLockedAccountResponse {} -/** MsgCreatePermanentLockedAccountResponse defines the Msg/CreatePermanentLockedAccount response type. */ - -export interface MsgCreatePermanentLockedAccountResponseSDKType {} -/** - * MsgCreateVestingAccount defines a message that enables creating a vesting - * account. - */ - -export interface MsgCreatePeriodicVestingAccount { - fromAddress: string; - toAddress: string; - startTime: Long; - vestingPeriods: Period[]; -} -/** - * MsgCreateVestingAccount defines a message that enables creating a vesting - * account. - */ - -export interface MsgCreatePeriodicVestingAccountSDKType { - from_address: string; - to_address: string; - start_time: Long; - vesting_periods: PeriodSDKType[]; -} -/** - * MsgCreateVestingAccountResponse defines the Msg/CreatePeriodicVestingAccount - * response type. - */ - -export interface MsgCreatePeriodicVestingAccountResponse {} -/** - * MsgCreateVestingAccountResponse defines the Msg/CreatePeriodicVestingAccount - * response type. - */ - -export interface MsgCreatePeriodicVestingAccountResponseSDKType {} - -function createBaseMsgCreateVestingAccount(): MsgCreateVestingAccount { - return { - fromAddress: "", - toAddress: "", - amount: [], - endTime: Long.ZERO, - delayed: false - }; -} - -export const MsgCreateVestingAccount = { - encode(message: MsgCreateVestingAccount, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.fromAddress !== "") { - writer.uint32(10).string(message.fromAddress); - } - - if (message.toAddress !== "") { - writer.uint32(18).string(message.toAddress); - } - - for (const v of message.amount) { - Coin.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - if (!message.endTime.isZero()) { - writer.uint32(32).int64(message.endTime); - } - - if (message.delayed === true) { - writer.uint32(40).bool(message.delayed); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateVestingAccount { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgCreateVestingAccount(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.fromAddress = reader.string(); - break; - - case 2: - message.toAddress = reader.string(); - break; - - case 3: - message.amount.push(Coin.decode(reader, reader.uint32())); - break; - - case 4: - message.endTime = (reader.int64() as Long); - break; - - case 5: - message.delayed = reader.bool(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgCreateVestingAccount { - const message = createBaseMsgCreateVestingAccount(); - message.fromAddress = object.fromAddress ?? ""; - message.toAddress = object.toAddress ?? ""; - message.amount = object.amount?.map(e => Coin.fromPartial(e)) || []; - message.endTime = object.endTime !== undefined && object.endTime !== null ? Long.fromValue(object.endTime) : Long.ZERO; - message.delayed = object.delayed ?? false; - return message; - } - -}; - -function createBaseMsgCreateVestingAccountResponse(): MsgCreateVestingAccountResponse { - return {}; -} - -export const MsgCreateVestingAccountResponse = { - encode(_: MsgCreateVestingAccountResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateVestingAccountResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgCreateVestingAccountResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgCreateVestingAccountResponse { - const message = createBaseMsgCreateVestingAccountResponse(); - return message; - } - -}; - -function createBaseMsgCreatePermanentLockedAccount(): MsgCreatePermanentLockedAccount { - return { - fromAddress: "", - toAddress: "", - amount: [] - }; -} - -export const MsgCreatePermanentLockedAccount = { - encode(message: MsgCreatePermanentLockedAccount, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.fromAddress !== "") { - writer.uint32(10).string(message.fromAddress); - } - - if (message.toAddress !== "") { - writer.uint32(18).string(message.toAddress); - } - - for (const v of message.amount) { - Coin.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreatePermanentLockedAccount { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgCreatePermanentLockedAccount(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.fromAddress = reader.string(); - break; - - case 2: - message.toAddress = reader.string(); - break; - - case 3: - message.amount.push(Coin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgCreatePermanentLockedAccount { - const message = createBaseMsgCreatePermanentLockedAccount(); - message.fromAddress = object.fromAddress ?? ""; - message.toAddress = object.toAddress ?? ""; - message.amount = object.amount?.map(e => Coin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseMsgCreatePermanentLockedAccountResponse(): MsgCreatePermanentLockedAccountResponse { - return {}; -} - -export const MsgCreatePermanentLockedAccountResponse = { - encode(_: MsgCreatePermanentLockedAccountResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreatePermanentLockedAccountResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgCreatePermanentLockedAccountResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgCreatePermanentLockedAccountResponse { - const message = createBaseMsgCreatePermanentLockedAccountResponse(); - return message; - } - -}; - -function createBaseMsgCreatePeriodicVestingAccount(): MsgCreatePeriodicVestingAccount { - return { - fromAddress: "", - toAddress: "", - startTime: Long.ZERO, - vestingPeriods: [] - }; -} - -export const MsgCreatePeriodicVestingAccount = { - encode(message: MsgCreatePeriodicVestingAccount, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.fromAddress !== "") { - writer.uint32(10).string(message.fromAddress); - } - - if (message.toAddress !== "") { - writer.uint32(18).string(message.toAddress); - } - - if (!message.startTime.isZero()) { - writer.uint32(24).int64(message.startTime); - } - - for (const v of message.vestingPeriods) { - Period.encode(v!, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreatePeriodicVestingAccount { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgCreatePeriodicVestingAccount(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.fromAddress = reader.string(); - break; - - case 2: - message.toAddress = reader.string(); - break; - - case 3: - message.startTime = (reader.int64() as Long); - break; - - case 4: - message.vestingPeriods.push(Period.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgCreatePeriodicVestingAccount { - const message = createBaseMsgCreatePeriodicVestingAccount(); - message.fromAddress = object.fromAddress ?? ""; - message.toAddress = object.toAddress ?? ""; - message.startTime = object.startTime !== undefined && object.startTime !== null ? Long.fromValue(object.startTime) : Long.ZERO; - message.vestingPeriods = object.vestingPeriods?.map(e => Period.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseMsgCreatePeriodicVestingAccountResponse(): MsgCreatePeriodicVestingAccountResponse { - return {}; -} - -export const MsgCreatePeriodicVestingAccountResponse = { - encode(_: MsgCreatePeriodicVestingAccountResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreatePeriodicVestingAccountResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgCreatePeriodicVestingAccountResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgCreatePeriodicVestingAccountResponse { - const message = createBaseMsgCreatePeriodicVestingAccountResponse(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos/vesting/v1beta1/vesting.ts b/packages/codegen/src/cosmos/vesting/v1beta1/vesting.ts deleted file mode 100644 index bd9ae830..00000000 --- a/packages/codegen/src/cosmos/vesting/v1beta1/vesting.ts +++ /dev/null @@ -1,468 +0,0 @@ -import { BaseAccount, BaseAccountSDKType } from "../../auth/v1beta1/auth"; -import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * BaseVestingAccount implements the VestingAccount interface. It contains all - * the necessary fields needed for any vesting account implementation. - */ - -export interface BaseVestingAccount { - baseAccount?: BaseAccount; - originalVesting: Coin[]; - delegatedFree: Coin[]; - delegatedVesting: Coin[]; - endTime: Long; -} -/** - * BaseVestingAccount implements the VestingAccount interface. It contains all - * the necessary fields needed for any vesting account implementation. - */ - -export interface BaseVestingAccountSDKType { - base_account?: BaseAccountSDKType; - original_vesting: CoinSDKType[]; - delegated_free: CoinSDKType[]; - delegated_vesting: CoinSDKType[]; - end_time: Long; -} -/** - * ContinuousVestingAccount implements the VestingAccount interface. It - * continuously vests by unlocking coins linearly with respect to time. - */ - -export interface ContinuousVestingAccount { - baseVestingAccount?: BaseVestingAccount; - startTime: Long; -} -/** - * ContinuousVestingAccount implements the VestingAccount interface. It - * continuously vests by unlocking coins linearly with respect to time. - */ - -export interface ContinuousVestingAccountSDKType { - base_vesting_account?: BaseVestingAccountSDKType; - start_time: Long; -} -/** - * 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. - */ - -export interface DelayedVestingAccount { - baseVestingAccount?: BaseVestingAccount; -} -/** - * 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. - */ - -export interface DelayedVestingAccountSDKType { - base_vesting_account?: BaseVestingAccountSDKType; -} -/** Period defines a length of time and amount of coins that will vest. */ - -export interface Period { - length: Long; - amount: Coin[]; -} -/** Period defines a length of time and amount of coins that will vest. */ - -export interface PeriodSDKType { - length: Long; - amount: CoinSDKType[]; -} -/** - * PeriodicVestingAccount implements the VestingAccount interface. It - * periodically vests by unlocking coins during each specified period. - */ - -export interface PeriodicVestingAccount { - baseVestingAccount?: BaseVestingAccount; - startTime: Long; - vestingPeriods: Period[]; -} -/** - * PeriodicVestingAccount implements the VestingAccount interface. It - * periodically vests by unlocking coins during each specified period. - */ - -export interface PeriodicVestingAccountSDKType { - base_vesting_account?: BaseVestingAccountSDKType; - start_time: Long; - vesting_periods: PeriodSDKType[]; -} -/** - * 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 - */ - -export interface PermanentLockedAccount { - baseVestingAccount?: BaseVestingAccount; -} -/** - * 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 - */ - -export interface PermanentLockedAccountSDKType { - base_vesting_account?: BaseVestingAccountSDKType; -} - -function createBaseBaseVestingAccount(): BaseVestingAccount { - return { - baseAccount: undefined, - originalVesting: [], - delegatedFree: [], - delegatedVesting: [], - endTime: Long.ZERO - }; -} - -export const BaseVestingAccount = { - encode(message: BaseVestingAccount, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.baseAccount !== undefined) { - BaseAccount.encode(message.baseAccount, writer.uint32(10).fork()).ldelim(); - } - - for (const v of message.originalVesting) { - Coin.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - for (const v of message.delegatedFree) { - Coin.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - for (const v of message.delegatedVesting) { - Coin.encode(v!, writer.uint32(34).fork()).ldelim(); - } - - if (!message.endTime.isZero()) { - writer.uint32(40).int64(message.endTime); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): BaseVestingAccount { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBaseVestingAccount(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.baseAccount = BaseAccount.decode(reader, reader.uint32()); - break; - - case 2: - message.originalVesting.push(Coin.decode(reader, reader.uint32())); - break; - - case 3: - message.delegatedFree.push(Coin.decode(reader, reader.uint32())); - break; - - case 4: - message.delegatedVesting.push(Coin.decode(reader, reader.uint32())); - break; - - case 5: - message.endTime = (reader.int64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): BaseVestingAccount { - const message = createBaseBaseVestingAccount(); - message.baseAccount = object.baseAccount !== undefined && object.baseAccount !== null ? BaseAccount.fromPartial(object.baseAccount) : undefined; - message.originalVesting = object.originalVesting?.map(e => Coin.fromPartial(e)) || []; - message.delegatedFree = object.delegatedFree?.map(e => Coin.fromPartial(e)) || []; - message.delegatedVesting = object.delegatedVesting?.map(e => Coin.fromPartial(e)) || []; - message.endTime = object.endTime !== undefined && object.endTime !== null ? Long.fromValue(object.endTime) : Long.ZERO; - return message; - } - -}; - -function createBaseContinuousVestingAccount(): ContinuousVestingAccount { - return { - baseVestingAccount: undefined, - startTime: Long.ZERO - }; -} - -export const ContinuousVestingAccount = { - encode(message: ContinuousVestingAccount, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.baseVestingAccount !== undefined) { - BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim(); - } - - if (!message.startTime.isZero()) { - writer.uint32(16).int64(message.startTime); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ContinuousVestingAccount { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseContinuousVestingAccount(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.baseVestingAccount = BaseVestingAccount.decode(reader, reader.uint32()); - break; - - case 2: - message.startTime = (reader.int64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ContinuousVestingAccount { - const message = createBaseContinuousVestingAccount(); - message.baseVestingAccount = object.baseVestingAccount !== undefined && object.baseVestingAccount !== null ? BaseVestingAccount.fromPartial(object.baseVestingAccount) : undefined; - message.startTime = object.startTime !== undefined && object.startTime !== null ? Long.fromValue(object.startTime) : Long.ZERO; - return message; - } - -}; - -function createBaseDelayedVestingAccount(): DelayedVestingAccount { - return { - baseVestingAccount: undefined - }; -} - -export const DelayedVestingAccount = { - encode(message: DelayedVestingAccount, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.baseVestingAccount !== undefined) { - BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): DelayedVestingAccount { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDelayedVestingAccount(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.baseVestingAccount = BaseVestingAccount.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): DelayedVestingAccount { - const message = createBaseDelayedVestingAccount(); - message.baseVestingAccount = object.baseVestingAccount !== undefined && object.baseVestingAccount !== null ? BaseVestingAccount.fromPartial(object.baseVestingAccount) : undefined; - return message; - } - -}; - -function createBasePeriod(): Period { - return { - length: Long.ZERO, - amount: [] - }; -} - -export const Period = { - encode(message: Period, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.length.isZero()) { - writer.uint32(8).int64(message.length); - } - - for (const v of message.amount) { - Coin.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Period { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePeriod(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.length = (reader.int64() as Long); - break; - - case 2: - message.amount.push(Coin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Period { - const message = createBasePeriod(); - message.length = object.length !== undefined && object.length !== null ? Long.fromValue(object.length) : Long.ZERO; - message.amount = object.amount?.map(e => Coin.fromPartial(e)) || []; - return message; - } - -}; - -function createBasePeriodicVestingAccount(): PeriodicVestingAccount { - return { - baseVestingAccount: undefined, - startTime: Long.ZERO, - vestingPeriods: [] - }; -} - -export const PeriodicVestingAccount = { - encode(message: PeriodicVestingAccount, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.baseVestingAccount !== undefined) { - BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim(); - } - - if (!message.startTime.isZero()) { - writer.uint32(16).int64(message.startTime); - } - - for (const v of message.vestingPeriods) { - Period.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PeriodicVestingAccount { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePeriodicVestingAccount(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.baseVestingAccount = BaseVestingAccount.decode(reader, reader.uint32()); - break; - - case 2: - message.startTime = (reader.int64() as Long); - break; - - case 3: - message.vestingPeriods.push(Period.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PeriodicVestingAccount { - const message = createBasePeriodicVestingAccount(); - message.baseVestingAccount = object.baseVestingAccount !== undefined && object.baseVestingAccount !== null ? BaseVestingAccount.fromPartial(object.baseVestingAccount) : undefined; - message.startTime = object.startTime !== undefined && object.startTime !== null ? Long.fromValue(object.startTime) : Long.ZERO; - message.vestingPeriods = object.vestingPeriods?.map(e => Period.fromPartial(e)) || []; - return message; - } - -}; - -function createBasePermanentLockedAccount(): PermanentLockedAccount { - return { - baseVestingAccount: undefined - }; -} - -export const PermanentLockedAccount = { - encode(message: PermanentLockedAccount, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.baseVestingAccount !== undefined) { - BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PermanentLockedAccount { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePermanentLockedAccount(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.baseVestingAccount = BaseVestingAccount.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PermanentLockedAccount { - const message = createBasePermanentLockedAccount(); - message.baseVestingAccount = object.baseVestingAccount !== undefined && object.baseVestingAccount !== null ? BaseVestingAccount.fromPartial(object.baseVestingAccount) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos_proto/bundle.ts b/packages/codegen/src/cosmos_proto/bundle.ts deleted file mode 100644 index 3dcd4c86..00000000 --- a/packages/codegen/src/cosmos_proto/bundle.ts +++ /dev/null @@ -1,3 +0,0 @@ -import * as _2 from "./cosmos"; -export const cosmos_proto = { ..._2 -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmos_proto/cosmos.ts b/packages/codegen/src/cosmos_proto/cosmos.ts deleted file mode 100644 index 5999944b..00000000 --- a/packages/codegen/src/cosmos_proto/cosmos.ts +++ /dev/null @@ -1,255 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../helpers"; -export enum ScalarType { - SCALAR_TYPE_UNSPECIFIED = 0, - SCALAR_TYPE_STRING = 1, - SCALAR_TYPE_BYTES = 2, - UNRECOGNIZED = -1, -} -export const ScalarTypeSDKType = ScalarType; -export function scalarTypeFromJSON(object: any): ScalarType { - switch (object) { - case 0: - case "SCALAR_TYPE_UNSPECIFIED": - return ScalarType.SCALAR_TYPE_UNSPECIFIED; - - case 1: - case "SCALAR_TYPE_STRING": - return ScalarType.SCALAR_TYPE_STRING; - - case 2: - case "SCALAR_TYPE_BYTES": - return ScalarType.SCALAR_TYPE_BYTES; - - case -1: - case "UNRECOGNIZED": - default: - return ScalarType.UNRECOGNIZED; - } -} -export function scalarTypeToJSON(object: ScalarType): string { - switch (object) { - case ScalarType.SCALAR_TYPE_UNSPECIFIED: - return "SCALAR_TYPE_UNSPECIFIED"; - - case ScalarType.SCALAR_TYPE_STRING: - return "SCALAR_TYPE_STRING"; - - case ScalarType.SCALAR_TYPE_BYTES: - return "SCALAR_TYPE_BYTES"; - - case ScalarType.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** - * InterfaceDescriptor describes an interface type to be used with - * accepts_interface and implements_interface and declared by declare_interface. - */ - -export interface 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. - */ - name: string; - /** - * description is a human-readable description of the interface and its - * purpose. - */ - - description: string; -} -/** - * InterfaceDescriptor describes an interface type to be used with - * accepts_interface and implements_interface and declared by declare_interface. - */ - -export interface InterfaceDescriptorSDKType { - name: string; - description: string; -} -/** - * 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. - */ - -export interface 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. - */ - name: string; - /** - * 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. - */ - - description: string; - /** - * 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. - */ - - fieldType: ScalarType[]; -} -/** - * 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. - */ - -export interface ScalarDescriptorSDKType { - name: string; - description: string; - field_type: ScalarType[]; -} - -function createBaseInterfaceDescriptor(): InterfaceDescriptor { - return { - name: "", - description: "" - }; -} - -export const InterfaceDescriptor = { - encode(message: InterfaceDescriptor, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.name !== "") { - writer.uint32(10).string(message.name); - } - - if (message.description !== "") { - writer.uint32(18).string(message.description); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): InterfaceDescriptor { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseInterfaceDescriptor(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - - case 2: - message.description = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): InterfaceDescriptor { - const message = createBaseInterfaceDescriptor(); - message.name = object.name ?? ""; - message.description = object.description ?? ""; - return message; - } - -}; - -function createBaseScalarDescriptor(): ScalarDescriptor { - return { - name: "", - description: "", - fieldType: [] - }; -} - -export const ScalarDescriptor = { - encode(message: ScalarDescriptor, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.name !== "") { - writer.uint32(10).string(message.name); - } - - if (message.description !== "") { - writer.uint32(18).string(message.description); - } - - writer.uint32(26).fork(); - - for (const v of message.fieldType) { - writer.int32(v); - } - - writer.ldelim(); - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ScalarDescriptor { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseScalarDescriptor(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - - case 2: - message.description = reader.string(); - break; - - case 3: - if ((tag & 7) === 2) { - const end2 = reader.uint32() + reader.pos; - - while (reader.pos < end2) { - message.fieldType.push((reader.int32() as any)); - } - } else { - message.fieldType.push((reader.int32() as any)); - } - - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ScalarDescriptor { - const message = createBaseScalarDescriptor(); - message.name = object.name ?? ""; - message.description = object.description ?? ""; - message.fieldType = object.fieldType?.map(e => e) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmwasm/bundle.ts b/packages/codegen/src/cosmwasm/bundle.ts deleted file mode 100644 index f090e4ab..00000000 --- a/packages/codegen/src/cosmwasm/bundle.ts +++ /dev/null @@ -1,32 +0,0 @@ -import * as _95 from "./wasm/v1/authz"; -import * as _96 from "./wasm/v1/genesis"; -import * as _97 from "./wasm/v1/ibc"; -import * as _98 from "./wasm/v1/proposal"; -import * as _99 from "./wasm/v1/query"; -import * as _100 from "./wasm/v1/tx"; -import * as _101 from "./wasm/v1/types"; -import * as _194 from "./wasm/v1/query.lcd"; -import * as _195 from "./wasm/v1/query.rpc.Query"; -import * as _196 from "./wasm/v1/tx.rpc.msg"; -import * as _213 from "./lcd"; -import * as _214 from "./rpc.query"; -import * as _215 from "./rpc.tx"; -export namespace cosmwasm { - export namespace wasm { - export const v1 = { ..._95, - ..._96, - ..._97, - ..._98, - ..._99, - ..._100, - ..._101, - ..._194, - ..._195, - ..._196 - }; - } - export const ClientFactory = { ..._213, - ..._214, - ..._215 - }; -} \ No newline at end of file diff --git a/packages/codegen/src/cosmwasm/lcd.ts b/packages/codegen/src/cosmwasm/lcd.ts deleted file mode 100644 index ce16f358..00000000 --- a/packages/codegen/src/cosmwasm/lcd.ts +++ /dev/null @@ -1,106 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -export const createLCDClient = async ({ - restEndpoint -}: { - restEndpoint: string; -}) => { - const requestClient = new LCDClient({ - restEndpoint - }); - return { - cosmos: { - auth: { - v1beta1: new (await import("../cosmos/auth/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - authz: { - v1beta1: new (await import("../cosmos/authz/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - bank: { - v1beta1: new (await import("../cosmos/bank/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - base: { - tendermint: { - v1beta1: new (await import("../cosmos/base/tendermint/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - } - }, - distribution: { - v1beta1: new (await import("../cosmos/distribution/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - evidence: { - v1beta1: new (await import("../cosmos/evidence/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - feegrant: { - v1beta1: new (await import("../cosmos/feegrant/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - gov: { - v1: new (await import("../cosmos/gov/v1/query.lcd")).LCDQueryClient({ - requestClient - }), - v1beta1: new (await import("../cosmos/gov/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - group: { - v1: new (await import("../cosmos/group/v1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - mint: { - v1beta1: new (await import("../cosmos/mint/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - nft: { - v1beta1: new (await import("../cosmos/nft/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - params: { - v1beta1: new (await import("../cosmos/params/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - slashing: { - v1beta1: new (await import("../cosmos/slashing/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - staking: { - v1beta1: new (await import("../cosmos/staking/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - tx: { - v1beta1: new (await import("../cosmos/tx/v1beta1/service.lcd")).LCDQueryClient({ - requestClient - }) - }, - upgrade: { - v1beta1: new (await import("../cosmos/upgrade/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - } - }, - cosmwasm: { - wasm: { - v1: new (await import("./wasm/v1/query.lcd")).LCDQueryClient({ - requestClient - }) - } - } - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmwasm/rpc.query.ts b/packages/codegen/src/cosmwasm/rpc.query.ts deleted file mode 100644 index 8fa98029..00000000 --- a/packages/codegen/src/cosmwasm/rpc.query.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { Tendermint34Client, HttpEndpoint } from "@cosmjs/tendermint-rpc"; -import { QueryClient } from "@cosmjs/stargate"; -export const createRPCQueryClient = async ({ - rpcEndpoint -}: { - rpcEndpoint: string | HttpEndpoint; -}) => { - const tmClient = await Tendermint34Client.connect(rpcEndpoint); - const client = new QueryClient(tmClient); - return { - cosmos: { - app: { - v1alpha1: (await import("../cosmos/app/v1alpha1/query.rpc.Query")).createRpcQueryExtension(client) - }, - auth: { - v1beta1: (await import("../cosmos/auth/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - authz: { - v1beta1: (await import("../cosmos/authz/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - bank: { - v1beta1: (await import("../cosmos/bank/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - base: { - tendermint: { - v1beta1: (await import("../cosmos/base/tendermint/v1beta1/query.rpc.Service")).createRpcQueryExtension(client) - } - }, - distribution: { - v1beta1: (await import("../cosmos/distribution/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - evidence: { - v1beta1: (await import("../cosmos/evidence/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - feegrant: { - v1beta1: (await import("../cosmos/feegrant/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - gov: { - v1: (await import("../cosmos/gov/v1/query.rpc.Query")).createRpcQueryExtension(client), - v1beta1: (await import("../cosmos/gov/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - group: { - v1: (await import("../cosmos/group/v1/query.rpc.Query")).createRpcQueryExtension(client) - }, - mint: { - v1beta1: (await import("../cosmos/mint/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - nft: { - v1beta1: (await import("../cosmos/nft/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - params: { - v1beta1: (await import("../cosmos/params/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - slashing: { - v1beta1: (await import("../cosmos/slashing/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - staking: { - v1beta1: (await import("../cosmos/staking/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - tx: { - v1beta1: (await import("../cosmos/tx/v1beta1/service.rpc.Service")).createRpcQueryExtension(client) - }, - upgrade: { - v1beta1: (await import("../cosmos/upgrade/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - } - }, - cosmwasm: { - wasm: { - v1: (await import("./wasm/v1/query.rpc.Query")).createRpcQueryExtension(client) - } - } - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmwasm/rpc.tx.ts b/packages/codegen/src/cosmwasm/rpc.tx.ts deleted file mode 100644 index e0ff07d4..00000000 --- a/packages/codegen/src/cosmwasm/rpc.tx.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { Rpc } from "../helpers"; -export const createRPCMsgClient = async ({ - rpc -}: { - rpc: Rpc; -}) => ({ - cosmos: { - authz: { - v1beta1: new (await import("../cosmos/authz/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - bank: { - v1beta1: new (await import("../cosmos/bank/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - crisis: { - v1beta1: new (await import("../cosmos/crisis/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - distribution: { - v1beta1: new (await import("../cosmos/distribution/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - evidence: { - v1beta1: new (await import("../cosmos/evidence/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - feegrant: { - v1beta1: new (await import("../cosmos/feegrant/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - gov: { - v1: new (await import("../cosmos/gov/v1/tx.rpc.msg")).MsgClientImpl(rpc), - v1beta1: new (await import("../cosmos/gov/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - group: { - v1: new (await import("../cosmos/group/v1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - nft: { - v1beta1: new (await import("../cosmos/nft/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - slashing: { - v1beta1: new (await import("../cosmos/slashing/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - staking: { - v1beta1: new (await import("../cosmos/staking/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - upgrade: { - v1beta1: new (await import("../cosmos/upgrade/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - vesting: { - v1beta1: new (await import("../cosmos/vesting/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - } - }, - cosmwasm: { - wasm: { - v1: new (await import("./wasm/v1/tx.rpc.msg")).MsgClientImpl(rpc) - } - } -}); \ No newline at end of file diff --git a/packages/codegen/src/cosmwasm/wasm/v1/authz.ts b/packages/codegen/src/cosmwasm/wasm/v1/authz.ts deleted file mode 100644 index b45419ea..00000000 --- a/packages/codegen/src/cosmwasm/wasm/v1/authz.ts +++ /dev/null @@ -1,603 +0,0 @@ -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import { Coin, CoinSDKType } from "../../../cosmos/base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** - * ContractExecutionAuthorization defines authorization for wasm execute. - * Since: wasmd 0.30 - */ - -export interface ContractExecutionAuthorization { - /** Grants for contract executions */ - grants: ContractGrant[]; -} -/** - * ContractExecutionAuthorization defines authorization for wasm execute. - * Since: wasmd 0.30 - */ - -export interface ContractExecutionAuthorizationSDKType { - grants: ContractGrantSDKType[]; -} -/** - * ContractMigrationAuthorization defines authorization for wasm contract - * migration. Since: wasmd 0.30 - */ - -export interface ContractMigrationAuthorization { - /** Grants for contract migrations */ - grants: ContractGrant[]; -} -/** - * ContractMigrationAuthorization defines authorization for wasm contract - * migration. Since: wasmd 0.30 - */ - -export interface ContractMigrationAuthorizationSDKType { - grants: ContractGrantSDKType[]; -} -/** - * ContractGrant a granted permission for a single contract - * Since: wasmd 0.30 - */ - -export interface ContractGrant { - /** Contract is the bech32 address of the smart contract */ - contract: string; - /** - * Limit defines execution limits that are enforced and updated when the grant - * is applied. When the limit lapsed the grant is removed. - */ - - limit?: Any; - /** - * Filter define more fine-grained control on the message payload passed - * to the contract in the operation. When no filter applies on execution, the - * operation is prohibited. - */ - - filter?: Any; -} -/** - * ContractGrant a granted permission for a single contract - * Since: wasmd 0.30 - */ - -export interface ContractGrantSDKType { - contract: string; - limit?: AnySDKType; - filter?: AnySDKType; -} -/** - * MaxCallsLimit limited number of calls to the contract. No funds transferable. - * Since: wasmd 0.30 - */ - -export interface MaxCallsLimit { - /** Remaining number that is decremented on each execution */ - remaining: Long; -} -/** - * MaxCallsLimit limited number of calls to the contract. No funds transferable. - * Since: wasmd 0.30 - */ - -export interface MaxCallsLimitSDKType { - remaining: Long; -} -/** - * MaxFundsLimit defines the maximal amounts that can be sent to the contract. - * Since: wasmd 0.30 - */ - -export interface MaxFundsLimit { - /** Amounts is the maximal amount of tokens transferable to the contract. */ - amounts: Coin[]; -} -/** - * MaxFundsLimit defines the maximal amounts that can be sent to the contract. - * Since: wasmd 0.30 - */ - -export interface MaxFundsLimitSDKType { - amounts: CoinSDKType[]; -} -/** - * CombinedLimit defines the maximal amounts that can be sent to a contract and - * the maximal number of calls executable. Both need to remain >0 to be valid. - * Since: wasmd 0.30 - */ - -export interface CombinedLimit { - /** Remaining number that is decremented on each execution */ - callsRemaining: Long; - /** Amounts is the maximal amount of tokens transferable to the contract. */ - - amounts: Coin[]; -} -/** - * CombinedLimit defines the maximal amounts that can be sent to a contract and - * the maximal number of calls executable. Both need to remain >0 to be valid. - * Since: wasmd 0.30 - */ - -export interface CombinedLimitSDKType { - calls_remaining: Long; - amounts: CoinSDKType[]; -} -/** - * AllowAllMessagesFilter is a wildcard to allow any type of contract payload - * message. - * Since: wasmd 0.30 - */ - -export interface AllowAllMessagesFilter {} -/** - * AllowAllMessagesFilter is a wildcard to allow any type of contract payload - * message. - * Since: wasmd 0.30 - */ - -export interface AllowAllMessagesFilterSDKType {} -/** - * AcceptedMessageKeysFilter accept only the specific contract message keys in - * the json object to be executed. - * Since: wasmd 0.30 - */ - -export interface AcceptedMessageKeysFilter { - /** Messages is the list of unique keys */ - keys: string[]; -} -/** - * AcceptedMessageKeysFilter accept only the specific contract message keys in - * the json object to be executed. - * Since: wasmd 0.30 - */ - -export interface AcceptedMessageKeysFilterSDKType { - keys: string[]; -} -/** - * AcceptedMessagesFilter accept only the specific raw contract messages to be - * executed. - * Since: wasmd 0.30 - */ - -export interface AcceptedMessagesFilter { - /** Messages is the list of raw contract messages */ - messages: Uint8Array[]; -} -/** - * AcceptedMessagesFilter accept only the specific raw contract messages to be - * executed. - * Since: wasmd 0.30 - */ - -export interface AcceptedMessagesFilterSDKType { - messages: Uint8Array[]; -} - -function createBaseContractExecutionAuthorization(): ContractExecutionAuthorization { - return { - grants: [] - }; -} - -export const ContractExecutionAuthorization = { - encode(message: ContractExecutionAuthorization, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.grants) { - ContractGrant.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ContractExecutionAuthorization { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseContractExecutionAuthorization(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.grants.push(ContractGrant.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ContractExecutionAuthorization { - const message = createBaseContractExecutionAuthorization(); - message.grants = object.grants?.map(e => ContractGrant.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseContractMigrationAuthorization(): ContractMigrationAuthorization { - return { - grants: [] - }; -} - -export const ContractMigrationAuthorization = { - encode(message: ContractMigrationAuthorization, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.grants) { - ContractGrant.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ContractMigrationAuthorization { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseContractMigrationAuthorization(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.grants.push(ContractGrant.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ContractMigrationAuthorization { - const message = createBaseContractMigrationAuthorization(); - message.grants = object.grants?.map(e => ContractGrant.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseContractGrant(): ContractGrant { - return { - contract: "", - limit: undefined, - filter: undefined - }; -} - -export const ContractGrant = { - encode(message: ContractGrant, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.contract !== "") { - writer.uint32(10).string(message.contract); - } - - if (message.limit !== undefined) { - Any.encode(message.limit, writer.uint32(18).fork()).ldelim(); - } - - if (message.filter !== undefined) { - Any.encode(message.filter, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ContractGrant { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseContractGrant(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.contract = reader.string(); - break; - - case 2: - message.limit = Any.decode(reader, reader.uint32()); - break; - - case 3: - message.filter = Any.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ContractGrant { - const message = createBaseContractGrant(); - message.contract = object.contract ?? ""; - message.limit = object.limit !== undefined && object.limit !== null ? Any.fromPartial(object.limit) : undefined; - message.filter = object.filter !== undefined && object.filter !== null ? Any.fromPartial(object.filter) : undefined; - return message; - } - -}; - -function createBaseMaxCallsLimit(): MaxCallsLimit { - return { - remaining: Long.UZERO - }; -} - -export const MaxCallsLimit = { - encode(message: MaxCallsLimit, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.remaining.isZero()) { - writer.uint32(8).uint64(message.remaining); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MaxCallsLimit { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMaxCallsLimit(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.remaining = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MaxCallsLimit { - const message = createBaseMaxCallsLimit(); - message.remaining = object.remaining !== undefined && object.remaining !== null ? Long.fromValue(object.remaining) : Long.UZERO; - return message; - } - -}; - -function createBaseMaxFundsLimit(): MaxFundsLimit { - return { - amounts: [] - }; -} - -export const MaxFundsLimit = { - encode(message: MaxFundsLimit, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.amounts) { - Coin.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MaxFundsLimit { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMaxFundsLimit(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.amounts.push(Coin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MaxFundsLimit { - const message = createBaseMaxFundsLimit(); - message.amounts = object.amounts?.map(e => Coin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseCombinedLimit(): CombinedLimit { - return { - callsRemaining: Long.UZERO, - amounts: [] - }; -} - -export const CombinedLimit = { - encode(message: CombinedLimit, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.callsRemaining.isZero()) { - writer.uint32(8).uint64(message.callsRemaining); - } - - for (const v of message.amounts) { - Coin.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): CombinedLimit { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCombinedLimit(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.callsRemaining = (reader.uint64() as Long); - break; - - case 2: - message.amounts.push(Coin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): CombinedLimit { - const message = createBaseCombinedLimit(); - message.callsRemaining = object.callsRemaining !== undefined && object.callsRemaining !== null ? Long.fromValue(object.callsRemaining) : Long.UZERO; - message.amounts = object.amounts?.map(e => Coin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseAllowAllMessagesFilter(): AllowAllMessagesFilter { - return {}; -} - -export const AllowAllMessagesFilter = { - encode(_: AllowAllMessagesFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): AllowAllMessagesFilter { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAllowAllMessagesFilter(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): AllowAllMessagesFilter { - const message = createBaseAllowAllMessagesFilter(); - return message; - } - -}; - -function createBaseAcceptedMessageKeysFilter(): AcceptedMessageKeysFilter { - return { - keys: [] - }; -} - -export const AcceptedMessageKeysFilter = { - encode(message: AcceptedMessageKeysFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.keys) { - writer.uint32(10).string(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): AcceptedMessageKeysFilter { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAcceptedMessageKeysFilter(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.keys.push(reader.string()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): AcceptedMessageKeysFilter { - const message = createBaseAcceptedMessageKeysFilter(); - message.keys = object.keys?.map(e => e) || []; - return message; - } - -}; - -function createBaseAcceptedMessagesFilter(): AcceptedMessagesFilter { - return { - messages: [] - }; -} - -export const AcceptedMessagesFilter = { - encode(message: AcceptedMessagesFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.messages) { - writer.uint32(10).bytes(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): AcceptedMessagesFilter { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAcceptedMessagesFilter(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.messages.push(reader.bytes()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): AcceptedMessagesFilter { - const message = createBaseAcceptedMessagesFilter(); - message.messages = object.messages?.map(e => e) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmwasm/wasm/v1/genesis.ts b/packages/codegen/src/cosmwasm/wasm/v1/genesis.ts deleted file mode 100644 index 7bb16707..00000000 --- a/packages/codegen/src/cosmwasm/wasm/v1/genesis.ts +++ /dev/null @@ -1,345 +0,0 @@ -import { Params, ParamsSDKType, CodeInfo, CodeInfoSDKType, ContractInfo, ContractInfoSDKType, Model, ModelSDKType, ContractCodeHistoryEntry, ContractCodeHistoryEntrySDKType } from "./types"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** GenesisState - genesis state of x/wasm */ - -export interface GenesisState { - params?: Params; - codes: Code[]; - contracts: Contract[]; - sequences: Sequence[]; -} -/** GenesisState - genesis state of x/wasm */ - -export interface GenesisStateSDKType { - params?: ParamsSDKType; - codes: CodeSDKType[]; - contracts: ContractSDKType[]; - sequences: SequenceSDKType[]; -} -/** Code struct encompasses CodeInfo and CodeBytes */ - -export interface Code { - codeId: Long; - codeInfo?: CodeInfo; - codeBytes: Uint8Array; - /** Pinned to wasmvm cache */ - - pinned: boolean; -} -/** Code struct encompasses CodeInfo and CodeBytes */ - -export interface CodeSDKType { - code_id: Long; - code_info?: CodeInfoSDKType; - code_bytes: Uint8Array; - pinned: boolean; -} -/** Contract struct encompasses ContractAddress, ContractInfo, and ContractState */ - -export interface Contract { - contractAddress: string; - contractInfo?: ContractInfo; - contractState: Model[]; - contractCodeHistory: ContractCodeHistoryEntry[]; -} -/** Contract struct encompasses ContractAddress, ContractInfo, and ContractState */ - -export interface ContractSDKType { - contract_address: string; - contract_info?: ContractInfoSDKType; - contract_state: ModelSDKType[]; - contract_code_history: ContractCodeHistoryEntrySDKType[]; -} -/** Sequence key and value of an id generation counter */ - -export interface Sequence { - idKey: Uint8Array; - value: Long; -} -/** Sequence key and value of an id generation counter */ - -export interface SequenceSDKType { - id_key: Uint8Array; - value: Long; -} - -function createBaseGenesisState(): GenesisState { - return { - params: undefined, - codes: [], - contracts: [], - sequences: [] - }; -} - -export const GenesisState = { - encode(message: GenesisState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.params !== undefined) { - Params.encode(message.params, writer.uint32(10).fork()).ldelim(); - } - - for (const v of message.codes) { - Code.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - for (const v of message.contracts) { - Contract.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - for (const v of message.sequences) { - Sequence.encode(v!, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.params = Params.decode(reader, reader.uint32()); - break; - - case 2: - message.codes.push(Code.decode(reader, reader.uint32())); - break; - - case 3: - message.contracts.push(Contract.decode(reader, reader.uint32())); - break; - - case 4: - message.sequences.push(Sequence.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenesisState { - const message = createBaseGenesisState(); - message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined; - message.codes = object.codes?.map(e => Code.fromPartial(e)) || []; - message.contracts = object.contracts?.map(e => Contract.fromPartial(e)) || []; - message.sequences = object.sequences?.map(e => Sequence.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseCode(): Code { - return { - codeId: Long.UZERO, - codeInfo: undefined, - codeBytes: new Uint8Array(), - pinned: false - }; -} - -export const Code = { - encode(message: Code, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.codeId.isZero()) { - writer.uint32(8).uint64(message.codeId); - } - - if (message.codeInfo !== undefined) { - CodeInfo.encode(message.codeInfo, writer.uint32(18).fork()).ldelim(); - } - - if (message.codeBytes.length !== 0) { - writer.uint32(26).bytes(message.codeBytes); - } - - if (message.pinned === true) { - writer.uint32(32).bool(message.pinned); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Code { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCode(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.codeId = (reader.uint64() as Long); - break; - - case 2: - message.codeInfo = CodeInfo.decode(reader, reader.uint32()); - break; - - case 3: - message.codeBytes = reader.bytes(); - break; - - case 4: - message.pinned = reader.bool(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Code { - const message = createBaseCode(); - message.codeId = object.codeId !== undefined && object.codeId !== null ? Long.fromValue(object.codeId) : Long.UZERO; - message.codeInfo = object.codeInfo !== undefined && object.codeInfo !== null ? CodeInfo.fromPartial(object.codeInfo) : undefined; - message.codeBytes = object.codeBytes ?? new Uint8Array(); - message.pinned = object.pinned ?? false; - return message; - } - -}; - -function createBaseContract(): Contract { - return { - contractAddress: "", - contractInfo: undefined, - contractState: [], - contractCodeHistory: [] - }; -} - -export const Contract = { - encode(message: Contract, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.contractAddress !== "") { - writer.uint32(10).string(message.contractAddress); - } - - if (message.contractInfo !== undefined) { - ContractInfo.encode(message.contractInfo, writer.uint32(18).fork()).ldelim(); - } - - for (const v of message.contractState) { - Model.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - for (const v of message.contractCodeHistory) { - ContractCodeHistoryEntry.encode(v!, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Contract { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseContract(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.contractAddress = reader.string(); - break; - - case 2: - message.contractInfo = ContractInfo.decode(reader, reader.uint32()); - break; - - case 3: - message.contractState.push(Model.decode(reader, reader.uint32())); - break; - - case 4: - message.contractCodeHistory.push(ContractCodeHistoryEntry.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Contract { - const message = createBaseContract(); - message.contractAddress = object.contractAddress ?? ""; - message.contractInfo = object.contractInfo !== undefined && object.contractInfo !== null ? ContractInfo.fromPartial(object.contractInfo) : undefined; - message.contractState = object.contractState?.map(e => Model.fromPartial(e)) || []; - message.contractCodeHistory = object.contractCodeHistory?.map(e => ContractCodeHistoryEntry.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseSequence(): Sequence { - return { - idKey: new Uint8Array(), - value: Long.UZERO - }; -} - -export const Sequence = { - encode(message: Sequence, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.idKey.length !== 0) { - writer.uint32(10).bytes(message.idKey); - } - - if (!message.value.isZero()) { - writer.uint32(16).uint64(message.value); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Sequence { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSequence(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.idKey = reader.bytes(); - break; - - case 2: - message.value = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Sequence { - const message = createBaseSequence(); - message.idKey = object.idKey ?? new Uint8Array(); - message.value = object.value !== undefined && object.value !== null ? Long.fromValue(object.value) : Long.UZERO; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmwasm/wasm/v1/ibc.ts b/packages/codegen/src/cosmwasm/wasm/v1/ibc.ts deleted file mode 100644 index 8eb06381..00000000 --- a/packages/codegen/src/cosmwasm/wasm/v1/ibc.ts +++ /dev/null @@ -1,164 +0,0 @@ -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** MsgIBCSend */ - -export interface MsgIBCSend { - /** the channel by which the packet will be sent */ - channel: string; - /** - * Timeout height relative to the current block height. - * The timeout is disabled when set to 0. - */ - - timeoutHeight: Long; - /** - * Timeout timestamp (in nanoseconds) relative to the current block timestamp. - * The timeout is disabled when set to 0. - */ - - timeoutTimestamp: Long; - /** - * Data is the payload to transfer. We must not make assumption what format or - * content is in here. - */ - - data: Uint8Array; -} -/** MsgIBCSend */ - -export interface MsgIBCSendSDKType { - channel: string; - timeout_height: Long; - timeout_timestamp: Long; - data: Uint8Array; -} -/** MsgIBCCloseChannel port and channel need to be owned by the contract */ - -export interface MsgIBCCloseChannel { - channel: string; -} -/** MsgIBCCloseChannel port and channel need to be owned by the contract */ - -export interface MsgIBCCloseChannelSDKType { - channel: string; -} - -function createBaseMsgIBCSend(): MsgIBCSend { - return { - channel: "", - timeoutHeight: Long.UZERO, - timeoutTimestamp: Long.UZERO, - data: new Uint8Array() - }; -} - -export const MsgIBCSend = { - encode(message: MsgIBCSend, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.channel !== "") { - writer.uint32(18).string(message.channel); - } - - if (!message.timeoutHeight.isZero()) { - writer.uint32(32).uint64(message.timeoutHeight); - } - - if (!message.timeoutTimestamp.isZero()) { - writer.uint32(40).uint64(message.timeoutTimestamp); - } - - if (message.data.length !== 0) { - writer.uint32(50).bytes(message.data); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgIBCSend { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgIBCSend(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 2: - message.channel = reader.string(); - break; - - case 4: - message.timeoutHeight = (reader.uint64() as Long); - break; - - case 5: - message.timeoutTimestamp = (reader.uint64() as Long); - break; - - case 6: - message.data = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgIBCSend { - const message = createBaseMsgIBCSend(); - message.channel = object.channel ?? ""; - message.timeoutHeight = object.timeoutHeight !== undefined && object.timeoutHeight !== null ? Long.fromValue(object.timeoutHeight) : Long.UZERO; - message.timeoutTimestamp = object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null ? Long.fromValue(object.timeoutTimestamp) : Long.UZERO; - message.data = object.data ?? new Uint8Array(); - return message; - } - -}; - -function createBaseMsgIBCCloseChannel(): MsgIBCCloseChannel { - return { - channel: "" - }; -} - -export const MsgIBCCloseChannel = { - encode(message: MsgIBCCloseChannel, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.channel !== "") { - writer.uint32(18).string(message.channel); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgIBCCloseChannel { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgIBCCloseChannel(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 2: - message.channel = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgIBCCloseChannel { - const message = createBaseMsgIBCCloseChannel(); - message.channel = object.channel ?? ""; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmwasm/wasm/v1/proposal.ts b/packages/codegen/src/cosmwasm/wasm/v1/proposal.ts deleted file mode 100644 index 01d40f28..00000000 --- a/packages/codegen/src/cosmwasm/wasm/v1/proposal.ts +++ /dev/null @@ -1,1668 +0,0 @@ -import { AccessConfig, AccessConfigSDKType } from "./types"; -import { Coin, CoinSDKType } from "../../../cosmos/base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** StoreCodeProposal gov proposal content type to submit WASM code to the system */ - -export interface StoreCodeProposal { - /** Title is a short summary */ - title: string; - /** Description is a human readable text */ - - description: string; - /** RunAs is the address that is passed to the contract's environment as sender */ - - runAs: string; - /** WASMByteCode can be raw or gzip compressed */ - - wasmByteCode: Uint8Array; - /** InstantiatePermission to apply on contract creation, optional */ - - instantiatePermission?: AccessConfig; - /** UnpinCode code on upload, optional */ - - unpinCode: boolean; - /** Source is the URL where the code is hosted */ - - source: string; - /** - * Builder is the docker image used to build the code deterministically, used - * for smart contract verification - */ - - builder: string; - /** - * CodeHash is the SHA256 sum of the code outputted by builder, used for smart - * contract verification - */ - - codeHash: Uint8Array; -} -/** StoreCodeProposal gov proposal content type to submit WASM code to the system */ - -export interface StoreCodeProposalSDKType { - title: string; - description: string; - run_as: string; - wasm_byte_code: Uint8Array; - instantiate_permission?: AccessConfigSDKType; - unpin_code: boolean; - source: string; - builder: string; - code_hash: Uint8Array; -} -/** - * InstantiateContractProposal gov proposal content type to instantiate a - * contract. - */ - -export interface InstantiateContractProposal { - /** Title is a short summary */ - title: string; - /** Description is a human readable text */ - - description: string; - /** RunAs is the address that is passed to the contract's environment as sender */ - - runAs: string; - /** Admin is an optional address that can execute migrations */ - - admin: string; - /** CodeID is the reference to the stored WASM code */ - - codeId: Long; - /** Label is optional metadata to be stored with a constract instance. */ - - label: string; - /** Msg json encoded message to be passed to the contract on instantiation */ - - msg: Uint8Array; - /** Funds coins that are transferred to the contract on instantiation */ - - funds: Coin[]; -} -/** - * InstantiateContractProposal gov proposal content type to instantiate a - * contract. - */ - -export interface InstantiateContractProposalSDKType { - title: string; - description: string; - run_as: string; - admin: string; - code_id: Long; - label: string; - msg: Uint8Array; - funds: CoinSDKType[]; -} -/** - * InstantiateContract2Proposal gov proposal content type to instantiate - * contract 2 - */ - -export interface InstantiateContract2Proposal { - /** Title is a short summary */ - title: string; - /** Description is a human readable text */ - - description: string; - /** RunAs is the address that is passed to the contract's enviroment as sender */ - - runAs: string; - /** Admin is an optional address that can execute migrations */ - - admin: string; - /** CodeID is the reference to the stored WASM code */ - - codeId: Long; - /** Label is optional metadata to be stored with a constract instance. */ - - label: string; - /** Msg json encode message to be passed to the contract on instantiation */ - - msg: Uint8Array; - /** Funds coins that are transferred to the contract on instantiation */ - - funds: Coin[]; - /** Salt is an arbitrary value provided by the sender. Size can be 1 to 64. */ - - salt: Uint8Array; - /** - * FixMsg include the msg value into the hash for the predictable address. - * Default is false - */ - - fixMsg: boolean; -} -/** - * InstantiateContract2Proposal gov proposal content type to instantiate - * contract 2 - */ - -export interface InstantiateContract2ProposalSDKType { - title: string; - description: string; - run_as: string; - admin: string; - code_id: Long; - label: string; - msg: Uint8Array; - funds: CoinSDKType[]; - salt: Uint8Array; - fix_msg: boolean; -} -/** MigrateContractProposal gov proposal content type to migrate a contract. */ - -export interface MigrateContractProposal { - /** Title is a short summary */ - title: string; - /** Description is a human readable text */ - - description: string; - /** Contract is the address of the smart contract */ - - contract: string; - /** CodeID references the new WASM code */ - - codeId: Long; - /** Msg json encoded message to be passed to the contract on migration */ - - msg: Uint8Array; -} -/** MigrateContractProposal gov proposal content type to migrate a contract. */ - -export interface MigrateContractProposalSDKType { - title: string; - description: string; - contract: string; - code_id: Long; - msg: Uint8Array; -} -/** SudoContractProposal gov proposal content type to call sudo on a contract. */ - -export interface SudoContractProposal { - /** Title is a short summary */ - title: string; - /** Description is a human readable text */ - - description: string; - /** Contract is the address of the smart contract */ - - contract: string; - /** Msg json encoded message to be passed to the contract as sudo */ - - msg: Uint8Array; -} -/** SudoContractProposal gov proposal content type to call sudo on a contract. */ - -export interface SudoContractProposalSDKType { - title: string; - description: string; - contract: string; - msg: Uint8Array; -} -/** - * ExecuteContractProposal gov proposal content type to call execute on a - * contract. - */ - -export interface ExecuteContractProposal { - /** Title is a short summary */ - title: string; - /** Description is a human readable text */ - - description: string; - /** RunAs is the address that is passed to the contract's environment as sender */ - - runAs: string; - /** Contract is the address of the smart contract */ - - contract: string; - /** Msg json encoded message to be passed to the contract as execute */ - - msg: Uint8Array; - /** Funds coins that are transferred to the contract on instantiation */ - - funds: Coin[]; -} -/** - * ExecuteContractProposal gov proposal content type to call execute on a - * contract. - */ - -export interface ExecuteContractProposalSDKType { - title: string; - description: string; - run_as: string; - contract: string; - msg: Uint8Array; - funds: CoinSDKType[]; -} -/** UpdateAdminProposal gov proposal content type to set an admin for a contract. */ - -export interface UpdateAdminProposal { - /** Title is a short summary */ - title: string; - /** Description is a human readable text */ - - description: string; - /** NewAdmin address to be set */ - - newAdmin: string; - /** Contract is the address of the smart contract */ - - contract: string; -} -/** UpdateAdminProposal gov proposal content type to set an admin for a contract. */ - -export interface UpdateAdminProposalSDKType { - title: string; - description: string; - new_admin: string; - contract: string; -} -/** - * ClearAdminProposal gov proposal content type to clear the admin of a - * contract. - */ - -export interface ClearAdminProposal { - /** Title is a short summary */ - title: string; - /** Description is a human readable text */ - - description: string; - /** Contract is the address of the smart contract */ - - contract: string; -} -/** - * ClearAdminProposal gov proposal content type to clear the admin of a - * contract. - */ - -export interface ClearAdminProposalSDKType { - title: string; - description: string; - contract: string; -} -/** - * PinCodesProposal gov proposal content type to pin a set of code ids in the - * wasmvm cache. - */ - -export interface PinCodesProposal { - /** Title is a short summary */ - title: string; - /** Description is a human readable text */ - - description: string; - /** CodeIDs references the new WASM codes */ - - codeIds: Long[]; -} -/** - * PinCodesProposal gov proposal content type to pin a set of code ids in the - * wasmvm cache. - */ - -export interface PinCodesProposalSDKType { - title: string; - description: string; - code_ids: Long[]; -} -/** - * UnpinCodesProposal gov proposal content type to unpin a set of code ids in - * the wasmvm cache. - */ - -export interface UnpinCodesProposal { - /** Title is a short summary */ - title: string; - /** Description is a human readable text */ - - description: string; - /** CodeIDs references the WASM codes */ - - codeIds: Long[]; -} -/** - * UnpinCodesProposal gov proposal content type to unpin a set of code ids in - * the wasmvm cache. - */ - -export interface UnpinCodesProposalSDKType { - title: string; - description: string; - code_ids: Long[]; -} -/** - * AccessConfigUpdate contains the code id and the access config to be - * applied. - */ - -export interface AccessConfigUpdate { - /** CodeID is the reference to the stored WASM code to be updated */ - codeId: Long; - /** InstantiatePermission to apply to the set of code ids */ - - instantiatePermission?: AccessConfig; -} -/** - * AccessConfigUpdate contains the code id and the access config to be - * applied. - */ - -export interface AccessConfigUpdateSDKType { - code_id: Long; - instantiate_permission?: AccessConfigSDKType; -} -/** - * UpdateInstantiateConfigProposal gov proposal content type to update - * instantiate config to a set of code ids. - */ - -export interface UpdateInstantiateConfigProposal { - /** Title is a short summary */ - title: string; - /** Description is a human readable text */ - - description: string; - /** - * AccessConfigUpdate contains the list of code ids and the access config - * to be applied. - */ - - accessConfigUpdates: AccessConfigUpdate[]; -} -/** - * UpdateInstantiateConfigProposal gov proposal content type to update - * instantiate config to a set of code ids. - */ - -export interface UpdateInstantiateConfigProposalSDKType { - title: string; - description: string; - access_config_updates: AccessConfigUpdateSDKType[]; -} -/** - * StoreAndInstantiateContractProposal gov proposal content type to store - * and instantiate the contract. - */ - -export interface StoreAndInstantiateContractProposal { - /** Title is a short summary */ - title: string; - /** Description is a human readable text */ - - description: string; - /** RunAs is the address that is passed to the contract's environment as sender */ - - runAs: string; - /** WASMByteCode can be raw or gzip compressed */ - - wasmByteCode: Uint8Array; - /** InstantiatePermission to apply on contract creation, optional */ - - instantiatePermission?: AccessConfig; - /** UnpinCode code on upload, optional */ - - unpinCode: boolean; - /** Admin is an optional address that can execute migrations */ - - admin: string; - /** Label is optional metadata to be stored with a constract instance. */ - - label: string; - /** Msg json encoded message to be passed to the contract on instantiation */ - - msg: Uint8Array; - /** Funds coins that are transferred to the contract on instantiation */ - - funds: Coin[]; - /** Source is the URL where the code is hosted */ - - source: string; - /** - * Builder is the docker image used to build the code deterministically, used - * for smart contract verification - */ - - builder: string; - /** - * CodeHash is the SHA256 sum of the code outputted by builder, used for smart - * contract verification - */ - - codeHash: Uint8Array; -} -/** - * StoreAndInstantiateContractProposal gov proposal content type to store - * and instantiate the contract. - */ - -export interface StoreAndInstantiateContractProposalSDKType { - title: string; - description: string; - run_as: string; - wasm_byte_code: Uint8Array; - instantiate_permission?: AccessConfigSDKType; - unpin_code: boolean; - admin: string; - label: string; - msg: Uint8Array; - funds: CoinSDKType[]; - source: string; - builder: string; - code_hash: Uint8Array; -} - -function createBaseStoreCodeProposal(): StoreCodeProposal { - return { - title: "", - description: "", - runAs: "", - wasmByteCode: new Uint8Array(), - instantiatePermission: undefined, - unpinCode: false, - source: "", - builder: "", - codeHash: new Uint8Array() - }; -} - -export const StoreCodeProposal = { - encode(message: StoreCodeProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.title !== "") { - writer.uint32(10).string(message.title); - } - - if (message.description !== "") { - writer.uint32(18).string(message.description); - } - - if (message.runAs !== "") { - writer.uint32(26).string(message.runAs); - } - - if (message.wasmByteCode.length !== 0) { - writer.uint32(34).bytes(message.wasmByteCode); - } - - if (message.instantiatePermission !== undefined) { - AccessConfig.encode(message.instantiatePermission, writer.uint32(58).fork()).ldelim(); - } - - if (message.unpinCode === true) { - writer.uint32(64).bool(message.unpinCode); - } - - if (message.source !== "") { - writer.uint32(74).string(message.source); - } - - if (message.builder !== "") { - writer.uint32(82).string(message.builder); - } - - if (message.codeHash.length !== 0) { - writer.uint32(90).bytes(message.codeHash); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): StoreCodeProposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseStoreCodeProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.title = reader.string(); - break; - - case 2: - message.description = reader.string(); - break; - - case 3: - message.runAs = reader.string(); - break; - - case 4: - message.wasmByteCode = reader.bytes(); - break; - - case 7: - message.instantiatePermission = AccessConfig.decode(reader, reader.uint32()); - break; - - case 8: - message.unpinCode = reader.bool(); - break; - - case 9: - message.source = reader.string(); - break; - - case 10: - message.builder = reader.string(); - break; - - case 11: - message.codeHash = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): StoreCodeProposal { - const message = createBaseStoreCodeProposal(); - message.title = object.title ?? ""; - message.description = object.description ?? ""; - message.runAs = object.runAs ?? ""; - message.wasmByteCode = object.wasmByteCode ?? new Uint8Array(); - message.instantiatePermission = object.instantiatePermission !== undefined && object.instantiatePermission !== null ? AccessConfig.fromPartial(object.instantiatePermission) : undefined; - message.unpinCode = object.unpinCode ?? false; - message.source = object.source ?? ""; - message.builder = object.builder ?? ""; - message.codeHash = object.codeHash ?? new Uint8Array(); - return message; - } - -}; - -function createBaseInstantiateContractProposal(): InstantiateContractProposal { - return { - title: "", - description: "", - runAs: "", - admin: "", - codeId: Long.UZERO, - label: "", - msg: new Uint8Array(), - funds: [] - }; -} - -export const InstantiateContractProposal = { - encode(message: InstantiateContractProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.title !== "") { - writer.uint32(10).string(message.title); - } - - if (message.description !== "") { - writer.uint32(18).string(message.description); - } - - if (message.runAs !== "") { - writer.uint32(26).string(message.runAs); - } - - if (message.admin !== "") { - writer.uint32(34).string(message.admin); - } - - if (!message.codeId.isZero()) { - writer.uint32(40).uint64(message.codeId); - } - - if (message.label !== "") { - writer.uint32(50).string(message.label); - } - - if (message.msg.length !== 0) { - writer.uint32(58).bytes(message.msg); - } - - for (const v of message.funds) { - Coin.encode(v!, writer.uint32(66).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): InstantiateContractProposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseInstantiateContractProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.title = reader.string(); - break; - - case 2: - message.description = reader.string(); - break; - - case 3: - message.runAs = reader.string(); - break; - - case 4: - message.admin = reader.string(); - break; - - case 5: - message.codeId = (reader.uint64() as Long); - break; - - case 6: - message.label = reader.string(); - break; - - case 7: - message.msg = reader.bytes(); - break; - - case 8: - message.funds.push(Coin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): InstantiateContractProposal { - const message = createBaseInstantiateContractProposal(); - message.title = object.title ?? ""; - message.description = object.description ?? ""; - message.runAs = object.runAs ?? ""; - message.admin = object.admin ?? ""; - message.codeId = object.codeId !== undefined && object.codeId !== null ? Long.fromValue(object.codeId) : Long.UZERO; - message.label = object.label ?? ""; - message.msg = object.msg ?? new Uint8Array(); - message.funds = object.funds?.map(e => Coin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseInstantiateContract2Proposal(): InstantiateContract2Proposal { - return { - title: "", - description: "", - runAs: "", - admin: "", - codeId: Long.UZERO, - label: "", - msg: new Uint8Array(), - funds: [], - salt: new Uint8Array(), - fixMsg: false - }; -} - -export const InstantiateContract2Proposal = { - encode(message: InstantiateContract2Proposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.title !== "") { - writer.uint32(10).string(message.title); - } - - if (message.description !== "") { - writer.uint32(18).string(message.description); - } - - if (message.runAs !== "") { - writer.uint32(26).string(message.runAs); - } - - if (message.admin !== "") { - writer.uint32(34).string(message.admin); - } - - if (!message.codeId.isZero()) { - writer.uint32(40).uint64(message.codeId); - } - - if (message.label !== "") { - writer.uint32(50).string(message.label); - } - - if (message.msg.length !== 0) { - writer.uint32(58).bytes(message.msg); - } - - for (const v of message.funds) { - Coin.encode(v!, writer.uint32(66).fork()).ldelim(); - } - - if (message.salt.length !== 0) { - writer.uint32(74).bytes(message.salt); - } - - if (message.fixMsg === true) { - writer.uint32(80).bool(message.fixMsg); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): InstantiateContract2Proposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseInstantiateContract2Proposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.title = reader.string(); - break; - - case 2: - message.description = reader.string(); - break; - - case 3: - message.runAs = reader.string(); - break; - - case 4: - message.admin = reader.string(); - break; - - case 5: - message.codeId = (reader.uint64() as Long); - break; - - case 6: - message.label = reader.string(); - break; - - case 7: - message.msg = reader.bytes(); - break; - - case 8: - message.funds.push(Coin.decode(reader, reader.uint32())); - break; - - case 9: - message.salt = reader.bytes(); - break; - - case 10: - message.fixMsg = reader.bool(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): InstantiateContract2Proposal { - const message = createBaseInstantiateContract2Proposal(); - message.title = object.title ?? ""; - message.description = object.description ?? ""; - message.runAs = object.runAs ?? ""; - message.admin = object.admin ?? ""; - message.codeId = object.codeId !== undefined && object.codeId !== null ? Long.fromValue(object.codeId) : Long.UZERO; - message.label = object.label ?? ""; - message.msg = object.msg ?? new Uint8Array(); - message.funds = object.funds?.map(e => Coin.fromPartial(e)) || []; - message.salt = object.salt ?? new Uint8Array(); - message.fixMsg = object.fixMsg ?? false; - return message; - } - -}; - -function createBaseMigrateContractProposal(): MigrateContractProposal { - return { - title: "", - description: "", - contract: "", - codeId: Long.UZERO, - msg: new Uint8Array() - }; -} - -export const MigrateContractProposal = { - encode(message: MigrateContractProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.title !== "") { - writer.uint32(10).string(message.title); - } - - if (message.description !== "") { - writer.uint32(18).string(message.description); - } - - if (message.contract !== "") { - writer.uint32(34).string(message.contract); - } - - if (!message.codeId.isZero()) { - writer.uint32(40).uint64(message.codeId); - } - - if (message.msg.length !== 0) { - writer.uint32(50).bytes(message.msg); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MigrateContractProposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMigrateContractProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.title = reader.string(); - break; - - case 2: - message.description = reader.string(); - break; - - case 4: - message.contract = reader.string(); - break; - - case 5: - message.codeId = (reader.uint64() as Long); - break; - - case 6: - message.msg = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MigrateContractProposal { - const message = createBaseMigrateContractProposal(); - message.title = object.title ?? ""; - message.description = object.description ?? ""; - message.contract = object.contract ?? ""; - message.codeId = object.codeId !== undefined && object.codeId !== null ? Long.fromValue(object.codeId) : Long.UZERO; - message.msg = object.msg ?? new Uint8Array(); - return message; - } - -}; - -function createBaseSudoContractProposal(): SudoContractProposal { - return { - title: "", - description: "", - contract: "", - msg: new Uint8Array() - }; -} - -export const SudoContractProposal = { - encode(message: SudoContractProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.title !== "") { - writer.uint32(10).string(message.title); - } - - if (message.description !== "") { - writer.uint32(18).string(message.description); - } - - if (message.contract !== "") { - writer.uint32(26).string(message.contract); - } - - if (message.msg.length !== 0) { - writer.uint32(34).bytes(message.msg); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SudoContractProposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSudoContractProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.title = reader.string(); - break; - - case 2: - message.description = reader.string(); - break; - - case 3: - message.contract = reader.string(); - break; - - case 4: - message.msg = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SudoContractProposal { - const message = createBaseSudoContractProposal(); - message.title = object.title ?? ""; - message.description = object.description ?? ""; - message.contract = object.contract ?? ""; - message.msg = object.msg ?? new Uint8Array(); - return message; - } - -}; - -function createBaseExecuteContractProposal(): ExecuteContractProposal { - return { - title: "", - description: "", - runAs: "", - contract: "", - msg: new Uint8Array(), - funds: [] - }; -} - -export const ExecuteContractProposal = { - encode(message: ExecuteContractProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.title !== "") { - writer.uint32(10).string(message.title); - } - - if (message.description !== "") { - writer.uint32(18).string(message.description); - } - - if (message.runAs !== "") { - writer.uint32(26).string(message.runAs); - } - - if (message.contract !== "") { - writer.uint32(34).string(message.contract); - } - - if (message.msg.length !== 0) { - writer.uint32(42).bytes(message.msg); - } - - for (const v of message.funds) { - Coin.encode(v!, writer.uint32(50).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ExecuteContractProposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseExecuteContractProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.title = reader.string(); - break; - - case 2: - message.description = reader.string(); - break; - - case 3: - message.runAs = reader.string(); - break; - - case 4: - message.contract = reader.string(); - break; - - case 5: - message.msg = reader.bytes(); - break; - - case 6: - message.funds.push(Coin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ExecuteContractProposal { - const message = createBaseExecuteContractProposal(); - message.title = object.title ?? ""; - message.description = object.description ?? ""; - message.runAs = object.runAs ?? ""; - message.contract = object.contract ?? ""; - message.msg = object.msg ?? new Uint8Array(); - message.funds = object.funds?.map(e => Coin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseUpdateAdminProposal(): UpdateAdminProposal { - return { - title: "", - description: "", - newAdmin: "", - contract: "" - }; -} - -export const UpdateAdminProposal = { - encode(message: UpdateAdminProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.title !== "") { - writer.uint32(10).string(message.title); - } - - if (message.description !== "") { - writer.uint32(18).string(message.description); - } - - if (message.newAdmin !== "") { - writer.uint32(26).string(message.newAdmin); - } - - if (message.contract !== "") { - writer.uint32(34).string(message.contract); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): UpdateAdminProposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseUpdateAdminProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.title = reader.string(); - break; - - case 2: - message.description = reader.string(); - break; - - case 3: - message.newAdmin = reader.string(); - break; - - case 4: - message.contract = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): UpdateAdminProposal { - const message = createBaseUpdateAdminProposal(); - message.title = object.title ?? ""; - message.description = object.description ?? ""; - message.newAdmin = object.newAdmin ?? ""; - message.contract = object.contract ?? ""; - return message; - } - -}; - -function createBaseClearAdminProposal(): ClearAdminProposal { - return { - title: "", - description: "", - contract: "" - }; -} - -export const ClearAdminProposal = { - encode(message: ClearAdminProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.title !== "") { - writer.uint32(10).string(message.title); - } - - if (message.description !== "") { - writer.uint32(18).string(message.description); - } - - if (message.contract !== "") { - writer.uint32(26).string(message.contract); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ClearAdminProposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseClearAdminProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.title = reader.string(); - break; - - case 2: - message.description = reader.string(); - break; - - case 3: - message.contract = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ClearAdminProposal { - const message = createBaseClearAdminProposal(); - message.title = object.title ?? ""; - message.description = object.description ?? ""; - message.contract = object.contract ?? ""; - return message; - } - -}; - -function createBasePinCodesProposal(): PinCodesProposal { - return { - title: "", - description: "", - codeIds: [] - }; -} - -export const PinCodesProposal = { - encode(message: PinCodesProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.title !== "") { - writer.uint32(10).string(message.title); - } - - if (message.description !== "") { - writer.uint32(18).string(message.description); - } - - writer.uint32(26).fork(); - - for (const v of message.codeIds) { - writer.uint64(v); - } - - writer.ldelim(); - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PinCodesProposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePinCodesProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.title = reader.string(); - break; - - case 2: - message.description = reader.string(); - break; - - case 3: - if ((tag & 7) === 2) { - const end2 = reader.uint32() + reader.pos; - - while (reader.pos < end2) { - message.codeIds.push((reader.uint64() as Long)); - } - } else { - message.codeIds.push((reader.uint64() as Long)); - } - - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PinCodesProposal { - const message = createBasePinCodesProposal(); - message.title = object.title ?? ""; - message.description = object.description ?? ""; - message.codeIds = object.codeIds?.map(e => Long.fromValue(e)) || []; - return message; - } - -}; - -function createBaseUnpinCodesProposal(): UnpinCodesProposal { - return { - title: "", - description: "", - codeIds: [] - }; -} - -export const UnpinCodesProposal = { - encode(message: UnpinCodesProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.title !== "") { - writer.uint32(10).string(message.title); - } - - if (message.description !== "") { - writer.uint32(18).string(message.description); - } - - writer.uint32(26).fork(); - - for (const v of message.codeIds) { - writer.uint64(v); - } - - writer.ldelim(); - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): UnpinCodesProposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseUnpinCodesProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.title = reader.string(); - break; - - case 2: - message.description = reader.string(); - break; - - case 3: - if ((tag & 7) === 2) { - const end2 = reader.uint32() + reader.pos; - - while (reader.pos < end2) { - message.codeIds.push((reader.uint64() as Long)); - } - } else { - message.codeIds.push((reader.uint64() as Long)); - } - - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): UnpinCodesProposal { - const message = createBaseUnpinCodesProposal(); - message.title = object.title ?? ""; - message.description = object.description ?? ""; - message.codeIds = object.codeIds?.map(e => Long.fromValue(e)) || []; - return message; - } - -}; - -function createBaseAccessConfigUpdate(): AccessConfigUpdate { - return { - codeId: Long.UZERO, - instantiatePermission: undefined - }; -} - -export const AccessConfigUpdate = { - encode(message: AccessConfigUpdate, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.codeId.isZero()) { - writer.uint32(8).uint64(message.codeId); - } - - if (message.instantiatePermission !== undefined) { - AccessConfig.encode(message.instantiatePermission, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): AccessConfigUpdate { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAccessConfigUpdate(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.codeId = (reader.uint64() as Long); - break; - - case 2: - message.instantiatePermission = AccessConfig.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): AccessConfigUpdate { - const message = createBaseAccessConfigUpdate(); - message.codeId = object.codeId !== undefined && object.codeId !== null ? Long.fromValue(object.codeId) : Long.UZERO; - message.instantiatePermission = object.instantiatePermission !== undefined && object.instantiatePermission !== null ? AccessConfig.fromPartial(object.instantiatePermission) : undefined; - return message; - } - -}; - -function createBaseUpdateInstantiateConfigProposal(): UpdateInstantiateConfigProposal { - return { - title: "", - description: "", - accessConfigUpdates: [] - }; -} - -export const UpdateInstantiateConfigProposal = { - encode(message: UpdateInstantiateConfigProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.title !== "") { - writer.uint32(10).string(message.title); - } - - if (message.description !== "") { - writer.uint32(18).string(message.description); - } - - for (const v of message.accessConfigUpdates) { - AccessConfigUpdate.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): UpdateInstantiateConfigProposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseUpdateInstantiateConfigProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.title = reader.string(); - break; - - case 2: - message.description = reader.string(); - break; - - case 3: - message.accessConfigUpdates.push(AccessConfigUpdate.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): UpdateInstantiateConfigProposal { - const message = createBaseUpdateInstantiateConfigProposal(); - message.title = object.title ?? ""; - message.description = object.description ?? ""; - message.accessConfigUpdates = object.accessConfigUpdates?.map(e => AccessConfigUpdate.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseStoreAndInstantiateContractProposal(): StoreAndInstantiateContractProposal { - return { - title: "", - description: "", - runAs: "", - wasmByteCode: new Uint8Array(), - instantiatePermission: undefined, - unpinCode: false, - admin: "", - label: "", - msg: new Uint8Array(), - funds: [], - source: "", - builder: "", - codeHash: new Uint8Array() - }; -} - -export const StoreAndInstantiateContractProposal = { - encode(message: StoreAndInstantiateContractProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.title !== "") { - writer.uint32(10).string(message.title); - } - - if (message.description !== "") { - writer.uint32(18).string(message.description); - } - - if (message.runAs !== "") { - writer.uint32(26).string(message.runAs); - } - - if (message.wasmByteCode.length !== 0) { - writer.uint32(34).bytes(message.wasmByteCode); - } - - if (message.instantiatePermission !== undefined) { - AccessConfig.encode(message.instantiatePermission, writer.uint32(42).fork()).ldelim(); - } - - if (message.unpinCode === true) { - writer.uint32(48).bool(message.unpinCode); - } - - if (message.admin !== "") { - writer.uint32(58).string(message.admin); - } - - if (message.label !== "") { - writer.uint32(66).string(message.label); - } - - if (message.msg.length !== 0) { - writer.uint32(74).bytes(message.msg); - } - - for (const v of message.funds) { - Coin.encode(v!, writer.uint32(82).fork()).ldelim(); - } - - if (message.source !== "") { - writer.uint32(90).string(message.source); - } - - if (message.builder !== "") { - writer.uint32(98).string(message.builder); - } - - if (message.codeHash.length !== 0) { - writer.uint32(106).bytes(message.codeHash); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): StoreAndInstantiateContractProposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseStoreAndInstantiateContractProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.title = reader.string(); - break; - - case 2: - message.description = reader.string(); - break; - - case 3: - message.runAs = reader.string(); - break; - - case 4: - message.wasmByteCode = reader.bytes(); - break; - - case 5: - message.instantiatePermission = AccessConfig.decode(reader, reader.uint32()); - break; - - case 6: - message.unpinCode = reader.bool(); - break; - - case 7: - message.admin = reader.string(); - break; - - case 8: - message.label = reader.string(); - break; - - case 9: - message.msg = reader.bytes(); - break; - - case 10: - message.funds.push(Coin.decode(reader, reader.uint32())); - break; - - case 11: - message.source = reader.string(); - break; - - case 12: - message.builder = reader.string(); - break; - - case 13: - message.codeHash = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): StoreAndInstantiateContractProposal { - const message = createBaseStoreAndInstantiateContractProposal(); - message.title = object.title ?? ""; - message.description = object.description ?? ""; - message.runAs = object.runAs ?? ""; - message.wasmByteCode = object.wasmByteCode ?? new Uint8Array(); - message.instantiatePermission = object.instantiatePermission !== undefined && object.instantiatePermission !== null ? AccessConfig.fromPartial(object.instantiatePermission) : undefined; - message.unpinCode = object.unpinCode ?? false; - message.admin = object.admin ?? ""; - message.label = object.label ?? ""; - message.msg = object.msg ?? new Uint8Array(); - message.funds = object.funds?.map(e => Coin.fromPartial(e)) || []; - message.source = object.source ?? ""; - message.builder = object.builder ?? ""; - message.codeHash = object.codeHash ?? new Uint8Array(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmwasm/wasm/v1/query.lcd.ts b/packages/codegen/src/cosmwasm/wasm/v1/query.lcd.ts deleted file mode 100644 index 8c8ac583..00000000 --- a/packages/codegen/src/cosmwasm/wasm/v1/query.lcd.ts +++ /dev/null @@ -1,155 +0,0 @@ -import { setPaginationParams } from "../../../helpers"; -import { LCDClient } from "@osmonauts/lcd"; -import { QueryContractInfoRequest, QueryContractInfoResponseSDKType, QueryContractHistoryRequest, QueryContractHistoryResponseSDKType, QueryContractsByCodeRequest, QueryContractsByCodeResponseSDKType, QueryAllContractStateRequest, QueryAllContractStateResponseSDKType, QueryRawContractStateRequest, QueryRawContractStateResponseSDKType, QuerySmartContractStateRequest, QuerySmartContractStateResponseSDKType, QueryCodeRequest, QueryCodeResponseSDKType, QueryCodesRequest, QueryCodesResponseSDKType, QueryPinnedCodesRequest, QueryPinnedCodesResponseSDKType, QueryParamsRequest, QueryParamsResponseSDKType, QueryContractsByCreatorRequest, QueryContractsByCreatorResponseSDKType } from "./query"; -export class LCDQueryClient { - req: LCDClient; - - constructor({ - requestClient - }: { - requestClient: LCDClient; - }) { - this.req = requestClient; - this.contractInfo = this.contractInfo.bind(this); - this.contractHistory = this.contractHistory.bind(this); - this.contractsByCode = this.contractsByCode.bind(this); - this.allContractState = this.allContractState.bind(this); - this.rawContractState = this.rawContractState.bind(this); - this.smartContractState = this.smartContractState.bind(this); - this.code = this.code.bind(this); - this.codes = this.codes.bind(this); - this.pinnedCodes = this.pinnedCodes.bind(this); - this.params = this.params.bind(this); - this.contractsByCreator = this.contractsByCreator.bind(this); - } - /* ContractInfo gets the contract meta data */ - - - async contractInfo(params: QueryContractInfoRequest): Promise { - const endpoint = `cosmwasm/wasm/v1/contract/${params.address}`; - return await this.req.get(endpoint); - } - /* ContractHistory gets the contract code history */ - - - async contractHistory(params: QueryContractHistoryRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmwasm/wasm/v1/contract/${params.address}/history`; - return await this.req.get(endpoint, options); - } - /* ContractsByCode lists all smart contracts for a code id */ - - - async contractsByCode(params: QueryContractsByCodeRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmwasm/wasm/v1/code/${params.codeId}/contracts`; - return await this.req.get(endpoint, options); - } - /* AllContractState gets all raw store data for a single contract */ - - - async allContractState(params: QueryAllContractStateRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmwasm/wasm/v1/contract/${params.address}/state`; - return await this.req.get(endpoint, options); - } - /* RawContractState gets single key from the raw store data of a contract */ - - - async rawContractState(params: QueryRawContractStateRequest): Promise { - const endpoint = `cosmwasm/wasm/v1/contract/${params.address}/raw/${params.queryData}`; - return await this.req.get(endpoint); - } - /* SmartContractState get smart query result from the contract */ - - - async smartContractState(params: QuerySmartContractStateRequest): Promise { - const endpoint = `cosmwasm/wasm/v1/contract/${params.address}/smart/${params.queryData}`; - return await this.req.get(endpoint); - } - /* Code gets the binary code and metadata for a singe wasm code */ - - - async code(params: QueryCodeRequest): Promise { - const endpoint = `cosmwasm/wasm/v1/code/${params.codeId}`; - return await this.req.get(endpoint); - } - /* Codes gets the metadata for all stored wasm codes */ - - - async codes(params: QueryCodesRequest = { - pagination: undefined - }): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmwasm/wasm/v1/code`; - return await this.req.get(endpoint, options); - } - /* PinnedCodes gets the pinned code ids */ - - - async pinnedCodes(params: QueryPinnedCodesRequest = { - pagination: undefined - }): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmwasm/wasm/v1/codes/pinned`; - return await this.req.get(endpoint, options); - } - /* Params gets the module params */ - - - async params(_params: QueryParamsRequest = {}): Promise { - const endpoint = `cosmwasm/wasm/v1/codes/params`; - return await this.req.get(endpoint); - } - /* ContractsByCreator gets the contracts by creator */ - - - async contractsByCreator(params: QueryContractsByCreatorRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `cosmwasm/wasm/v1/contracts/creator/${params.creatorAddress}`; - return await this.req.get(endpoint, options); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmwasm/wasm/v1/query.rpc.Query.ts b/packages/codegen/src/cosmwasm/wasm/v1/query.rpc.Query.ts deleted file mode 100644 index 2ba1edee..00000000 --- a/packages/codegen/src/cosmwasm/wasm/v1/query.rpc.Query.ts +++ /dev/null @@ -1,179 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { QueryContractInfoRequest, QueryContractInfoResponse, QueryContractHistoryRequest, QueryContractHistoryResponse, QueryContractsByCodeRequest, QueryContractsByCodeResponse, QueryAllContractStateRequest, QueryAllContractStateResponse, QueryRawContractStateRequest, QueryRawContractStateResponse, QuerySmartContractStateRequest, QuerySmartContractStateResponse, QueryCodeRequest, QueryCodeResponse, QueryCodesRequest, QueryCodesResponse, QueryPinnedCodesRequest, QueryPinnedCodesResponse, QueryParamsRequest, QueryParamsResponse, QueryContractsByCreatorRequest, QueryContractsByCreatorResponse } from "./query"; -/** Query provides defines the gRPC querier service */ - -export interface Query { - /** ContractInfo gets the contract meta data */ - contractInfo(request: QueryContractInfoRequest): Promise; - /** ContractHistory gets the contract code history */ - - contractHistory(request: QueryContractHistoryRequest): Promise; - /** ContractsByCode lists all smart contracts for a code id */ - - contractsByCode(request: QueryContractsByCodeRequest): Promise; - /** AllContractState gets all raw store data for a single contract */ - - allContractState(request: QueryAllContractStateRequest): Promise; - /** RawContractState gets single key from the raw store data of a contract */ - - rawContractState(request: QueryRawContractStateRequest): Promise; - /** SmartContractState get smart query result from the contract */ - - smartContractState(request: QuerySmartContractStateRequest): Promise; - /** Code gets the binary code and metadata for a singe wasm code */ - - code(request: QueryCodeRequest): Promise; - /** Codes gets the metadata for all stored wasm codes */ - - codes(request?: QueryCodesRequest): Promise; - /** PinnedCodes gets the pinned code ids */ - - pinnedCodes(request?: QueryPinnedCodesRequest): Promise; - /** Params gets the module params */ - - params(request?: QueryParamsRequest): Promise; - /** ContractsByCreator gets the contracts by creator */ - - contractsByCreator(request: QueryContractsByCreatorRequest): Promise; -} -export class QueryClientImpl implements Query { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.contractInfo = this.contractInfo.bind(this); - this.contractHistory = this.contractHistory.bind(this); - this.contractsByCode = this.contractsByCode.bind(this); - this.allContractState = this.allContractState.bind(this); - this.rawContractState = this.rawContractState.bind(this); - this.smartContractState = this.smartContractState.bind(this); - this.code = this.code.bind(this); - this.codes = this.codes.bind(this); - this.pinnedCodes = this.pinnedCodes.bind(this); - this.params = this.params.bind(this); - this.contractsByCreator = this.contractsByCreator.bind(this); - } - - contractInfo(request: QueryContractInfoRequest): Promise { - const data = QueryContractInfoRequest.encode(request).finish(); - const promise = this.rpc.request("cosmwasm.wasm.v1.Query", "ContractInfo", data); - return promise.then(data => QueryContractInfoResponse.decode(new _m0.Reader(data))); - } - - contractHistory(request: QueryContractHistoryRequest): Promise { - const data = QueryContractHistoryRequest.encode(request).finish(); - const promise = this.rpc.request("cosmwasm.wasm.v1.Query", "ContractHistory", data); - return promise.then(data => QueryContractHistoryResponse.decode(new _m0.Reader(data))); - } - - contractsByCode(request: QueryContractsByCodeRequest): Promise { - const data = QueryContractsByCodeRequest.encode(request).finish(); - const promise = this.rpc.request("cosmwasm.wasm.v1.Query", "ContractsByCode", data); - return promise.then(data => QueryContractsByCodeResponse.decode(new _m0.Reader(data))); - } - - allContractState(request: QueryAllContractStateRequest): Promise { - const data = QueryAllContractStateRequest.encode(request).finish(); - const promise = this.rpc.request("cosmwasm.wasm.v1.Query", "AllContractState", data); - return promise.then(data => QueryAllContractStateResponse.decode(new _m0.Reader(data))); - } - - rawContractState(request: QueryRawContractStateRequest): Promise { - const data = QueryRawContractStateRequest.encode(request).finish(); - const promise = this.rpc.request("cosmwasm.wasm.v1.Query", "RawContractState", data); - return promise.then(data => QueryRawContractStateResponse.decode(new _m0.Reader(data))); - } - - smartContractState(request: QuerySmartContractStateRequest): Promise { - const data = QuerySmartContractStateRequest.encode(request).finish(); - const promise = this.rpc.request("cosmwasm.wasm.v1.Query", "SmartContractState", data); - return promise.then(data => QuerySmartContractStateResponse.decode(new _m0.Reader(data))); - } - - code(request: QueryCodeRequest): Promise { - const data = QueryCodeRequest.encode(request).finish(); - const promise = this.rpc.request("cosmwasm.wasm.v1.Query", "Code", data); - return promise.then(data => QueryCodeResponse.decode(new _m0.Reader(data))); - } - - codes(request: QueryCodesRequest = { - pagination: undefined - }): Promise { - const data = QueryCodesRequest.encode(request).finish(); - const promise = this.rpc.request("cosmwasm.wasm.v1.Query", "Codes", data); - return promise.then(data => QueryCodesResponse.decode(new _m0.Reader(data))); - } - - pinnedCodes(request: QueryPinnedCodesRequest = { - pagination: undefined - }): Promise { - const data = QueryPinnedCodesRequest.encode(request).finish(); - const promise = this.rpc.request("cosmwasm.wasm.v1.Query", "PinnedCodes", data); - return promise.then(data => QueryPinnedCodesResponse.decode(new _m0.Reader(data))); - } - - params(request: QueryParamsRequest = {}): Promise { - const data = QueryParamsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmwasm.wasm.v1.Query", "Params", data); - return promise.then(data => QueryParamsResponse.decode(new _m0.Reader(data))); - } - - contractsByCreator(request: QueryContractsByCreatorRequest): Promise { - const data = QueryContractsByCreatorRequest.encode(request).finish(); - const promise = this.rpc.request("cosmwasm.wasm.v1.Query", "ContractsByCreator", data); - return promise.then(data => QueryContractsByCreatorResponse.decode(new _m0.Reader(data))); - } - -} -export const createRpcQueryExtension = (base: QueryClient) => { - const rpc = createProtobufRpcClient(base); - const queryService = new QueryClientImpl(rpc); - return { - contractInfo(request: QueryContractInfoRequest): Promise { - return queryService.contractInfo(request); - }, - - contractHistory(request: QueryContractHistoryRequest): Promise { - return queryService.contractHistory(request); - }, - - contractsByCode(request: QueryContractsByCodeRequest): Promise { - return queryService.contractsByCode(request); - }, - - allContractState(request: QueryAllContractStateRequest): Promise { - return queryService.allContractState(request); - }, - - rawContractState(request: QueryRawContractStateRequest): Promise { - return queryService.rawContractState(request); - }, - - smartContractState(request: QuerySmartContractStateRequest): Promise { - return queryService.smartContractState(request); - }, - - code(request: QueryCodeRequest): Promise { - return queryService.code(request); - }, - - codes(request?: QueryCodesRequest): Promise { - return queryService.codes(request); - }, - - pinnedCodes(request?: QueryPinnedCodesRequest): Promise { - return queryService.pinnedCodes(request); - }, - - params(request?: QueryParamsRequest): Promise { - return queryService.params(request); - }, - - contractsByCreator(request: QueryContractsByCreatorRequest): Promise { - return queryService.contractsByCreator(request); - } - - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmwasm/wasm/v1/query.ts b/packages/codegen/src/cosmwasm/wasm/v1/query.ts deleted file mode 100644 index a1fe5361..00000000 --- a/packages/codegen/src/cosmwasm/wasm/v1/query.ts +++ /dev/null @@ -1,1606 +0,0 @@ -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../../cosmos/base/query/v1beta1/pagination"; -import { ContractInfo, ContractInfoSDKType, ContractCodeHistoryEntry, ContractCodeHistoryEntrySDKType, Model, ModelSDKType, AccessConfig, AccessConfigSDKType, Params, ParamsSDKType } from "./types"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** - * QueryContractInfoRequest is the request type for the Query/ContractInfo RPC - * method - */ - -export interface QueryContractInfoRequest { - /** address is the address of the contract to query */ - address: string; -} -/** - * QueryContractInfoRequest is the request type for the Query/ContractInfo RPC - * method - */ - -export interface QueryContractInfoRequestSDKType { - address: string; -} -/** - * QueryContractInfoResponse is the response type for the Query/ContractInfo RPC - * method - */ - -export interface QueryContractInfoResponse { - /** address is the address of the contract */ - address: string; - contractInfo?: ContractInfo; -} -/** - * QueryContractInfoResponse is the response type for the Query/ContractInfo RPC - * method - */ - -export interface QueryContractInfoResponseSDKType { - address: string; - contract_info?: ContractInfoSDKType; -} -/** - * QueryContractHistoryRequest is the request type for the Query/ContractHistory - * RPC method - */ - -export interface QueryContractHistoryRequest { - /** address is the address of the contract to query */ - address: string; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** - * QueryContractHistoryRequest is the request type for the Query/ContractHistory - * RPC method - */ - -export interface QueryContractHistoryRequestSDKType { - address: string; - pagination?: PageRequestSDKType; -} -/** - * QueryContractHistoryResponse is the response type for the - * Query/ContractHistory RPC method - */ - -export interface QueryContractHistoryResponse { - entries: ContractCodeHistoryEntry[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** - * QueryContractHistoryResponse is the response type for the - * Query/ContractHistory RPC method - */ - -export interface QueryContractHistoryResponseSDKType { - entries: ContractCodeHistoryEntrySDKType[]; - pagination?: PageResponseSDKType; -} -/** - * QueryContractsByCodeRequest is the request type for the Query/ContractsByCode - * RPC method - */ - -export interface QueryContractsByCodeRequest { - /** - * grpc-gateway_out does not support Go style CodID - * pagination defines an optional pagination for the request. - */ - codeId: Long; - pagination?: PageRequest; -} -/** - * QueryContractsByCodeRequest is the request type for the Query/ContractsByCode - * RPC method - */ - -export interface QueryContractsByCodeRequestSDKType { - code_id: Long; - pagination?: PageRequestSDKType; -} -/** - * QueryContractsByCodeResponse is the response type for the - * Query/ContractsByCode RPC method - */ - -export interface QueryContractsByCodeResponse { - /** contracts are a set of contract addresses */ - contracts: string[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** - * QueryContractsByCodeResponse is the response type for the - * Query/ContractsByCode RPC method - */ - -export interface QueryContractsByCodeResponseSDKType { - contracts: string[]; - pagination?: PageResponseSDKType; -} -/** - * QueryAllContractStateRequest is the request type for the - * Query/AllContractState RPC method - */ - -export interface QueryAllContractStateRequest { - /** address is the address of the contract */ - address: string; - /** pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** - * QueryAllContractStateRequest is the request type for the - * Query/AllContractState RPC method - */ - -export interface QueryAllContractStateRequestSDKType { - address: string; - pagination?: PageRequestSDKType; -} -/** - * QueryAllContractStateResponse is the response type for the - * Query/AllContractState RPC method - */ - -export interface QueryAllContractStateResponse { - models: Model[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** - * QueryAllContractStateResponse is the response type for the - * Query/AllContractState RPC method - */ - -export interface QueryAllContractStateResponseSDKType { - models: ModelSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * QueryRawContractStateRequest is the request type for the - * Query/RawContractState RPC method - */ - -export interface QueryRawContractStateRequest { - /** address is the address of the contract */ - address: string; - queryData: Uint8Array; -} -/** - * QueryRawContractStateRequest is the request type for the - * Query/RawContractState RPC method - */ - -export interface QueryRawContractStateRequestSDKType { - address: string; - query_data: Uint8Array; -} -/** - * QueryRawContractStateResponse is the response type for the - * Query/RawContractState RPC method - */ - -export interface QueryRawContractStateResponse { - /** Data contains the raw store data */ - data: Uint8Array; -} -/** - * QueryRawContractStateResponse is the response type for the - * Query/RawContractState RPC method - */ - -export interface QueryRawContractStateResponseSDKType { - data: Uint8Array; -} -/** - * QuerySmartContractStateRequest is the request type for the - * Query/SmartContractState RPC method - */ - -export interface QuerySmartContractStateRequest { - /** address is the address of the contract */ - address: string; - /** QueryData contains the query data passed to the contract */ - - queryData: Uint8Array; -} -/** - * QuerySmartContractStateRequest is the request type for the - * Query/SmartContractState RPC method - */ - -export interface QuerySmartContractStateRequestSDKType { - address: string; - query_data: Uint8Array; -} -/** - * QuerySmartContractStateResponse is the response type for the - * Query/SmartContractState RPC method - */ - -export interface QuerySmartContractStateResponse { - /** Data contains the json data returned from the smart contract */ - data: Uint8Array; -} -/** - * QuerySmartContractStateResponse is the response type for the - * Query/SmartContractState RPC method - */ - -export interface QuerySmartContractStateResponseSDKType { - data: Uint8Array; -} -/** QueryCodeRequest is the request type for the Query/Code RPC method */ - -export interface QueryCodeRequest { - /** grpc-gateway_out does not support Go style CodID */ - codeId: Long; -} -/** QueryCodeRequest is the request type for the Query/Code RPC method */ - -export interface QueryCodeRequestSDKType { - code_id: Long; -} -/** CodeInfoResponse contains code meta data from CodeInfo */ - -export interface CodeInfoResponse { - codeId: Long; - creator: string; - dataHash: Uint8Array; - instantiatePermission?: AccessConfig; -} -/** CodeInfoResponse contains code meta data from CodeInfo */ - -export interface CodeInfoResponseSDKType { - code_id: Long; - creator: string; - data_hash: Uint8Array; - instantiate_permission?: AccessConfigSDKType; -} -/** QueryCodeResponse is the response type for the Query/Code RPC method */ - -export interface QueryCodeResponse { - codeInfo?: CodeInfoResponse; - data: Uint8Array; -} -/** QueryCodeResponse is the response type for the Query/Code RPC method */ - -export interface QueryCodeResponseSDKType { - code_info?: CodeInfoResponseSDKType; - data: Uint8Array; -} -/** QueryCodesRequest is the request type for the Query/Codes RPC method */ - -export interface QueryCodesRequest { - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** QueryCodesRequest is the request type for the Query/Codes RPC method */ - -export interface QueryCodesRequestSDKType { - pagination?: PageRequestSDKType; -} -/** QueryCodesResponse is the response type for the Query/Codes RPC method */ - -export interface QueryCodesResponse { - codeInfos: CodeInfoResponse[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** QueryCodesResponse is the response type for the Query/Codes RPC method */ - -export interface QueryCodesResponseSDKType { - code_infos: CodeInfoResponseSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * QueryPinnedCodesRequest is the request type for the Query/PinnedCodes - * RPC method - */ - -export interface QueryPinnedCodesRequest { - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** - * QueryPinnedCodesRequest is the request type for the Query/PinnedCodes - * RPC method - */ - -export interface QueryPinnedCodesRequestSDKType { - pagination?: PageRequestSDKType; -} -/** - * QueryPinnedCodesResponse is the response type for the - * Query/PinnedCodes RPC method - */ - -export interface QueryPinnedCodesResponse { - codeIds: Long[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** - * QueryPinnedCodesResponse is the response type for the - * Query/PinnedCodes RPC method - */ - -export interface QueryPinnedCodesResponseSDKType { - code_ids: Long[]; - pagination?: PageResponseSDKType; -} -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ - -export interface QueryParamsRequest {} -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ - -export interface QueryParamsRequestSDKType {} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ - -export interface QueryParamsResponse { - /** params defines the parameters of the module. */ - params?: Params; -} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ - -export interface QueryParamsResponseSDKType { - params?: ParamsSDKType; -} -/** - * QueryContractsByCreatorRequest is the request type for the - * Query/ContractsByCreator RPC method. - */ - -export interface QueryContractsByCreatorRequest { - /** CreatorAddress is the address of contract creator */ - creatorAddress: string; - /** Pagination defines an optional pagination for the request. */ - - pagination?: PageRequest; -} -/** - * QueryContractsByCreatorRequest is the request type for the - * Query/ContractsByCreator RPC method. - */ - -export interface QueryContractsByCreatorRequestSDKType { - creator_address: string; - pagination?: PageRequestSDKType; -} -/** - * QueryContractsByCreatorResponse is the response type for the - * Query/ContractsByCreator RPC method. - */ - -export interface QueryContractsByCreatorResponse { - /** ContractAddresses result set */ - contractAddresses: string[]; - /** Pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** - * QueryContractsByCreatorResponse is the response type for the - * Query/ContractsByCreator RPC method. - */ - -export interface QueryContractsByCreatorResponseSDKType { - contract_addresses: string[]; - pagination?: PageResponseSDKType; -} - -function createBaseQueryContractInfoRequest(): QueryContractInfoRequest { - return { - address: "" - }; -} - -export const QueryContractInfoRequest = { - encode(message: QueryContractInfoRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryContractInfoRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryContractInfoRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryContractInfoRequest { - const message = createBaseQueryContractInfoRequest(); - message.address = object.address ?? ""; - return message; - } - -}; - -function createBaseQueryContractInfoResponse(): QueryContractInfoResponse { - return { - address: "", - contractInfo: undefined - }; -} - -export const QueryContractInfoResponse = { - encode(message: QueryContractInfoResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - if (message.contractInfo !== undefined) { - ContractInfo.encode(message.contractInfo, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryContractInfoResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryContractInfoResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.contractInfo = ContractInfo.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryContractInfoResponse { - const message = createBaseQueryContractInfoResponse(); - message.address = object.address ?? ""; - message.contractInfo = object.contractInfo !== undefined && object.contractInfo !== null ? ContractInfo.fromPartial(object.contractInfo) : undefined; - return message; - } - -}; - -function createBaseQueryContractHistoryRequest(): QueryContractHistoryRequest { - return { - address: "", - pagination: undefined - }; -} - -export const QueryContractHistoryRequest = { - encode(message: QueryContractHistoryRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryContractHistoryRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryContractHistoryRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryContractHistoryRequest { - const message = createBaseQueryContractHistoryRequest(); - message.address = object.address ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryContractHistoryResponse(): QueryContractHistoryResponse { - return { - entries: [], - pagination: undefined - }; -} - -export const QueryContractHistoryResponse = { - encode(message: QueryContractHistoryResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.entries) { - ContractCodeHistoryEntry.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryContractHistoryResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryContractHistoryResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.entries.push(ContractCodeHistoryEntry.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryContractHistoryResponse { - const message = createBaseQueryContractHistoryResponse(); - message.entries = object.entries?.map(e => ContractCodeHistoryEntry.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryContractsByCodeRequest(): QueryContractsByCodeRequest { - return { - codeId: Long.UZERO, - pagination: undefined - }; -} - -export const QueryContractsByCodeRequest = { - encode(message: QueryContractsByCodeRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.codeId.isZero()) { - writer.uint32(8).uint64(message.codeId); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryContractsByCodeRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryContractsByCodeRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.codeId = (reader.uint64() as Long); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryContractsByCodeRequest { - const message = createBaseQueryContractsByCodeRequest(); - message.codeId = object.codeId !== undefined && object.codeId !== null ? Long.fromValue(object.codeId) : Long.UZERO; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryContractsByCodeResponse(): QueryContractsByCodeResponse { - return { - contracts: [], - pagination: undefined - }; -} - -export const QueryContractsByCodeResponse = { - encode(message: QueryContractsByCodeResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.contracts) { - writer.uint32(10).string(v!); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryContractsByCodeResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryContractsByCodeResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.contracts.push(reader.string()); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryContractsByCodeResponse { - const message = createBaseQueryContractsByCodeResponse(); - message.contracts = object.contracts?.map(e => e) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryAllContractStateRequest(): QueryAllContractStateRequest { - return { - address: "", - pagination: undefined - }; -} - -export const QueryAllContractStateRequest = { - encode(message: QueryAllContractStateRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllContractStateRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllContractStateRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryAllContractStateRequest { - const message = createBaseQueryAllContractStateRequest(); - message.address = object.address ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryAllContractStateResponse(): QueryAllContractStateResponse { - return { - models: [], - pagination: undefined - }; -} - -export const QueryAllContractStateResponse = { - encode(message: QueryAllContractStateResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.models) { - Model.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllContractStateResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllContractStateResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.models.push(Model.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryAllContractStateResponse { - const message = createBaseQueryAllContractStateResponse(); - message.models = object.models?.map(e => Model.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryRawContractStateRequest(): QueryRawContractStateRequest { - return { - address: "", - queryData: new Uint8Array() - }; -} - -export const QueryRawContractStateRequest = { - encode(message: QueryRawContractStateRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - if (message.queryData.length !== 0) { - writer.uint32(18).bytes(message.queryData); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryRawContractStateRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryRawContractStateRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.queryData = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryRawContractStateRequest { - const message = createBaseQueryRawContractStateRequest(); - message.address = object.address ?? ""; - message.queryData = object.queryData ?? new Uint8Array(); - return message; - } - -}; - -function createBaseQueryRawContractStateResponse(): QueryRawContractStateResponse { - return { - data: new Uint8Array() - }; -} - -export const QueryRawContractStateResponse = { - encode(message: QueryRawContractStateResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.data.length !== 0) { - writer.uint32(10).bytes(message.data); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryRawContractStateResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryRawContractStateResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.data = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryRawContractStateResponse { - const message = createBaseQueryRawContractStateResponse(); - message.data = object.data ?? new Uint8Array(); - return message; - } - -}; - -function createBaseQuerySmartContractStateRequest(): QuerySmartContractStateRequest { - return { - address: "", - queryData: new Uint8Array() - }; -} - -export const QuerySmartContractStateRequest = { - encode(message: QuerySmartContractStateRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - if (message.queryData.length !== 0) { - writer.uint32(18).bytes(message.queryData); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySmartContractStateRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQuerySmartContractStateRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.queryData = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QuerySmartContractStateRequest { - const message = createBaseQuerySmartContractStateRequest(); - message.address = object.address ?? ""; - message.queryData = object.queryData ?? new Uint8Array(); - return message; - } - -}; - -function createBaseQuerySmartContractStateResponse(): QuerySmartContractStateResponse { - return { - data: new Uint8Array() - }; -} - -export const QuerySmartContractStateResponse = { - encode(message: QuerySmartContractStateResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.data.length !== 0) { - writer.uint32(10).bytes(message.data); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QuerySmartContractStateResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQuerySmartContractStateResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.data = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QuerySmartContractStateResponse { - const message = createBaseQuerySmartContractStateResponse(); - message.data = object.data ?? new Uint8Array(); - return message; - } - -}; - -function createBaseQueryCodeRequest(): QueryCodeRequest { - return { - codeId: Long.UZERO - }; -} - -export const QueryCodeRequest = { - encode(message: QueryCodeRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.codeId.isZero()) { - writer.uint32(8).uint64(message.codeId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryCodeRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryCodeRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.codeId = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryCodeRequest { - const message = createBaseQueryCodeRequest(); - message.codeId = object.codeId !== undefined && object.codeId !== null ? Long.fromValue(object.codeId) : Long.UZERO; - return message; - } - -}; - -function createBaseCodeInfoResponse(): CodeInfoResponse { - return { - codeId: Long.UZERO, - creator: "", - dataHash: new Uint8Array(), - instantiatePermission: undefined - }; -} - -export const CodeInfoResponse = { - encode(message: CodeInfoResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.codeId.isZero()) { - writer.uint32(8).uint64(message.codeId); - } - - if (message.creator !== "") { - writer.uint32(18).string(message.creator); - } - - if (message.dataHash.length !== 0) { - writer.uint32(26).bytes(message.dataHash); - } - - if (message.instantiatePermission !== undefined) { - AccessConfig.encode(message.instantiatePermission, writer.uint32(50).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): CodeInfoResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCodeInfoResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.codeId = (reader.uint64() as Long); - break; - - case 2: - message.creator = reader.string(); - break; - - case 3: - message.dataHash = reader.bytes(); - break; - - case 6: - message.instantiatePermission = AccessConfig.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): CodeInfoResponse { - const message = createBaseCodeInfoResponse(); - message.codeId = object.codeId !== undefined && object.codeId !== null ? Long.fromValue(object.codeId) : Long.UZERO; - message.creator = object.creator ?? ""; - message.dataHash = object.dataHash ?? new Uint8Array(); - message.instantiatePermission = object.instantiatePermission !== undefined && object.instantiatePermission !== null ? AccessConfig.fromPartial(object.instantiatePermission) : undefined; - return message; - } - -}; - -function createBaseQueryCodeResponse(): QueryCodeResponse { - return { - codeInfo: undefined, - data: new Uint8Array() - }; -} - -export const QueryCodeResponse = { - encode(message: QueryCodeResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.codeInfo !== undefined) { - CodeInfoResponse.encode(message.codeInfo, writer.uint32(10).fork()).ldelim(); - } - - if (message.data.length !== 0) { - writer.uint32(18).bytes(message.data); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryCodeResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryCodeResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.codeInfo = CodeInfoResponse.decode(reader, reader.uint32()); - break; - - case 2: - message.data = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryCodeResponse { - const message = createBaseQueryCodeResponse(); - message.codeInfo = object.codeInfo !== undefined && object.codeInfo !== null ? CodeInfoResponse.fromPartial(object.codeInfo) : undefined; - message.data = object.data ?? new Uint8Array(); - return message; - } - -}; - -function createBaseQueryCodesRequest(): QueryCodesRequest { - return { - pagination: undefined - }; -} - -export const QueryCodesRequest = { - encode(message: QueryCodesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryCodesRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryCodesRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryCodesRequest { - const message = createBaseQueryCodesRequest(); - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryCodesResponse(): QueryCodesResponse { - return { - codeInfos: [], - pagination: undefined - }; -} - -export const QueryCodesResponse = { - encode(message: QueryCodesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.codeInfos) { - CodeInfoResponse.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryCodesResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryCodesResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.codeInfos.push(CodeInfoResponse.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryCodesResponse { - const message = createBaseQueryCodesResponse(); - message.codeInfos = object.codeInfos?.map(e => CodeInfoResponse.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryPinnedCodesRequest(): QueryPinnedCodesRequest { - return { - pagination: undefined - }; -} - -export const QueryPinnedCodesRequest = { - encode(message: QueryPinnedCodesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPinnedCodesRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryPinnedCodesRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryPinnedCodesRequest { - const message = createBaseQueryPinnedCodesRequest(); - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryPinnedCodesResponse(): QueryPinnedCodesResponse { - return { - codeIds: [], - pagination: undefined - }; -} - -export const QueryPinnedCodesResponse = { - encode(message: QueryPinnedCodesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - writer.uint32(10).fork(); - - for (const v of message.codeIds) { - writer.uint64(v); - } - - writer.ldelim(); - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPinnedCodesResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryPinnedCodesResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - if ((tag & 7) === 2) { - const end2 = reader.uint32() + reader.pos; - - while (reader.pos < end2) { - message.codeIds.push((reader.uint64() as Long)); - } - } else { - message.codeIds.push((reader.uint64() as Long)); - } - - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryPinnedCodesResponse { - const message = createBaseQueryPinnedCodesResponse(); - message.codeIds = object.codeIds?.map(e => Long.fromValue(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryParamsRequest(): QueryParamsRequest { - return {}; -} - -export const QueryParamsRequest = { - encode(_: QueryParamsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): QueryParamsRequest { - const message = createBaseQueryParamsRequest(); - return message; - } - -}; - -function createBaseQueryParamsResponse(): QueryParamsResponse { - return { - params: undefined - }; -} - -export const QueryParamsResponse = { - encode(message: QueryParamsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.params !== undefined) { - Params.encode(message.params, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.params = Params.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryParamsResponse { - const message = createBaseQueryParamsResponse(); - message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined; - return message; - } - -}; - -function createBaseQueryContractsByCreatorRequest(): QueryContractsByCreatorRequest { - return { - creatorAddress: "", - pagination: undefined - }; -} - -export const QueryContractsByCreatorRequest = { - encode(message: QueryContractsByCreatorRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.creatorAddress !== "") { - writer.uint32(10).string(message.creatorAddress); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryContractsByCreatorRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryContractsByCreatorRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.creatorAddress = reader.string(); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryContractsByCreatorRequest { - const message = createBaseQueryContractsByCreatorRequest(); - message.creatorAddress = object.creatorAddress ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryContractsByCreatorResponse(): QueryContractsByCreatorResponse { - return { - contractAddresses: [], - pagination: undefined - }; -} - -export const QueryContractsByCreatorResponse = { - encode(message: QueryContractsByCreatorResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.contractAddresses) { - writer.uint32(10).string(v!); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryContractsByCreatorResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryContractsByCreatorResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.contractAddresses.push(reader.string()); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryContractsByCreatorResponse { - const message = createBaseQueryContractsByCreatorResponse(); - message.contractAddresses = object.contractAddresses?.map(e => e) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmwasm/wasm/v1/tx.rpc.msg.ts b/packages/codegen/src/cosmwasm/wasm/v1/tx.rpc.msg.ts deleted file mode 100644 index 4bd52e13..00000000 --- a/packages/codegen/src/cosmwasm/wasm/v1/tx.rpc.msg.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { Rpc } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { MsgStoreCode, MsgStoreCodeResponse, MsgInstantiateContract, MsgInstantiateContractResponse, MsgInstantiateContract2, MsgInstantiateContract2Response, MsgExecuteContract, MsgExecuteContractResponse, MsgMigrateContract, MsgMigrateContractResponse, MsgUpdateAdmin, MsgUpdateAdminResponse, MsgClearAdmin, MsgClearAdminResponse } from "./tx"; -/** Msg defines the wasm Msg service. */ - -export interface Msg { - /** StoreCode to submit Wasm code to the system */ - storeCode(request: MsgStoreCode): Promise; - /** - * InstantiateContract creates a new smart contract instance for the given - * code id. - */ - - instantiateContract(request: MsgInstantiateContract): Promise; - /** - * InstantiateContract2 creates a new smart contract instance for the given - * code id with a predictable address - */ - - instantiateContract2(request: MsgInstantiateContract2): Promise; - /** Execute submits the given message data to a smart contract */ - - executeContract(request: MsgExecuteContract): Promise; - /** Migrate runs a code upgrade/ downgrade for a smart contract */ - - migrateContract(request: MsgMigrateContract): Promise; - /** UpdateAdmin sets a new admin for a smart contract */ - - updateAdmin(request: MsgUpdateAdmin): Promise; - /** ClearAdmin removes any admin stored for a smart contract */ - - clearAdmin(request: MsgClearAdmin): Promise; -} -export class MsgClientImpl implements Msg { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.storeCode = this.storeCode.bind(this); - this.instantiateContract = this.instantiateContract.bind(this); - this.instantiateContract2 = this.instantiateContract2.bind(this); - this.executeContract = this.executeContract.bind(this); - this.migrateContract = this.migrateContract.bind(this); - this.updateAdmin = this.updateAdmin.bind(this); - this.clearAdmin = this.clearAdmin.bind(this); - } - - storeCode(request: MsgStoreCode): Promise { - const data = MsgStoreCode.encode(request).finish(); - const promise = this.rpc.request("cosmwasm.wasm.v1.Msg", "StoreCode", data); - return promise.then(data => MsgStoreCodeResponse.decode(new _m0.Reader(data))); - } - - instantiateContract(request: MsgInstantiateContract): Promise { - const data = MsgInstantiateContract.encode(request).finish(); - const promise = this.rpc.request("cosmwasm.wasm.v1.Msg", "InstantiateContract", data); - return promise.then(data => MsgInstantiateContractResponse.decode(new _m0.Reader(data))); - } - - instantiateContract2(request: MsgInstantiateContract2): Promise { - const data = MsgInstantiateContract2.encode(request).finish(); - const promise = this.rpc.request("cosmwasm.wasm.v1.Msg", "InstantiateContract2", data); - return promise.then(data => MsgInstantiateContract2Response.decode(new _m0.Reader(data))); - } - - executeContract(request: MsgExecuteContract): Promise { - const data = MsgExecuteContract.encode(request).finish(); - const promise = this.rpc.request("cosmwasm.wasm.v1.Msg", "ExecuteContract", data); - return promise.then(data => MsgExecuteContractResponse.decode(new _m0.Reader(data))); - } - - migrateContract(request: MsgMigrateContract): Promise { - const data = MsgMigrateContract.encode(request).finish(); - const promise = this.rpc.request("cosmwasm.wasm.v1.Msg", "MigrateContract", data); - return promise.then(data => MsgMigrateContractResponse.decode(new _m0.Reader(data))); - } - - updateAdmin(request: MsgUpdateAdmin): Promise { - const data = MsgUpdateAdmin.encode(request).finish(); - const promise = this.rpc.request("cosmwasm.wasm.v1.Msg", "UpdateAdmin", data); - return promise.then(data => MsgUpdateAdminResponse.decode(new _m0.Reader(data))); - } - - clearAdmin(request: MsgClearAdmin): Promise { - const data = MsgClearAdmin.encode(request).finish(); - const promise = this.rpc.request("cosmwasm.wasm.v1.Msg", "ClearAdmin", data); - return promise.then(data => MsgClearAdminResponse.decode(new _m0.Reader(data))); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/cosmwasm/wasm/v1/tx.ts b/packages/codegen/src/cosmwasm/wasm/v1/tx.ts deleted file mode 100644 index 6c10e880..00000000 --- a/packages/codegen/src/cosmwasm/wasm/v1/tx.ts +++ /dev/null @@ -1,1141 +0,0 @@ -import { AccessConfig, AccessConfigSDKType } from "./types"; -import { Coin, CoinSDKType } from "../../../cosmos/base/v1beta1/coin"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** MsgStoreCode submit Wasm code to the system */ - -export interface MsgStoreCode { - /** Sender is the that actor that signed the messages */ - sender: string; - /** WASMByteCode can be raw or gzip compressed */ - - wasmByteCode: Uint8Array; - /** - * InstantiatePermission access control to apply on contract creation, - * optional - */ - - instantiatePermission?: AccessConfig; -} -/** MsgStoreCode submit Wasm code to the system */ - -export interface MsgStoreCodeSDKType { - sender: string; - wasm_byte_code: Uint8Array; - instantiate_permission?: AccessConfigSDKType; -} -/** MsgStoreCodeResponse returns store result data. */ - -export interface MsgStoreCodeResponse { - /** CodeID is the reference to the stored WASM code */ - codeId: Long; - /** Checksum is the sha256 hash of the stored code */ - - checksum: Uint8Array; -} -/** MsgStoreCodeResponse returns store result data. */ - -export interface MsgStoreCodeResponseSDKType { - code_id: Long; - checksum: Uint8Array; -} -/** - * MsgInstantiateContract create a new smart contract instance for the given - * code id. - */ - -export interface MsgInstantiateContract { - /** Sender is the that actor that signed the messages */ - sender: string; - /** Admin is an optional address that can execute migrations */ - - admin: string; - /** CodeID is the reference to the stored WASM code */ - - codeId: Long; - /** Label is optional metadata to be stored with a contract instance. */ - - label: string; - /** Msg json encoded message to be passed to the contract on instantiation */ - - msg: Uint8Array; - /** Funds coins that are transferred to the contract on instantiation */ - - funds: Coin[]; -} -/** - * MsgInstantiateContract create a new smart contract instance for the given - * code id. - */ - -export interface MsgInstantiateContractSDKType { - sender: string; - admin: string; - code_id: Long; - label: string; - msg: Uint8Array; - funds: CoinSDKType[]; -} -/** - * MsgInstantiateContract2 create a new smart contract instance for the given - * code id with a predicable address. - */ - -export interface MsgInstantiateContract2 { - /** Sender is the that actor that signed the messages */ - sender: string; - /** Admin is an optional address that can execute migrations */ - - admin: string; - /** CodeID is the reference to the stored WASM code */ - - codeId: Long; - /** Label is optional metadata to be stored with a contract instance. */ - - label: string; - /** Msg json encoded message to be passed to the contract on instantiation */ - - msg: Uint8Array; - /** Funds coins that are transferred to the contract on instantiation */ - - funds: Coin[]; - /** Salt is an arbitrary value provided by the sender. Size can be 1 to 64. */ - - salt: Uint8Array; - /** - * FixMsg include the msg value into the hash for the predictable address. - * Default is false - */ - - fixMsg: boolean; -} -/** - * MsgInstantiateContract2 create a new smart contract instance for the given - * code id with a predicable address. - */ - -export interface MsgInstantiateContract2SDKType { - sender: string; - admin: string; - code_id: Long; - label: string; - msg: Uint8Array; - funds: CoinSDKType[]; - salt: Uint8Array; - fix_msg: boolean; -} -/** MsgInstantiateContractResponse return instantiation result data */ - -export interface MsgInstantiateContractResponse { - /** Address is the bech32 address of the new contract instance. */ - address: string; - /** Data contains bytes to returned from the contract */ - - data: Uint8Array; -} -/** MsgInstantiateContractResponse return instantiation result data */ - -export interface MsgInstantiateContractResponseSDKType { - address: string; - data: Uint8Array; -} -/** MsgInstantiateContract2Response return instantiation result data */ - -export interface MsgInstantiateContract2Response { - /** Address is the bech32 address of the new contract instance. */ - address: string; - /** Data contains bytes to returned from the contract */ - - data: Uint8Array; -} -/** MsgInstantiateContract2Response return instantiation result data */ - -export interface MsgInstantiateContract2ResponseSDKType { - address: string; - data: Uint8Array; -} -/** MsgExecuteContract submits the given message data to a smart contract */ - -export interface MsgExecuteContract { - /** Sender is the that actor that signed the messages */ - sender: string; - /** Contract is the address of the smart contract */ - - contract: string; - /** Msg json encoded message to be passed to the contract */ - - msg: Uint8Array; - /** Funds coins that are transferred to the contract on execution */ - - funds: Coin[]; -} -/** MsgExecuteContract submits the given message data to a smart contract */ - -export interface MsgExecuteContractSDKType { - sender: string; - contract: string; - msg: Uint8Array; - funds: CoinSDKType[]; -} -/** MsgExecuteContractResponse returns execution result data. */ - -export interface MsgExecuteContractResponse { - /** Data contains bytes to returned from the contract */ - data: Uint8Array; -} -/** MsgExecuteContractResponse returns execution result data. */ - -export interface MsgExecuteContractResponseSDKType { - data: Uint8Array; -} -/** MsgMigrateContract runs a code upgrade/ downgrade for a smart contract */ - -export interface MsgMigrateContract { - /** Sender is the that actor that signed the messages */ - sender: string; - /** Contract is the address of the smart contract */ - - contract: string; - /** CodeID references the new WASM code */ - - codeId: Long; - /** Msg json encoded message to be passed to the contract on migration */ - - msg: Uint8Array; -} -/** MsgMigrateContract runs a code upgrade/ downgrade for a smart contract */ - -export interface MsgMigrateContractSDKType { - sender: string; - contract: string; - code_id: Long; - msg: Uint8Array; -} -/** MsgMigrateContractResponse returns contract migration result data. */ - -export interface MsgMigrateContractResponse { - /** - * Data contains same raw bytes returned as data from the wasm contract. - * (May be empty) - */ - data: Uint8Array; -} -/** MsgMigrateContractResponse returns contract migration result data. */ - -export interface MsgMigrateContractResponseSDKType { - data: Uint8Array; -} -/** MsgUpdateAdmin sets a new admin for a smart contract */ - -export interface MsgUpdateAdmin { - /** Sender is the that actor that signed the messages */ - sender: string; - /** NewAdmin address to be set */ - - newAdmin: string; - /** Contract is the address of the smart contract */ - - contract: string; -} -/** MsgUpdateAdmin sets a new admin for a smart contract */ - -export interface MsgUpdateAdminSDKType { - sender: string; - new_admin: string; - contract: string; -} -/** MsgUpdateAdminResponse returns empty data */ - -export interface MsgUpdateAdminResponse {} -/** MsgUpdateAdminResponse returns empty data */ - -export interface MsgUpdateAdminResponseSDKType {} -/** MsgClearAdmin removes any admin stored for a smart contract */ - -export interface MsgClearAdmin { - /** Sender is the that actor that signed the messages */ - sender: string; - /** Contract is the address of the smart contract */ - - contract: string; -} -/** MsgClearAdmin removes any admin stored for a smart contract */ - -export interface MsgClearAdminSDKType { - sender: string; - contract: string; -} -/** MsgClearAdminResponse returns empty data */ - -export interface MsgClearAdminResponse {} -/** MsgClearAdminResponse returns empty data */ - -export interface MsgClearAdminResponseSDKType {} - -function createBaseMsgStoreCode(): MsgStoreCode { - return { - sender: "", - wasmByteCode: new Uint8Array(), - instantiatePermission: undefined - }; -} - -export const MsgStoreCode = { - encode(message: MsgStoreCode, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.sender !== "") { - writer.uint32(10).string(message.sender); - } - - if (message.wasmByteCode.length !== 0) { - writer.uint32(18).bytes(message.wasmByteCode); - } - - if (message.instantiatePermission !== undefined) { - AccessConfig.encode(message.instantiatePermission, writer.uint32(42).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgStoreCode { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgStoreCode(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.sender = reader.string(); - break; - - case 2: - message.wasmByteCode = reader.bytes(); - break; - - case 5: - message.instantiatePermission = AccessConfig.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgStoreCode { - const message = createBaseMsgStoreCode(); - message.sender = object.sender ?? ""; - message.wasmByteCode = object.wasmByteCode ?? new Uint8Array(); - message.instantiatePermission = object.instantiatePermission !== undefined && object.instantiatePermission !== null ? AccessConfig.fromPartial(object.instantiatePermission) : undefined; - return message; - } - -}; - -function createBaseMsgStoreCodeResponse(): MsgStoreCodeResponse { - return { - codeId: Long.UZERO, - checksum: new Uint8Array() - }; -} - -export const MsgStoreCodeResponse = { - encode(message: MsgStoreCodeResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.codeId.isZero()) { - writer.uint32(8).uint64(message.codeId); - } - - if (message.checksum.length !== 0) { - writer.uint32(18).bytes(message.checksum); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgStoreCodeResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgStoreCodeResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.codeId = (reader.uint64() as Long); - break; - - case 2: - message.checksum = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgStoreCodeResponse { - const message = createBaseMsgStoreCodeResponse(); - message.codeId = object.codeId !== undefined && object.codeId !== null ? Long.fromValue(object.codeId) : Long.UZERO; - message.checksum = object.checksum ?? new Uint8Array(); - return message; - } - -}; - -function createBaseMsgInstantiateContract(): MsgInstantiateContract { - return { - sender: "", - admin: "", - codeId: Long.UZERO, - label: "", - msg: new Uint8Array(), - funds: [] - }; -} - -export const MsgInstantiateContract = { - encode(message: MsgInstantiateContract, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.sender !== "") { - writer.uint32(10).string(message.sender); - } - - if (message.admin !== "") { - writer.uint32(18).string(message.admin); - } - - if (!message.codeId.isZero()) { - writer.uint32(24).uint64(message.codeId); - } - - if (message.label !== "") { - writer.uint32(34).string(message.label); - } - - if (message.msg.length !== 0) { - writer.uint32(42).bytes(message.msg); - } - - for (const v of message.funds) { - Coin.encode(v!, writer.uint32(50).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgInstantiateContract { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgInstantiateContract(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.sender = reader.string(); - break; - - case 2: - message.admin = reader.string(); - break; - - case 3: - message.codeId = (reader.uint64() as Long); - break; - - case 4: - message.label = reader.string(); - break; - - case 5: - message.msg = reader.bytes(); - break; - - case 6: - message.funds.push(Coin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgInstantiateContract { - const message = createBaseMsgInstantiateContract(); - message.sender = object.sender ?? ""; - message.admin = object.admin ?? ""; - message.codeId = object.codeId !== undefined && object.codeId !== null ? Long.fromValue(object.codeId) : Long.UZERO; - message.label = object.label ?? ""; - message.msg = object.msg ?? new Uint8Array(); - message.funds = object.funds?.map(e => Coin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseMsgInstantiateContract2(): MsgInstantiateContract2 { - return { - sender: "", - admin: "", - codeId: Long.UZERO, - label: "", - msg: new Uint8Array(), - funds: [], - salt: new Uint8Array(), - fixMsg: false - }; -} - -export const MsgInstantiateContract2 = { - encode(message: MsgInstantiateContract2, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.sender !== "") { - writer.uint32(10).string(message.sender); - } - - if (message.admin !== "") { - writer.uint32(18).string(message.admin); - } - - if (!message.codeId.isZero()) { - writer.uint32(24).uint64(message.codeId); - } - - if (message.label !== "") { - writer.uint32(34).string(message.label); - } - - if (message.msg.length !== 0) { - writer.uint32(42).bytes(message.msg); - } - - for (const v of message.funds) { - Coin.encode(v!, writer.uint32(50).fork()).ldelim(); - } - - if (message.salt.length !== 0) { - writer.uint32(58).bytes(message.salt); - } - - if (message.fixMsg === true) { - writer.uint32(64).bool(message.fixMsg); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgInstantiateContract2 { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgInstantiateContract2(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.sender = reader.string(); - break; - - case 2: - message.admin = reader.string(); - break; - - case 3: - message.codeId = (reader.uint64() as Long); - break; - - case 4: - message.label = reader.string(); - break; - - case 5: - message.msg = reader.bytes(); - break; - - case 6: - message.funds.push(Coin.decode(reader, reader.uint32())); - break; - - case 7: - message.salt = reader.bytes(); - break; - - case 8: - message.fixMsg = reader.bool(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgInstantiateContract2 { - const message = createBaseMsgInstantiateContract2(); - message.sender = object.sender ?? ""; - message.admin = object.admin ?? ""; - message.codeId = object.codeId !== undefined && object.codeId !== null ? Long.fromValue(object.codeId) : Long.UZERO; - message.label = object.label ?? ""; - message.msg = object.msg ?? new Uint8Array(); - message.funds = object.funds?.map(e => Coin.fromPartial(e)) || []; - message.salt = object.salt ?? new Uint8Array(); - message.fixMsg = object.fixMsg ?? false; - return message; - } - -}; - -function createBaseMsgInstantiateContractResponse(): MsgInstantiateContractResponse { - return { - address: "", - data: new Uint8Array() - }; -} - -export const MsgInstantiateContractResponse = { - encode(message: MsgInstantiateContractResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - if (message.data.length !== 0) { - writer.uint32(18).bytes(message.data); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgInstantiateContractResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgInstantiateContractResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.data = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgInstantiateContractResponse { - const message = createBaseMsgInstantiateContractResponse(); - message.address = object.address ?? ""; - message.data = object.data ?? new Uint8Array(); - return message; - } - -}; - -function createBaseMsgInstantiateContract2Response(): MsgInstantiateContract2Response { - return { - address: "", - data: new Uint8Array() - }; -} - -export const MsgInstantiateContract2Response = { - encode(message: MsgInstantiateContract2Response, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - if (message.data.length !== 0) { - writer.uint32(18).bytes(message.data); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgInstantiateContract2Response { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgInstantiateContract2Response(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.data = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgInstantiateContract2Response { - const message = createBaseMsgInstantiateContract2Response(); - message.address = object.address ?? ""; - message.data = object.data ?? new Uint8Array(); - return message; - } - -}; - -function createBaseMsgExecuteContract(): MsgExecuteContract { - return { - sender: "", - contract: "", - msg: new Uint8Array(), - funds: [] - }; -} - -export const MsgExecuteContract = { - encode(message: MsgExecuteContract, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.sender !== "") { - writer.uint32(10).string(message.sender); - } - - if (message.contract !== "") { - writer.uint32(18).string(message.contract); - } - - if (message.msg.length !== 0) { - writer.uint32(26).bytes(message.msg); - } - - for (const v of message.funds) { - Coin.encode(v!, writer.uint32(42).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgExecuteContract { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgExecuteContract(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.sender = reader.string(); - break; - - case 2: - message.contract = reader.string(); - break; - - case 3: - message.msg = reader.bytes(); - break; - - case 5: - message.funds.push(Coin.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgExecuteContract { - const message = createBaseMsgExecuteContract(); - message.sender = object.sender ?? ""; - message.contract = object.contract ?? ""; - message.msg = object.msg ?? new Uint8Array(); - message.funds = object.funds?.map(e => Coin.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseMsgExecuteContractResponse(): MsgExecuteContractResponse { - return { - data: new Uint8Array() - }; -} - -export const MsgExecuteContractResponse = { - encode(message: MsgExecuteContractResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.data.length !== 0) { - writer.uint32(10).bytes(message.data); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgExecuteContractResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgExecuteContractResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.data = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgExecuteContractResponse { - const message = createBaseMsgExecuteContractResponse(); - message.data = object.data ?? new Uint8Array(); - return message; - } - -}; - -function createBaseMsgMigrateContract(): MsgMigrateContract { - return { - sender: "", - contract: "", - codeId: Long.UZERO, - msg: new Uint8Array() - }; -} - -export const MsgMigrateContract = { - encode(message: MsgMigrateContract, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.sender !== "") { - writer.uint32(10).string(message.sender); - } - - if (message.contract !== "") { - writer.uint32(18).string(message.contract); - } - - if (!message.codeId.isZero()) { - writer.uint32(24).uint64(message.codeId); - } - - if (message.msg.length !== 0) { - writer.uint32(34).bytes(message.msg); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgMigrateContract { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgMigrateContract(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.sender = reader.string(); - break; - - case 2: - message.contract = reader.string(); - break; - - case 3: - message.codeId = (reader.uint64() as Long); - break; - - case 4: - message.msg = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgMigrateContract { - const message = createBaseMsgMigrateContract(); - message.sender = object.sender ?? ""; - message.contract = object.contract ?? ""; - message.codeId = object.codeId !== undefined && object.codeId !== null ? Long.fromValue(object.codeId) : Long.UZERO; - message.msg = object.msg ?? new Uint8Array(); - return message; - } - -}; - -function createBaseMsgMigrateContractResponse(): MsgMigrateContractResponse { - return { - data: new Uint8Array() - }; -} - -export const MsgMigrateContractResponse = { - encode(message: MsgMigrateContractResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.data.length !== 0) { - writer.uint32(10).bytes(message.data); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgMigrateContractResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgMigrateContractResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.data = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgMigrateContractResponse { - const message = createBaseMsgMigrateContractResponse(); - message.data = object.data ?? new Uint8Array(); - return message; - } - -}; - -function createBaseMsgUpdateAdmin(): MsgUpdateAdmin { - return { - sender: "", - newAdmin: "", - contract: "" - }; -} - -export const MsgUpdateAdmin = { - encode(message: MsgUpdateAdmin, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.sender !== "") { - writer.uint32(10).string(message.sender); - } - - if (message.newAdmin !== "") { - writer.uint32(18).string(message.newAdmin); - } - - if (message.contract !== "") { - writer.uint32(26).string(message.contract); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateAdmin { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateAdmin(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.sender = reader.string(); - break; - - case 2: - message.newAdmin = reader.string(); - break; - - case 3: - message.contract = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgUpdateAdmin { - const message = createBaseMsgUpdateAdmin(); - message.sender = object.sender ?? ""; - message.newAdmin = object.newAdmin ?? ""; - message.contract = object.contract ?? ""; - return message; - } - -}; - -function createBaseMsgUpdateAdminResponse(): MsgUpdateAdminResponse { - return {}; -} - -export const MsgUpdateAdminResponse = { - encode(_: MsgUpdateAdminResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateAdminResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateAdminResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgUpdateAdminResponse { - const message = createBaseMsgUpdateAdminResponse(); - return message; - } - -}; - -function createBaseMsgClearAdmin(): MsgClearAdmin { - return { - sender: "", - contract: "" - }; -} - -export const MsgClearAdmin = { - encode(message: MsgClearAdmin, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.sender !== "") { - writer.uint32(10).string(message.sender); - } - - if (message.contract !== "") { - writer.uint32(26).string(message.contract); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgClearAdmin { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgClearAdmin(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.sender = reader.string(); - break; - - case 3: - message.contract = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgClearAdmin { - const message = createBaseMsgClearAdmin(); - message.sender = object.sender ?? ""; - message.contract = object.contract ?? ""; - return message; - } - -}; - -function createBaseMsgClearAdminResponse(): MsgClearAdminResponse { - return {}; -} - -export const MsgClearAdminResponse = { - encode(_: MsgClearAdminResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgClearAdminResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgClearAdminResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgClearAdminResponse { - const message = createBaseMsgClearAdminResponse(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/cosmwasm/wasm/v1/types.ts b/packages/codegen/src/cosmwasm/wasm/v1/types.ts deleted file mode 100644 index 5fd2ba22..00000000 --- a/packages/codegen/src/cosmwasm/wasm/v1/types.ts +++ /dev/null @@ -1,811 +0,0 @@ -import { Any, AnySDKType } from "../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../helpers"; -/** AccessType permission types */ - -export enum AccessType { - /** ACCESS_TYPE_UNSPECIFIED - AccessTypeUnspecified placeholder for empty value */ - ACCESS_TYPE_UNSPECIFIED = 0, - - /** ACCESS_TYPE_NOBODY - AccessTypeNobody forbidden */ - ACCESS_TYPE_NOBODY = 1, - - /** - * ACCESS_TYPE_ONLY_ADDRESS - AccessTypeOnlyAddress restricted to a single address - * Deprecated: use AccessTypeAnyOfAddresses instead - */ - ACCESS_TYPE_ONLY_ADDRESS = 2, - - /** ACCESS_TYPE_EVERYBODY - AccessTypeEverybody unrestricted */ - ACCESS_TYPE_EVERYBODY = 3, - - /** ACCESS_TYPE_ANY_OF_ADDRESSES - AccessTypeAnyOfAddresses allow any of the addresses */ - ACCESS_TYPE_ANY_OF_ADDRESSES = 4, - UNRECOGNIZED = -1, -} -export const AccessTypeSDKType = AccessType; -export function accessTypeFromJSON(object: any): AccessType { - switch (object) { - case 0: - case "ACCESS_TYPE_UNSPECIFIED": - return AccessType.ACCESS_TYPE_UNSPECIFIED; - - case 1: - case "ACCESS_TYPE_NOBODY": - return AccessType.ACCESS_TYPE_NOBODY; - - case 2: - case "ACCESS_TYPE_ONLY_ADDRESS": - return AccessType.ACCESS_TYPE_ONLY_ADDRESS; - - case 3: - case "ACCESS_TYPE_EVERYBODY": - return AccessType.ACCESS_TYPE_EVERYBODY; - - case 4: - case "ACCESS_TYPE_ANY_OF_ADDRESSES": - return AccessType.ACCESS_TYPE_ANY_OF_ADDRESSES; - - case -1: - case "UNRECOGNIZED": - default: - return AccessType.UNRECOGNIZED; - } -} -export function accessTypeToJSON(object: AccessType): string { - switch (object) { - case AccessType.ACCESS_TYPE_UNSPECIFIED: - return "ACCESS_TYPE_UNSPECIFIED"; - - case AccessType.ACCESS_TYPE_NOBODY: - return "ACCESS_TYPE_NOBODY"; - - case AccessType.ACCESS_TYPE_ONLY_ADDRESS: - return "ACCESS_TYPE_ONLY_ADDRESS"; - - case AccessType.ACCESS_TYPE_EVERYBODY: - return "ACCESS_TYPE_EVERYBODY"; - - case AccessType.ACCESS_TYPE_ANY_OF_ADDRESSES: - return "ACCESS_TYPE_ANY_OF_ADDRESSES"; - - case AccessType.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** ContractCodeHistoryOperationType actions that caused a code change */ - -export enum ContractCodeHistoryOperationType { - /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED - ContractCodeHistoryOperationTypeUnspecified placeholder for empty value */ - CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED = 0, - - /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT - ContractCodeHistoryOperationTypeInit on chain contract instantiation */ - CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT = 1, - - /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE - ContractCodeHistoryOperationTypeMigrate code migration */ - CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE = 2, - - /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS - ContractCodeHistoryOperationTypeGenesis based on genesis data */ - CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS = 3, - UNRECOGNIZED = -1, -} -export const ContractCodeHistoryOperationTypeSDKType = ContractCodeHistoryOperationType; -export function contractCodeHistoryOperationTypeFromJSON(object: any): ContractCodeHistoryOperationType { - switch (object) { - case 0: - case "CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED": - return ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED; - - case 1: - case "CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT": - return ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT; - - case 2: - case "CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE": - return ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE; - - case 3: - case "CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS": - return ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS; - - case -1: - case "UNRECOGNIZED": - default: - return ContractCodeHistoryOperationType.UNRECOGNIZED; - } -} -export function contractCodeHistoryOperationTypeToJSON(object: ContractCodeHistoryOperationType): string { - switch (object) { - case ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED: - return "CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED"; - - case ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT: - return "CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT"; - - case ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE: - return "CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE"; - - case ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS: - return "CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS"; - - case ContractCodeHistoryOperationType.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** AccessTypeParam */ - -export interface AccessTypeParam { - value: AccessType; -} -/** AccessTypeParam */ - -export interface AccessTypeParamSDKType { - value: AccessType; -} -/** AccessConfig access control type. */ - -export interface AccessConfig { - permission: AccessType; - /** - * Address - * Deprecated: replaced by addresses - */ - - address: string; - addresses: string[]; -} -/** AccessConfig access control type. */ - -export interface AccessConfigSDKType { - permission: AccessType; - address: string; - addresses: string[]; -} -/** Params defines the set of wasm parameters. */ - -export interface Params { - codeUploadAccess?: AccessConfig; - instantiateDefaultPermission: AccessType; -} -/** Params defines the set of wasm parameters. */ - -export interface ParamsSDKType { - code_upload_access?: AccessConfigSDKType; - instantiate_default_permission: AccessType; -} -/** CodeInfo is data for the uploaded contract WASM code */ - -export interface CodeInfo { - /** CodeHash is the unique identifier created by wasmvm */ - codeHash: Uint8Array; - /** Creator address who initially stored the code */ - - creator: string; - /** InstantiateConfig access control to apply on contract creation, optional */ - - instantiateConfig?: AccessConfig; -} -/** CodeInfo is data for the uploaded contract WASM code */ - -export interface CodeInfoSDKType { - code_hash: Uint8Array; - creator: string; - instantiate_config?: AccessConfigSDKType; -} -/** ContractInfo stores a WASM contract instance */ - -export interface ContractInfo { - /** CodeID is the reference to the stored Wasm code */ - codeId: Long; - /** Creator address who initially instantiated the contract */ - - creator: string; - /** Admin is an optional address that can execute migrations */ - - admin: string; - /** Label is optional metadata to be stored with a contract instance. */ - - label: string; - /** Created Tx position when the contract was instantiated. */ - - created?: AbsoluteTxPosition; - ibcPortId: string; - /** - * Extension is an extension point to store custom metadata within the - * persistence model. - */ - - extension?: Any; -} -/** ContractInfo stores a WASM contract instance */ - -export interface ContractInfoSDKType { - code_id: Long; - creator: string; - admin: string; - label: string; - created?: AbsoluteTxPositionSDKType; - ibc_port_id: string; - extension?: AnySDKType; -} -/** ContractCodeHistoryEntry metadata to a contract. */ - -export interface ContractCodeHistoryEntry { - operation: ContractCodeHistoryOperationType; - /** CodeID is the reference to the stored WASM code */ - - codeId: Long; - /** Updated Tx position when the operation was executed. */ - - updated?: AbsoluteTxPosition; - msg: Uint8Array; -} -/** ContractCodeHistoryEntry metadata to a contract. */ - -export interface ContractCodeHistoryEntrySDKType { - operation: ContractCodeHistoryOperationType; - code_id: Long; - updated?: AbsoluteTxPositionSDKType; - msg: Uint8Array; -} -/** - * AbsoluteTxPosition is a unique transaction position that allows for global - * ordering of transactions. - */ - -export interface AbsoluteTxPosition { - /** BlockHeight is the block the contract was created at */ - blockHeight: Long; - /** - * TxIndex is a monotonic counter within the block (actual transaction index, - * or gas consumed) - */ - - txIndex: Long; -} -/** - * AbsoluteTxPosition is a unique transaction position that allows for global - * ordering of transactions. - */ - -export interface AbsoluteTxPositionSDKType { - block_height: Long; - tx_index: Long; -} -/** Model is a struct that holds a KV pair */ - -export interface Model { - /** hex-encode key to read it better (this is often ascii) */ - key: Uint8Array; - /** base64-encode raw value */ - - value: Uint8Array; -} -/** Model is a struct that holds a KV pair */ - -export interface ModelSDKType { - key: Uint8Array; - value: Uint8Array; -} - -function createBaseAccessTypeParam(): AccessTypeParam { - return { - value: 0 - }; -} - -export const AccessTypeParam = { - encode(message: AccessTypeParam, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.value !== 0) { - writer.uint32(8).int32(message.value); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): AccessTypeParam { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAccessTypeParam(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.value = (reader.int32() as any); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): AccessTypeParam { - const message = createBaseAccessTypeParam(); - message.value = object.value ?? 0; - return message; - } - -}; - -function createBaseAccessConfig(): AccessConfig { - return { - permission: 0, - address: "", - addresses: [] - }; -} - -export const AccessConfig = { - encode(message: AccessConfig, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.permission !== 0) { - writer.uint32(8).int32(message.permission); - } - - if (message.address !== "") { - writer.uint32(18).string(message.address); - } - - for (const v of message.addresses) { - writer.uint32(26).string(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): AccessConfig { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAccessConfig(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.permission = (reader.int32() as any); - break; - - case 2: - message.address = reader.string(); - break; - - case 3: - message.addresses.push(reader.string()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): AccessConfig { - const message = createBaseAccessConfig(); - message.permission = object.permission ?? 0; - message.address = object.address ?? ""; - message.addresses = object.addresses?.map(e => e) || []; - return message; - } - -}; - -function createBaseParams(): Params { - return { - codeUploadAccess: undefined, - instantiateDefaultPermission: 0 - }; -} - -export const Params = { - encode(message: Params, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.codeUploadAccess !== undefined) { - AccessConfig.encode(message.codeUploadAccess, writer.uint32(10).fork()).ldelim(); - } - - if (message.instantiateDefaultPermission !== 0) { - writer.uint32(16).int32(message.instantiateDefaultPermission); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Params { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseParams(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.codeUploadAccess = AccessConfig.decode(reader, reader.uint32()); - break; - - case 2: - message.instantiateDefaultPermission = (reader.int32() as any); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Params { - const message = createBaseParams(); - message.codeUploadAccess = object.codeUploadAccess !== undefined && object.codeUploadAccess !== null ? AccessConfig.fromPartial(object.codeUploadAccess) : undefined; - message.instantiateDefaultPermission = object.instantiateDefaultPermission ?? 0; - return message; - } - -}; - -function createBaseCodeInfo(): CodeInfo { - return { - codeHash: new Uint8Array(), - creator: "", - instantiateConfig: undefined - }; -} - -export const CodeInfo = { - encode(message: CodeInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.codeHash.length !== 0) { - writer.uint32(10).bytes(message.codeHash); - } - - if (message.creator !== "") { - writer.uint32(18).string(message.creator); - } - - if (message.instantiateConfig !== undefined) { - AccessConfig.encode(message.instantiateConfig, writer.uint32(42).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): CodeInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCodeInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.codeHash = reader.bytes(); - break; - - case 2: - message.creator = reader.string(); - break; - - case 5: - message.instantiateConfig = AccessConfig.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): CodeInfo { - const message = createBaseCodeInfo(); - message.codeHash = object.codeHash ?? new Uint8Array(); - message.creator = object.creator ?? ""; - message.instantiateConfig = object.instantiateConfig !== undefined && object.instantiateConfig !== null ? AccessConfig.fromPartial(object.instantiateConfig) : undefined; - return message; - } - -}; - -function createBaseContractInfo(): ContractInfo { - return { - codeId: Long.UZERO, - creator: "", - admin: "", - label: "", - created: undefined, - ibcPortId: "", - extension: undefined - }; -} - -export const ContractInfo = { - encode(message: ContractInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.codeId.isZero()) { - writer.uint32(8).uint64(message.codeId); - } - - if (message.creator !== "") { - writer.uint32(18).string(message.creator); - } - - if (message.admin !== "") { - writer.uint32(26).string(message.admin); - } - - if (message.label !== "") { - writer.uint32(34).string(message.label); - } - - if (message.created !== undefined) { - AbsoluteTxPosition.encode(message.created, writer.uint32(42).fork()).ldelim(); - } - - if (message.ibcPortId !== "") { - writer.uint32(50).string(message.ibcPortId); - } - - if (message.extension !== undefined) { - Any.encode(message.extension, writer.uint32(58).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ContractInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseContractInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.codeId = (reader.uint64() as Long); - break; - - case 2: - message.creator = reader.string(); - break; - - case 3: - message.admin = reader.string(); - break; - - case 4: - message.label = reader.string(); - break; - - case 5: - message.created = AbsoluteTxPosition.decode(reader, reader.uint32()); - break; - - case 6: - message.ibcPortId = reader.string(); - break; - - case 7: - message.extension = Any.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ContractInfo { - const message = createBaseContractInfo(); - message.codeId = object.codeId !== undefined && object.codeId !== null ? Long.fromValue(object.codeId) : Long.UZERO; - message.creator = object.creator ?? ""; - message.admin = object.admin ?? ""; - message.label = object.label ?? ""; - message.created = object.created !== undefined && object.created !== null ? AbsoluteTxPosition.fromPartial(object.created) : undefined; - message.ibcPortId = object.ibcPortId ?? ""; - message.extension = object.extension !== undefined && object.extension !== null ? Any.fromPartial(object.extension) : undefined; - return message; - } - -}; - -function createBaseContractCodeHistoryEntry(): ContractCodeHistoryEntry { - return { - operation: 0, - codeId: Long.UZERO, - updated: undefined, - msg: new Uint8Array() - }; -} - -export const ContractCodeHistoryEntry = { - encode(message: ContractCodeHistoryEntry, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.operation !== 0) { - writer.uint32(8).int32(message.operation); - } - - if (!message.codeId.isZero()) { - writer.uint32(16).uint64(message.codeId); - } - - if (message.updated !== undefined) { - AbsoluteTxPosition.encode(message.updated, writer.uint32(26).fork()).ldelim(); - } - - if (message.msg.length !== 0) { - writer.uint32(34).bytes(message.msg); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ContractCodeHistoryEntry { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseContractCodeHistoryEntry(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.operation = (reader.int32() as any); - break; - - case 2: - message.codeId = (reader.uint64() as Long); - break; - - case 3: - message.updated = AbsoluteTxPosition.decode(reader, reader.uint32()); - break; - - case 4: - message.msg = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ContractCodeHistoryEntry { - const message = createBaseContractCodeHistoryEntry(); - message.operation = object.operation ?? 0; - message.codeId = object.codeId !== undefined && object.codeId !== null ? Long.fromValue(object.codeId) : Long.UZERO; - message.updated = object.updated !== undefined && object.updated !== null ? AbsoluteTxPosition.fromPartial(object.updated) : undefined; - message.msg = object.msg ?? new Uint8Array(); - return message; - } - -}; - -function createBaseAbsoluteTxPosition(): AbsoluteTxPosition { - return { - blockHeight: Long.UZERO, - txIndex: Long.UZERO - }; -} - -export const AbsoluteTxPosition = { - encode(message: AbsoluteTxPosition, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.blockHeight.isZero()) { - writer.uint32(8).uint64(message.blockHeight); - } - - if (!message.txIndex.isZero()) { - writer.uint32(16).uint64(message.txIndex); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): AbsoluteTxPosition { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAbsoluteTxPosition(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.blockHeight = (reader.uint64() as Long); - break; - - case 2: - message.txIndex = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): AbsoluteTxPosition { - const message = createBaseAbsoluteTxPosition(); - message.blockHeight = object.blockHeight !== undefined && object.blockHeight !== null ? Long.fromValue(object.blockHeight) : Long.UZERO; - message.txIndex = object.txIndex !== undefined && object.txIndex !== null ? Long.fromValue(object.txIndex) : Long.UZERO; - return message; - } - -}; - -function createBaseModel(): Model { - return { - key: new Uint8Array(), - value: new Uint8Array() - }; -} - -export const Model = { - encode(message: Model, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); - } - - if (message.value.length !== 0) { - writer.uint32(18).bytes(message.value); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Model { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseModel(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.key = reader.bytes(); - break; - - case 2: - message.value = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Model { - const message = createBaseModel(); - message.key = object.key ?? new Uint8Array(); - message.value = object.value ?? new Uint8Array(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/gogoproto/bundle.ts b/packages/codegen/src/gogoproto/bundle.ts deleted file mode 100644 index 376d487c..00000000 --- a/packages/codegen/src/gogoproto/bundle.ts +++ /dev/null @@ -1,3 +0,0 @@ -import * as _102 from "./gogo"; -export const gogoproto = { ..._102 -}; \ No newline at end of file diff --git a/packages/codegen/src/gogoproto/gogo.ts b/packages/codegen/src/gogoproto/gogo.ts deleted file mode 100644 index 693da49f..00000000 --- a/packages/codegen/src/gogoproto/gogo.ts +++ /dev/null @@ -1 +0,0 @@ -export {} \ No newline at end of file diff --git a/packages/codegen/src/google/api/annotations.ts b/packages/codegen/src/google/api/annotations.ts deleted file mode 100644 index 693da49f..00000000 --- a/packages/codegen/src/google/api/annotations.ts +++ /dev/null @@ -1 +0,0 @@ -export {} \ No newline at end of file diff --git a/packages/codegen/src/google/api/http.ts b/packages/codegen/src/google/api/http.ts deleted file mode 100644 index 08e2e293..00000000 --- a/packages/codegen/src/google/api/http.ts +++ /dev/null @@ -1,913 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../helpers"; -/** - * 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. - */ - -export interface Http { - /** - * A list of HTTP configuration rules that apply to individual API methods. - * - * **NOTE:** All service configuration rules follow "last one wins" order. - */ - rules: HttpRule[]; - /** - * 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. - */ - - fullyDecodeReservedExpansion: boolean; -} -/** - * 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. - */ - -export interface HttpSDKType { - rules: HttpRuleSDKType[]; - fully_decode_reserved_expansion: boolean; -} -/** - * # 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. - */ - -export interface HttpRule { - /** - * Selects a method to which this rule applies. - * - * Refer to [selector][google.api.DocumentationRule.selector] for syntax details. - */ - selector: string; - /** - * Maps to HTTP GET. Used for listing and getting information about - * resources. - */ - - get?: string; - /** Maps to HTTP PUT. Used for replacing a resource. */ - - put?: string; - /** Maps to HTTP POST. Used for creating a resource or performing an action. */ - - post?: string; - /** Maps to HTTP DELETE. Used for deleting a resource. */ - - delete?: string; - /** Maps to HTTP PATCH. Used for updating a resource. */ - - patch?: string; - /** - * 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. - */ - - custom?: CustomHttpPattern; - /** - * 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. - */ - - body: string; - /** - * 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. - */ - - responseBody: string; - /** - * 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). - */ - - additionalBindings: HttpRule[]; -} -/** - * # 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. - */ - -export interface HttpRuleSDKType { - selector: string; - get?: string; - put?: string; - post?: string; - delete?: string; - patch?: string; - custom?: CustomHttpPatternSDKType; - body: string; - response_body: string; - additional_bindings: HttpRuleSDKType[]; -} -/** A custom pattern is used for defining custom HTTP verb. */ - -export interface CustomHttpPattern { - /** The name of this custom HTTP verb. */ - kind: string; - /** The path matched by this custom verb. */ - - path: string; -} -/** A custom pattern is used for defining custom HTTP verb. */ - -export interface CustomHttpPatternSDKType { - kind: string; - path: string; -} - -function createBaseHttp(): Http { - return { - rules: [], - fullyDecodeReservedExpansion: false - }; -} - -export const Http = { - encode(message: Http, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.rules) { - HttpRule.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.fullyDecodeReservedExpansion === true) { - writer.uint32(16).bool(message.fullyDecodeReservedExpansion); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Http { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseHttp(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.rules.push(HttpRule.decode(reader, reader.uint32())); - break; - - case 2: - message.fullyDecodeReservedExpansion = reader.bool(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Http { - const message = createBaseHttp(); - message.rules = object.rules?.map(e => HttpRule.fromPartial(e)) || []; - message.fullyDecodeReservedExpansion = object.fullyDecodeReservedExpansion ?? false; - return message; - } - -}; - -function createBaseHttpRule(): HttpRule { - return { - selector: "", - get: undefined, - put: undefined, - post: undefined, - delete: undefined, - patch: undefined, - custom: undefined, - body: "", - responseBody: "", - additionalBindings: [] - }; -} - -export const HttpRule = { - encode(message: HttpRule, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.selector !== "") { - writer.uint32(10).string(message.selector); - } - - if (message.get !== undefined) { - writer.uint32(18).string(message.get); - } - - if (message.put !== undefined) { - writer.uint32(26).string(message.put); - } - - if (message.post !== undefined) { - writer.uint32(34).string(message.post); - } - - if (message.delete !== undefined) { - writer.uint32(42).string(message.delete); - } - - if (message.patch !== undefined) { - writer.uint32(50).string(message.patch); - } - - if (message.custom !== undefined) { - CustomHttpPattern.encode(message.custom, writer.uint32(66).fork()).ldelim(); - } - - if (message.body !== "") { - writer.uint32(58).string(message.body); - } - - if (message.responseBody !== "") { - writer.uint32(98).string(message.responseBody); - } - - for (const v of message.additionalBindings) { - HttpRule.encode(v!, writer.uint32(90).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): HttpRule { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseHttpRule(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.selector = reader.string(); - break; - - case 2: - message.get = reader.string(); - break; - - case 3: - message.put = reader.string(); - break; - - case 4: - message.post = reader.string(); - break; - - case 5: - message.delete = reader.string(); - break; - - case 6: - message.patch = reader.string(); - break; - - case 8: - message.custom = CustomHttpPattern.decode(reader, reader.uint32()); - break; - - case 7: - message.body = reader.string(); - break; - - case 12: - message.responseBody = reader.string(); - break; - - case 11: - message.additionalBindings.push(HttpRule.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): HttpRule { - const message = createBaseHttpRule(); - message.selector = object.selector ?? ""; - message.get = object.get ?? undefined; - message.put = object.put ?? undefined; - message.post = object.post ?? undefined; - message.delete = object.delete ?? undefined; - message.patch = object.patch ?? undefined; - message.custom = object.custom !== undefined && object.custom !== null ? CustomHttpPattern.fromPartial(object.custom) : undefined; - message.body = object.body ?? ""; - message.responseBody = object.responseBody ?? ""; - message.additionalBindings = object.additionalBindings?.map(e => HttpRule.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseCustomHttpPattern(): CustomHttpPattern { - return { - kind: "", - path: "" - }; -} - -export const CustomHttpPattern = { - encode(message: CustomHttpPattern, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.kind !== "") { - writer.uint32(10).string(message.kind); - } - - if (message.path !== "") { - writer.uint32(18).string(message.path); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): CustomHttpPattern { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCustomHttpPattern(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.kind = reader.string(); - break; - - case 2: - message.path = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): CustomHttpPattern { - const message = createBaseCustomHttpPattern(); - message.kind = object.kind ?? ""; - message.path = object.path ?? ""; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/google/bundle.ts b/packages/codegen/src/google/bundle.ts deleted file mode 100644 index f15a5325..00000000 --- a/packages/codegen/src/google/bundle.ts +++ /dev/null @@ -1,18 +0,0 @@ -import * as _103 from "./api/annotations"; -import * as _104 from "./api/http"; -import * as _105 from "./protobuf/any"; -import * as _106 from "./protobuf/descriptor"; -import * as _107 from "./protobuf/duration"; -import * as _108 from "./protobuf/empty"; -import * as _109 from "./protobuf/timestamp"; -export namespace google { - export const api = { ..._103, - ..._104 - }; - export const protobuf = { ..._105, - ..._106, - ..._107, - ..._108, - ..._109 - }; -} \ No newline at end of file diff --git a/packages/codegen/src/google/protobuf/any.ts b/packages/codegen/src/google/protobuf/any.ts deleted file mode 100644 index 216c3e1b..00000000 --- a/packages/codegen/src/google/protobuf/any.ts +++ /dev/null @@ -1,260 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../helpers"; -/** - * `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); - * } - * - * 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 := ptypes.MarshalAny(foo) - * ... - * foo := &pb.Foo{} - * if err := ptypes.UnmarshalAny(any, 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" - * } - */ - -export interface 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. - * - * Schemes other than `http`, `https` (or the empty scheme) might be - * used with implementation specific semantics. - */ - typeUrl: string; - /** Must be a valid serialized protocol buffer of the above specified type. */ - - value: Uint8Array; -} -/** - * `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); - * } - * - * 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 := ptypes.MarshalAny(foo) - * ... - * foo := &pb.Foo{} - * if err := ptypes.UnmarshalAny(any, 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" - * } - */ - -export interface AnySDKType { - type_url: string; - value: Uint8Array; -} - -function createBaseAny(): Any { - return { - typeUrl: "", - value: new Uint8Array() - }; -} - -export const Any = { - encode(message: Any, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.typeUrl !== "") { - writer.uint32(10).string(message.typeUrl); - } - - if (message.value.length !== 0) { - writer.uint32(18).bytes(message.value); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Any { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAny(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.typeUrl = reader.string(); - break; - - case 2: - message.value = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Any { - const message = createBaseAny(); - message.typeUrl = object.typeUrl ?? ""; - message.value = object.value ?? new Uint8Array(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/google/protobuf/descriptor.ts b/packages/codegen/src/google/protobuf/descriptor.ts deleted file mode 100644 index 7022c025..00000000 --- a/packages/codegen/src/google/protobuf/descriptor.ts +++ /dev/null @@ -1,3697 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../helpers"; -export enum FieldDescriptorProto_Type { - /** - * TYPE_DOUBLE - 0 is reserved for errors. - * Order is weird for historical reasons. - */ - TYPE_DOUBLE = 1, - TYPE_FLOAT = 2, - - /** - * TYPE_INT64 - Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if - * negative values are likely. - */ - TYPE_INT64 = 3, - TYPE_UINT64 = 4, - - /** - * TYPE_INT32 - 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, - - /** - * TYPE_GROUP - Tag-delimited aggregate. - * Group type is deprecated and not supported in proto3. However, Proto3 - * implementations should still be able to parse the group wire format and - * treat group fields as unknown fields. - */ - TYPE_GROUP = 10, - TYPE_MESSAGE = 11, - - /** TYPE_BYTES - New in version 2. */ - TYPE_BYTES = 12, - TYPE_UINT32 = 13, - TYPE_ENUM = 14, - TYPE_SFIXED32 = 15, - TYPE_SFIXED64 = 16, - - /** TYPE_SINT32 - Uses ZigZag encoding. */ - TYPE_SINT32 = 17, - - /** TYPE_SINT64 - Uses ZigZag encoding. */ - TYPE_SINT64 = 18, - UNRECOGNIZED = -1, -} -export const FieldDescriptorProto_TypeSDKType = FieldDescriptorProto_Type; -export function fieldDescriptorProto_TypeFromJSON(object: any): FieldDescriptorProto_Type { - switch (object) { - case 1: - case "TYPE_DOUBLE": - return FieldDescriptorProto_Type.TYPE_DOUBLE; - - case 2: - case "TYPE_FLOAT": - return FieldDescriptorProto_Type.TYPE_FLOAT; - - case 3: - case "TYPE_INT64": - return FieldDescriptorProto_Type.TYPE_INT64; - - case 4: - case "TYPE_UINT64": - return FieldDescriptorProto_Type.TYPE_UINT64; - - case 5: - case "TYPE_INT32": - return FieldDescriptorProto_Type.TYPE_INT32; - - case 6: - case "TYPE_FIXED64": - return FieldDescriptorProto_Type.TYPE_FIXED64; - - case 7: - case "TYPE_FIXED32": - return FieldDescriptorProto_Type.TYPE_FIXED32; - - case 8: - case "TYPE_BOOL": - return FieldDescriptorProto_Type.TYPE_BOOL; - - case 9: - case "TYPE_STRING": - return FieldDescriptorProto_Type.TYPE_STRING; - - case 10: - case "TYPE_GROUP": - return FieldDescriptorProto_Type.TYPE_GROUP; - - case 11: - case "TYPE_MESSAGE": - return FieldDescriptorProto_Type.TYPE_MESSAGE; - - case 12: - case "TYPE_BYTES": - return FieldDescriptorProto_Type.TYPE_BYTES; - - case 13: - case "TYPE_UINT32": - return FieldDescriptorProto_Type.TYPE_UINT32; - - case 14: - case "TYPE_ENUM": - return FieldDescriptorProto_Type.TYPE_ENUM; - - case 15: - case "TYPE_SFIXED32": - return FieldDescriptorProto_Type.TYPE_SFIXED32; - - case 16: - case "TYPE_SFIXED64": - return FieldDescriptorProto_Type.TYPE_SFIXED64; - - case 17: - case "TYPE_SINT32": - return FieldDescriptorProto_Type.TYPE_SINT32; - - case 18: - case "TYPE_SINT64": - return FieldDescriptorProto_Type.TYPE_SINT64; - - case -1: - case "UNRECOGNIZED": - default: - return FieldDescriptorProto_Type.UNRECOGNIZED; - } -} -export function fieldDescriptorProto_TypeToJSON(object: FieldDescriptorProto_Type): string { - switch (object) { - case FieldDescriptorProto_Type.TYPE_DOUBLE: - return "TYPE_DOUBLE"; - - case FieldDescriptorProto_Type.TYPE_FLOAT: - return "TYPE_FLOAT"; - - case FieldDescriptorProto_Type.TYPE_INT64: - return "TYPE_INT64"; - - case FieldDescriptorProto_Type.TYPE_UINT64: - return "TYPE_UINT64"; - - case FieldDescriptorProto_Type.TYPE_INT32: - return "TYPE_INT32"; - - case FieldDescriptorProto_Type.TYPE_FIXED64: - return "TYPE_FIXED64"; - - case FieldDescriptorProto_Type.TYPE_FIXED32: - return "TYPE_FIXED32"; - - case FieldDescriptorProto_Type.TYPE_BOOL: - return "TYPE_BOOL"; - - case FieldDescriptorProto_Type.TYPE_STRING: - return "TYPE_STRING"; - - case FieldDescriptorProto_Type.TYPE_GROUP: - return "TYPE_GROUP"; - - case FieldDescriptorProto_Type.TYPE_MESSAGE: - return "TYPE_MESSAGE"; - - case FieldDescriptorProto_Type.TYPE_BYTES: - return "TYPE_BYTES"; - - case FieldDescriptorProto_Type.TYPE_UINT32: - return "TYPE_UINT32"; - - case FieldDescriptorProto_Type.TYPE_ENUM: - return "TYPE_ENUM"; - - case FieldDescriptorProto_Type.TYPE_SFIXED32: - return "TYPE_SFIXED32"; - - case FieldDescriptorProto_Type.TYPE_SFIXED64: - return "TYPE_SFIXED64"; - - case FieldDescriptorProto_Type.TYPE_SINT32: - return "TYPE_SINT32"; - - case FieldDescriptorProto_Type.TYPE_SINT64: - return "TYPE_SINT64"; - - case FieldDescriptorProto_Type.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -export enum FieldDescriptorProto_Label { - /** LABEL_OPTIONAL - 0 is reserved for errors */ - LABEL_OPTIONAL = 1, - LABEL_REQUIRED = 2, - LABEL_REPEATED = 3, - UNRECOGNIZED = -1, -} -export const FieldDescriptorProto_LabelSDKType = FieldDescriptorProto_Label; -export function fieldDescriptorProto_LabelFromJSON(object: any): FieldDescriptorProto_Label { - switch (object) { - case 1: - case "LABEL_OPTIONAL": - return FieldDescriptorProto_Label.LABEL_OPTIONAL; - - case 2: - case "LABEL_REQUIRED": - return FieldDescriptorProto_Label.LABEL_REQUIRED; - - case 3: - case "LABEL_REPEATED": - return FieldDescriptorProto_Label.LABEL_REPEATED; - - case -1: - case "UNRECOGNIZED": - default: - return FieldDescriptorProto_Label.UNRECOGNIZED; - } -} -export function fieldDescriptorProto_LabelToJSON(object: FieldDescriptorProto_Label): string { - switch (object) { - case FieldDescriptorProto_Label.LABEL_OPTIONAL: - return "LABEL_OPTIONAL"; - - case FieldDescriptorProto_Label.LABEL_REQUIRED: - return "LABEL_REQUIRED"; - - case FieldDescriptorProto_Label.LABEL_REPEATED: - return "LABEL_REPEATED"; - - case FieldDescriptorProto_Label.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** Generated classes can be optimized for speed or code size. */ - -export enum FileOptions_OptimizeMode { - /** - * SPEED - Generate complete code for parsing, serialization, - * etc. - */ - SPEED = 1, - - /** CODE_SIZE - Use ReflectionOps to implement these methods. */ - CODE_SIZE = 2, - - /** LITE_RUNTIME - Generate code using MessageLite and the lite runtime. */ - LITE_RUNTIME = 3, - UNRECOGNIZED = -1, -} -export const FileOptions_OptimizeModeSDKType = FileOptions_OptimizeMode; -export function fileOptions_OptimizeModeFromJSON(object: any): FileOptions_OptimizeMode { - switch (object) { - case 1: - case "SPEED": - return FileOptions_OptimizeMode.SPEED; - - case 2: - case "CODE_SIZE": - return FileOptions_OptimizeMode.CODE_SIZE; - - case 3: - case "LITE_RUNTIME": - return FileOptions_OptimizeMode.LITE_RUNTIME; - - case -1: - case "UNRECOGNIZED": - default: - return FileOptions_OptimizeMode.UNRECOGNIZED; - } -} -export function fileOptions_OptimizeModeToJSON(object: FileOptions_OptimizeMode): string { - switch (object) { - case FileOptions_OptimizeMode.SPEED: - return "SPEED"; - - case FileOptions_OptimizeMode.CODE_SIZE: - return "CODE_SIZE"; - - case FileOptions_OptimizeMode.LITE_RUNTIME: - return "LITE_RUNTIME"; - - case FileOptions_OptimizeMode.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -export enum FieldOptions_CType { - /** STRING - Default mode. */ - STRING = 0, - CORD = 1, - STRING_PIECE = 2, - UNRECOGNIZED = -1, -} -export const FieldOptions_CTypeSDKType = FieldOptions_CType; -export function fieldOptions_CTypeFromJSON(object: any): FieldOptions_CType { - switch (object) { - case 0: - case "STRING": - return FieldOptions_CType.STRING; - - case 1: - case "CORD": - return FieldOptions_CType.CORD; - - case 2: - case "STRING_PIECE": - return FieldOptions_CType.STRING_PIECE; - - case -1: - case "UNRECOGNIZED": - default: - return FieldOptions_CType.UNRECOGNIZED; - } -} -export function fieldOptions_CTypeToJSON(object: FieldOptions_CType): string { - switch (object) { - case FieldOptions_CType.STRING: - return "STRING"; - - case FieldOptions_CType.CORD: - return "CORD"; - - case FieldOptions_CType.STRING_PIECE: - return "STRING_PIECE"; - - case FieldOptions_CType.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -export enum FieldOptions_JSType { - /** JS_NORMAL - Use the default type. */ - JS_NORMAL = 0, - - /** JS_STRING - Use JavaScript strings. */ - JS_STRING = 1, - - /** JS_NUMBER - Use JavaScript numbers. */ - JS_NUMBER = 2, - UNRECOGNIZED = -1, -} -export const FieldOptions_JSTypeSDKType = FieldOptions_JSType; -export function fieldOptions_JSTypeFromJSON(object: any): FieldOptions_JSType { - switch (object) { - case 0: - case "JS_NORMAL": - return FieldOptions_JSType.JS_NORMAL; - - case 1: - case "JS_STRING": - return FieldOptions_JSType.JS_STRING; - - case 2: - case "JS_NUMBER": - return FieldOptions_JSType.JS_NUMBER; - - case -1: - case "UNRECOGNIZED": - default: - return FieldOptions_JSType.UNRECOGNIZED; - } -} -export function fieldOptions_JSTypeToJSON(object: FieldOptions_JSType): string { - switch (object) { - case FieldOptions_JSType.JS_NORMAL: - return "JS_NORMAL"; - - case FieldOptions_JSType.JS_STRING: - return "JS_STRING"; - - case FieldOptions_JSType.JS_NUMBER: - return "JS_NUMBER"; - - case FieldOptions_JSType.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** - * 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. - */ - -export enum MethodOptions_IdempotencyLevel { - IDEMPOTENCY_UNKNOWN = 0, - - /** NO_SIDE_EFFECTS - implies idempotent */ - NO_SIDE_EFFECTS = 1, - - /** IDEMPOTENT - idempotent, but may have side effects */ - IDEMPOTENT = 2, - UNRECOGNIZED = -1, -} -export const MethodOptions_IdempotencyLevelSDKType = MethodOptions_IdempotencyLevel; -export function methodOptions_IdempotencyLevelFromJSON(object: any): MethodOptions_IdempotencyLevel { - switch (object) { - case 0: - case "IDEMPOTENCY_UNKNOWN": - return MethodOptions_IdempotencyLevel.IDEMPOTENCY_UNKNOWN; - - case 1: - case "NO_SIDE_EFFECTS": - return MethodOptions_IdempotencyLevel.NO_SIDE_EFFECTS; - - case 2: - case "IDEMPOTENT": - return MethodOptions_IdempotencyLevel.IDEMPOTENT; - - case -1: - case "UNRECOGNIZED": - default: - return MethodOptions_IdempotencyLevel.UNRECOGNIZED; - } -} -export function methodOptions_IdempotencyLevelToJSON(object: MethodOptions_IdempotencyLevel): string { - switch (object) { - case MethodOptions_IdempotencyLevel.IDEMPOTENCY_UNKNOWN: - return "IDEMPOTENCY_UNKNOWN"; - - case MethodOptions_IdempotencyLevel.NO_SIDE_EFFECTS: - return "NO_SIDE_EFFECTS"; - - case MethodOptions_IdempotencyLevel.IDEMPOTENT: - return "IDEMPOTENT"; - - case MethodOptions_IdempotencyLevel.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** - * The protocol compiler can output a FileDescriptorSet containing the .proto - * files it parses. - */ - -export interface FileDescriptorSet { - file: FileDescriptorProto[]; -} -/** - * The protocol compiler can output a FileDescriptorSet containing the .proto - * files it parses. - */ - -export interface FileDescriptorSetSDKType { - file: FileDescriptorProtoSDKType[]; -} -/** Describes a complete .proto file. */ - -export interface FileDescriptorProto { - /** file name, relative to root of source tree */ - name: string; - package: string; - /** Names of files imported by this file. */ - - dependency: string[]; - /** Indexes of the public imported files in the dependency list above. */ - - publicDependency: number[]; - /** - * Indexes of the weak imported files in the dependency list. - * For Google-internal migration only. Do not use. - */ - - weakDependency: number[]; - /** All top-level definitions in this file. */ - - messageType: DescriptorProto[]; - enumType: EnumDescriptorProto[]; - service: ServiceDescriptorProto[]; - extension: FieldDescriptorProto[]; - options?: FileOptions; - /** - * 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. - */ - - sourceCodeInfo?: SourceCodeInfo; - /** - * The syntax of the proto file. - * The supported values are "proto2" and "proto3". - */ - - syntax: string; -} -/** Describes a complete .proto file. */ - -export interface FileDescriptorProtoSDKType { - name: string; - package: string; - dependency: string[]; - public_dependency: number[]; - weak_dependency: number[]; - message_type: DescriptorProtoSDKType[]; - enum_type: EnumDescriptorProtoSDKType[]; - service: ServiceDescriptorProtoSDKType[]; - extension: FieldDescriptorProtoSDKType[]; - options?: FileOptionsSDKType; - source_code_info?: SourceCodeInfoSDKType; - syntax: string; -} -/** Describes a message type. */ - -export interface DescriptorProto { - name: string; - field: FieldDescriptorProto[]; - extension: FieldDescriptorProto[]; - nestedType: DescriptorProto[]; - enumType: EnumDescriptorProto[]; - extensionRange: DescriptorProto_ExtensionRange[]; - oneofDecl: OneofDescriptorProto[]; - options?: MessageOptions; - reservedRange: DescriptorProto_ReservedRange[]; - /** - * Reserved field names, which may not be used by fields in the same message. - * A given name may only be reserved once. - */ - - reservedName: string[]; -} -/** Describes a message type. */ - -export interface DescriptorProtoSDKType { - name: string; - field: FieldDescriptorProtoSDKType[]; - extension: FieldDescriptorProtoSDKType[]; - nested_type: DescriptorProtoSDKType[]; - enum_type: EnumDescriptorProtoSDKType[]; - extension_range: DescriptorProto_ExtensionRangeSDKType[]; - oneof_decl: OneofDescriptorProtoSDKType[]; - options?: MessageOptionsSDKType; - reserved_range: DescriptorProto_ReservedRangeSDKType[]; - reserved_name: string[]; -} -export interface DescriptorProto_ExtensionRange { - /** Inclusive. */ - start: number; - /** Exclusive. */ - - end: number; - options?: ExtensionRangeOptions; -} -export interface DescriptorProto_ExtensionRangeSDKType { - start: number; - end: number; - options?: ExtensionRangeOptionsSDKType; -} -/** - * 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. - */ - -export interface DescriptorProto_ReservedRange { - /** Inclusive. */ - start: number; - /** Exclusive. */ - - end: number; -} -/** - * 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. - */ - -export interface DescriptorProto_ReservedRangeSDKType { - start: number; - end: number; -} -export interface ExtensionRangeOptions { - /** The parser stores options it doesn't recognize here. See above. */ - uninterpretedOption: UninterpretedOption[]; -} -export interface ExtensionRangeOptionsSDKType { - uninterpreted_option: UninterpretedOptionSDKType[]; -} -/** Describes a field within a message. */ - -export interface FieldDescriptorProto { - name: string; - number: number; - label: FieldDescriptorProto_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. - */ - - type: FieldDescriptorProto_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). - */ - - typeName: string; - /** - * For extensions, this is the name of the type being extended. It is - * resolved in the same manner as type_name. - */ - - extendee: string; - /** - * 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. - * TODO(kenton): Base-64 encode? - */ - - defaultValue: string; - /** - * If set, gives the index of a oneof in the containing type's oneof_decl - * list. This field is a member of that oneof. - */ - - oneofIndex: number; - /** - * 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. - */ - - jsonName: string; - options?: FieldOptions; -} -/** Describes a field within a message. */ - -export interface FieldDescriptorProtoSDKType { - name: string; - number: number; - label: FieldDescriptorProto_Label; - type: FieldDescriptorProto_Type; - type_name: string; - extendee: string; - default_value: string; - oneof_index: number; - json_name: string; - options?: FieldOptionsSDKType; -} -/** Describes a oneof. */ - -export interface OneofDescriptorProto { - name: string; - options?: OneofOptions; -} -/** Describes a oneof. */ - -export interface OneofDescriptorProtoSDKType { - name: string; - options?: OneofOptionsSDKType; -} -/** Describes an enum type. */ - -export interface EnumDescriptorProto { - name: string; - value: EnumValueDescriptorProto[]; - options?: EnumOptions; - /** - * 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. - */ - - reservedRange: EnumDescriptorProto_EnumReservedRange[]; - /** - * Reserved enum value names, which may not be reused. A given name may only - * be reserved once. - */ - - reservedName: string[]; -} -/** Describes an enum type. */ - -export interface EnumDescriptorProtoSDKType { - name: string; - value: EnumValueDescriptorProtoSDKType[]; - options?: EnumOptionsSDKType; - reserved_range: EnumDescriptorProto_EnumReservedRangeSDKType[]; - reserved_name: string[]; -} -/** - * 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. - */ - -export interface EnumDescriptorProto_EnumReservedRange { - /** Inclusive. */ - start: number; - /** Inclusive. */ - - end: number; -} -/** - * 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. - */ - -export interface EnumDescriptorProto_EnumReservedRangeSDKType { - start: number; - end: number; -} -/** Describes a value within an enum. */ - -export interface EnumValueDescriptorProto { - name: string; - number: number; - options?: EnumValueOptions; -} -/** Describes a value within an enum. */ - -export interface EnumValueDescriptorProtoSDKType { - name: string; - number: number; - options?: EnumValueOptionsSDKType; -} -/** Describes a service. */ - -export interface ServiceDescriptorProto { - name: string; - method: MethodDescriptorProto[]; - options?: ServiceOptions; -} -/** Describes a service. */ - -export interface ServiceDescriptorProtoSDKType { - name: string; - method: MethodDescriptorProtoSDKType[]; - options?: ServiceOptionsSDKType; -} -/** Describes a method of a service. */ - -export interface MethodDescriptorProto { - name: string; - /** - * Input and output type names. These are resolved in the same way as - * FieldDescriptorProto.type_name, but must refer to a message type. - */ - - inputType: string; - outputType: string; - options?: MethodOptions; - /** Identifies if client streams multiple client messages */ - - clientStreaming: boolean; - /** Identifies if server streams multiple server messages */ - - serverStreaming: boolean; -} -/** Describes a method of a service. */ - -export interface MethodDescriptorProtoSDKType { - name: string; - input_type: string; - output_type: string; - options?: MethodOptionsSDKType; - client_streaming: boolean; - server_streaming: boolean; -} -export interface 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. - */ - javaPackage: string; - /** - * If set, all the classes from the .proto file are wrapped in a single - * outer class with the given name. This applies to both Proto1 - * (equivalent to the old "--one_java_file" option) and Proto2 (where - * a .proto always translates to a single class, but you may want to - * explicitly choose the class name). - */ - - javaOuterClassname: string; - /** - * If set true, 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 outer class - * named by java_outer_classname. However, the outer class will still be - * generated to contain the file's getDescriptor() method as well as any - * top-level extensions defined in the file. - */ - - javaMultipleFiles: boolean; - /** This option does nothing. */ - - /** @deprecated */ - - javaGenerateEqualsAndHash: boolean; - /** - * If set true, then the Java2 code generator will generate code that - * throws an exception whenever an attempt is made to assign a non-UTF-8 - * byte sequence to a string field. - * Message reflection will do the same. - * However, an extension field still accepts non-UTF-8 byte sequences. - * This option has no effect on when used with the lite runtime. - */ - - javaStringCheckUtf8: boolean; - optimizeFor: FileOptions_OptimizeMode; - /** - * 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. - */ - - goPackage: string; - /** - * 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. - */ - - ccGenericServices: boolean; - javaGenericServices: boolean; - pyGenericServices: boolean; - phpGenericServices: boolean; - /** - * 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. - */ - - deprecated: boolean; - /** - * Enables the use of arenas for the proto messages in this file. This applies - * only to generated classes for C++. - */ - - ccEnableArenas: boolean; - /** - * Sets the objective c class prefix which is prepended to all objective c - * generated classes from this .proto. There is no default. - */ - - objcClassPrefix: string; - /** Namespace for generated classes; defaults to the package. */ - - csharpNamespace: string; - /** - * 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. - */ - - swiftPrefix: string; - /** - * Sets the php class prefix which is prepended to all php generated classes - * from this .proto. Default is empty. - */ - - phpClassPrefix: string; - /** - * 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. - */ - - phpNamespace: string; - /** - * 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. - */ - - phpMetadataNamespace: string; - /** - * 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. - */ - - rubyPackage: string; - /** - * The parser stores options it doesn't recognize here. - * See the documentation for the "Options" section above. - */ - - uninterpretedOption: UninterpretedOption[]; -} -export interface FileOptionsSDKType { - java_package: string; - java_outer_classname: string; - java_multiple_files: boolean; - /** @deprecated */ - - java_generate_equals_and_hash: boolean; - java_string_check_utf8: boolean; - optimize_for: FileOptions_OptimizeMode; - go_package: string; - cc_generic_services: boolean; - java_generic_services: boolean; - py_generic_services: boolean; - php_generic_services: boolean; - deprecated: boolean; - cc_enable_arenas: boolean; - objc_class_prefix: string; - csharp_namespace: string; - swift_prefix: string; - php_class_prefix: string; - php_namespace: string; - php_metadata_namespace: string; - ruby_package: string; - uninterpreted_option: UninterpretedOptionSDKType[]; -} -export interface 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. - */ - messageSetWireFormat: boolean; - /** - * 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". - */ - - noStandardDescriptorAccessor: boolean; - /** - * 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. - */ - - deprecated: boolean; - /** - * 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. - */ - - mapEntry: boolean; - /** The parser stores options it doesn't recognize here. See above. */ - - uninterpretedOption: UninterpretedOption[]; -} -export interface MessageOptionsSDKType { - message_set_wire_format: boolean; - no_standard_descriptor_accessor: boolean; - deprecated: boolean; - map_entry: boolean; - uninterpreted_option: UninterpretedOptionSDKType[]; -} -export interface FieldOptions { - /** - * 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 not yet implemented in the open source - * release -- sorry, we'll try to include it in a future version! - */ - ctype: FieldOptions_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. - */ - - packed: boolean; - /** - * 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. - */ - - jstype: FieldOptions_JSType; - /** - * 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 implementations may choose not to check required fields within - * a lazy sub-message. That is, calling IsInitialized() on the outer message - * may return true even if the inner message has missing required fields. - * This is necessary because otherwise the inner message would have to be - * parsed in order to perform the check, defeating the purpose of lazy - * parsing. An implementation which chooses not to check required fields - * must be consistent about it. That is, for any particular sub-message, the - * implementation must either *always* check its required fields, or *never* - * check its required fields, regardless of whether or not the message has - * been parsed. - */ - - lazy: boolean; - /** - * 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. - */ - - deprecated: boolean; - /** For Google-internal migration only. Do not use. */ - - weak: boolean; - /** The parser stores options it doesn't recognize here. See above. */ - - uninterpretedOption: UninterpretedOption[]; -} -export interface FieldOptionsSDKType { - ctype: FieldOptions_CType; - packed: boolean; - jstype: FieldOptions_JSType; - lazy: boolean; - deprecated: boolean; - weak: boolean; - uninterpreted_option: UninterpretedOptionSDKType[]; -} -export interface OneofOptions { - /** The parser stores options it doesn't recognize here. See above. */ - uninterpretedOption: UninterpretedOption[]; -} -export interface OneofOptionsSDKType { - uninterpreted_option: UninterpretedOptionSDKType[]; -} -export interface EnumOptions { - /** - * Set this option to true to allow mapping different tag names to the same - * value. - */ - allowAlias: boolean; - /** - * 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. - */ - - deprecated: boolean; - /** The parser stores options it doesn't recognize here. See above. */ - - uninterpretedOption: UninterpretedOption[]; -} -export interface EnumOptionsSDKType { - allow_alias: boolean; - deprecated: boolean; - uninterpreted_option: UninterpretedOptionSDKType[]; -} -export interface 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. - */ - deprecated: boolean; - /** The parser stores options it doesn't recognize here. See above. */ - - uninterpretedOption: UninterpretedOption[]; -} -export interface EnumValueOptionsSDKType { - deprecated: boolean; - uninterpreted_option: UninterpretedOptionSDKType[]; -} -export interface 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. - */ - deprecated: boolean; - /** The parser stores options it doesn't recognize here. See above. */ - - uninterpretedOption: UninterpretedOption[]; -} -export interface ServiceOptionsSDKType { - deprecated: boolean; - uninterpreted_option: UninterpretedOptionSDKType[]; -} -export interface 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. - */ - deprecated: boolean; - idempotencyLevel: MethodOptions_IdempotencyLevel; - /** The parser stores options it doesn't recognize here. See above. */ - - uninterpretedOption: UninterpretedOption[]; -} -export interface MethodOptionsSDKType { - deprecated: boolean; - idempotency_level: MethodOptions_IdempotencyLevel; - uninterpreted_option: UninterpretedOptionSDKType[]; -} -/** - * 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. - */ - -export interface UninterpretedOption { - name: UninterpretedOption_NamePart[]; - /** - * The value of the uninterpreted option, in whatever type the tokenizer - * identified it as during parsing. Exactly one of these should be set. - */ - - identifierValue: string; - positiveIntValue: Long; - negativeIntValue: Long; - doubleValue: number; - stringValue: Uint8Array; - aggregateValue: string; -} -/** - * 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. - */ - -export interface UninterpretedOptionSDKType { - name: UninterpretedOption_NamePartSDKType[]; - identifier_value: string; - positive_int_value: Long; - negative_int_value: Long; - double_value: number; - string_value: Uint8Array; - aggregate_value: string; -} -/** - * 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], ["qux", false] } represents - * "foo.(bar.baz).qux". - */ - -export interface UninterpretedOption_NamePart { - namePart: string; - isExtension: boolean; -} -/** - * 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], ["qux", false] } represents - * "foo.(bar.baz).qux". - */ - -export interface UninterpretedOption_NamePartSDKType { - name_part: string; - is_extension: boolean; -} -/** - * Encapsulates information about the original source file from which a - * FileDescriptorProto was generated. - */ - -export interface 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. - */ - location: SourceCodeInfo_Location[]; -} -/** - * Encapsulates information about the original source file from which a - * FileDescriptorProto was generated. - */ - -export interface SourceCodeInfoSDKType { - location: SourceCodeInfo_LocationSDKType[]; -} -export interface 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. 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). - */ - path: number[]; - /** - * 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. - */ - - span: number[]; - /** - * 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 qux. - * // - * // Another line attached to qux. - * optional double qux = 4; - * - * // Detached comment for corge. This is not leading or trailing comments - * // to qux 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. - */ - - leadingComments: string; - trailingComments: string; - leadingDetachedComments: string[]; -} -export interface SourceCodeInfo_LocationSDKType { - path: number[]; - span: number[]; - leading_comments: string; - trailing_comments: string; - leading_detached_comments: string[]; -} -/** - * 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. - */ - -export interface GeneratedCodeInfo { - /** - * An Annotation connects some span of text in generated code to an element - * of its generating .proto file. - */ - annotation: GeneratedCodeInfo_Annotation[]; -} -/** - * 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. - */ - -export interface GeneratedCodeInfoSDKType { - annotation: GeneratedCodeInfo_AnnotationSDKType[]; -} -export interface GeneratedCodeInfo_Annotation { - /** - * Identifies the element in the original source .proto file. This field - * is formatted the same as SourceCodeInfo.Location.path. - */ - path: number[]; - /** Identifies the filesystem path to the original source .proto. */ - - sourceFile: string; - /** - * Identifies the starting offset in bytes in the generated code - * that relates to the identified object. - */ - - begin: number; - /** - * Identifies the ending offset in bytes in the generated code that - * relates to the identified offset. The end offset should be one past - * the last relevant byte (so the length of the text = end - begin). - */ - - end: number; -} -export interface GeneratedCodeInfo_AnnotationSDKType { - path: number[]; - source_file: string; - begin: number; - end: number; -} - -function createBaseFileDescriptorSet(): FileDescriptorSet { - return { - file: [] - }; -} - -export const FileDescriptorSet = { - encode(message: FileDescriptorSet, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.file) { - FileDescriptorProto.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): FileDescriptorSet { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseFileDescriptorSet(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.file.push(FileDescriptorProto.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): FileDescriptorSet { - const message = createBaseFileDescriptorSet(); - message.file = object.file?.map(e => FileDescriptorProto.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseFileDescriptorProto(): FileDescriptorProto { - return { - name: "", - package: "", - dependency: [], - publicDependency: [], - weakDependency: [], - messageType: [], - enumType: [], - service: [], - extension: [], - options: undefined, - sourceCodeInfo: undefined, - syntax: "" - }; -} - -export const FileDescriptorProto = { - encode(message: FileDescriptorProto, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.name !== "") { - writer.uint32(10).string(message.name); - } - - if (message.package !== "") { - writer.uint32(18).string(message.package); - } - - for (const v of message.dependency) { - writer.uint32(26).string(v!); - } - - writer.uint32(82).fork(); - - for (const v of message.publicDependency) { - writer.int32(v); - } - - writer.ldelim(); - writer.uint32(90).fork(); - - for (const v of message.weakDependency) { - writer.int32(v); - } - - writer.ldelim(); - - for (const v of message.messageType) { - DescriptorProto.encode(v!, writer.uint32(34).fork()).ldelim(); - } - - for (const v of message.enumType) { - EnumDescriptorProto.encode(v!, writer.uint32(42).fork()).ldelim(); - } - - for (const v of message.service) { - ServiceDescriptorProto.encode(v!, writer.uint32(50).fork()).ldelim(); - } - - for (const v of message.extension) { - FieldDescriptorProto.encode(v!, writer.uint32(58).fork()).ldelim(); - } - - if (message.options !== undefined) { - FileOptions.encode(message.options, writer.uint32(66).fork()).ldelim(); - } - - if (message.sourceCodeInfo !== undefined) { - SourceCodeInfo.encode(message.sourceCodeInfo, writer.uint32(74).fork()).ldelim(); - } - - if (message.syntax !== "") { - writer.uint32(98).string(message.syntax); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): FileDescriptorProto { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseFileDescriptorProto(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - - case 2: - message.package = reader.string(); - break; - - case 3: - message.dependency.push(reader.string()); - break; - - case 10: - if ((tag & 7) === 2) { - const end2 = reader.uint32() + reader.pos; - - while (reader.pos < end2) { - message.publicDependency.push(reader.int32()); - } - } else { - message.publicDependency.push(reader.int32()); - } - - break; - - case 11: - if ((tag & 7) === 2) { - const end2 = reader.uint32() + reader.pos; - - while (reader.pos < end2) { - message.weakDependency.push(reader.int32()); - } - } else { - message.weakDependency.push(reader.int32()); - } - - break; - - case 4: - message.messageType.push(DescriptorProto.decode(reader, reader.uint32())); - break; - - case 5: - message.enumType.push(EnumDescriptorProto.decode(reader, reader.uint32())); - break; - - case 6: - message.service.push(ServiceDescriptorProto.decode(reader, reader.uint32())); - break; - - case 7: - message.extension.push(FieldDescriptorProto.decode(reader, reader.uint32())); - break; - - case 8: - message.options = FileOptions.decode(reader, reader.uint32()); - break; - - case 9: - message.sourceCodeInfo = SourceCodeInfo.decode(reader, reader.uint32()); - break; - - case 12: - message.syntax = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): FileDescriptorProto { - const message = createBaseFileDescriptorProto(); - message.name = object.name ?? ""; - message.package = object.package ?? ""; - message.dependency = object.dependency?.map(e => e) || []; - message.publicDependency = object.publicDependency?.map(e => e) || []; - message.weakDependency = object.weakDependency?.map(e => e) || []; - message.messageType = object.messageType?.map(e => DescriptorProto.fromPartial(e)) || []; - message.enumType = object.enumType?.map(e => EnumDescriptorProto.fromPartial(e)) || []; - message.service = object.service?.map(e => ServiceDescriptorProto.fromPartial(e)) || []; - message.extension = object.extension?.map(e => FieldDescriptorProto.fromPartial(e)) || []; - message.options = object.options !== undefined && object.options !== null ? FileOptions.fromPartial(object.options) : undefined; - message.sourceCodeInfo = object.sourceCodeInfo !== undefined && object.sourceCodeInfo !== null ? SourceCodeInfo.fromPartial(object.sourceCodeInfo) : undefined; - message.syntax = object.syntax ?? ""; - return message; - } - -}; - -function createBaseDescriptorProto(): DescriptorProto { - return { - name: "", - field: [], - extension: [], - nestedType: [], - enumType: [], - extensionRange: [], - oneofDecl: [], - options: undefined, - reservedRange: [], - reservedName: [] - }; -} - -export const DescriptorProto = { - encode(message: DescriptorProto, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.name !== "") { - writer.uint32(10).string(message.name); - } - - for (const v of message.field) { - FieldDescriptorProto.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - for (const v of message.extension) { - FieldDescriptorProto.encode(v!, writer.uint32(50).fork()).ldelim(); - } - - for (const v of message.nestedType) { - DescriptorProto.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - for (const v of message.enumType) { - EnumDescriptorProto.encode(v!, writer.uint32(34).fork()).ldelim(); - } - - for (const v of message.extensionRange) { - DescriptorProto_ExtensionRange.encode(v!, writer.uint32(42).fork()).ldelim(); - } - - for (const v of message.oneofDecl) { - OneofDescriptorProto.encode(v!, writer.uint32(66).fork()).ldelim(); - } - - if (message.options !== undefined) { - MessageOptions.encode(message.options, writer.uint32(58).fork()).ldelim(); - } - - for (const v of message.reservedRange) { - DescriptorProto_ReservedRange.encode(v!, writer.uint32(74).fork()).ldelim(); - } - - for (const v of message.reservedName) { - writer.uint32(82).string(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): DescriptorProto { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDescriptorProto(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - - case 2: - message.field.push(FieldDescriptorProto.decode(reader, reader.uint32())); - break; - - case 6: - message.extension.push(FieldDescriptorProto.decode(reader, reader.uint32())); - break; - - case 3: - message.nestedType.push(DescriptorProto.decode(reader, reader.uint32())); - break; - - case 4: - message.enumType.push(EnumDescriptorProto.decode(reader, reader.uint32())); - break; - - case 5: - message.extensionRange.push(DescriptorProto_ExtensionRange.decode(reader, reader.uint32())); - break; - - case 8: - message.oneofDecl.push(OneofDescriptorProto.decode(reader, reader.uint32())); - break; - - case 7: - message.options = MessageOptions.decode(reader, reader.uint32()); - break; - - case 9: - message.reservedRange.push(DescriptorProto_ReservedRange.decode(reader, reader.uint32())); - break; - - case 10: - message.reservedName.push(reader.string()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): DescriptorProto { - const message = createBaseDescriptorProto(); - message.name = object.name ?? ""; - message.field = object.field?.map(e => FieldDescriptorProto.fromPartial(e)) || []; - message.extension = object.extension?.map(e => FieldDescriptorProto.fromPartial(e)) || []; - message.nestedType = object.nestedType?.map(e => DescriptorProto.fromPartial(e)) || []; - message.enumType = object.enumType?.map(e => EnumDescriptorProto.fromPartial(e)) || []; - message.extensionRange = object.extensionRange?.map(e => DescriptorProto_ExtensionRange.fromPartial(e)) || []; - message.oneofDecl = object.oneofDecl?.map(e => OneofDescriptorProto.fromPartial(e)) || []; - message.options = object.options !== undefined && object.options !== null ? MessageOptions.fromPartial(object.options) : undefined; - message.reservedRange = object.reservedRange?.map(e => DescriptorProto_ReservedRange.fromPartial(e)) || []; - message.reservedName = object.reservedName?.map(e => e) || []; - return message; - } - -}; - -function createBaseDescriptorProto_ExtensionRange(): DescriptorProto_ExtensionRange { - return { - start: 0, - end: 0, - options: undefined - }; -} - -export const DescriptorProto_ExtensionRange = { - encode(message: DescriptorProto_ExtensionRange, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.start !== 0) { - writer.uint32(8).int32(message.start); - } - - if (message.end !== 0) { - writer.uint32(16).int32(message.end); - } - - if (message.options !== undefined) { - ExtensionRangeOptions.encode(message.options, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): DescriptorProto_ExtensionRange { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDescriptorProto_ExtensionRange(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.start = reader.int32(); - break; - - case 2: - message.end = reader.int32(); - break; - - case 3: - message.options = ExtensionRangeOptions.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): DescriptorProto_ExtensionRange { - const message = createBaseDescriptorProto_ExtensionRange(); - message.start = object.start ?? 0; - message.end = object.end ?? 0; - message.options = object.options !== undefined && object.options !== null ? ExtensionRangeOptions.fromPartial(object.options) : undefined; - return message; - } - -}; - -function createBaseDescriptorProto_ReservedRange(): DescriptorProto_ReservedRange { - return { - start: 0, - end: 0 - }; -} - -export const DescriptorProto_ReservedRange = { - encode(message: DescriptorProto_ReservedRange, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.start !== 0) { - writer.uint32(8).int32(message.start); - } - - if (message.end !== 0) { - writer.uint32(16).int32(message.end); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): DescriptorProto_ReservedRange { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDescriptorProto_ReservedRange(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.start = reader.int32(); - break; - - case 2: - message.end = reader.int32(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): DescriptorProto_ReservedRange { - const message = createBaseDescriptorProto_ReservedRange(); - message.start = object.start ?? 0; - message.end = object.end ?? 0; - return message; - } - -}; - -function createBaseExtensionRangeOptions(): ExtensionRangeOptions { - return { - uninterpretedOption: [] - }; -} - -export const ExtensionRangeOptions = { - encode(message: ExtensionRangeOptions, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.uninterpretedOption) { - UninterpretedOption.encode(v!, writer.uint32(7994).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ExtensionRangeOptions { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseExtensionRangeOptions(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 999: - message.uninterpretedOption.push(UninterpretedOption.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ExtensionRangeOptions { - const message = createBaseExtensionRangeOptions(); - message.uninterpretedOption = object.uninterpretedOption?.map(e => UninterpretedOption.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseFieldDescriptorProto(): FieldDescriptorProto { - return { - name: "", - number: 0, - label: 1, - type: 1, - typeName: "", - extendee: "", - defaultValue: "", - oneofIndex: 0, - jsonName: "", - options: undefined - }; -} - -export const FieldDescriptorProto = { - encode(message: FieldDescriptorProto, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.name !== "") { - writer.uint32(10).string(message.name); - } - - if (message.number !== 0) { - writer.uint32(24).int32(message.number); - } - - if (message.label !== 1) { - writer.uint32(32).int32(message.label); - } - - if (message.type !== 1) { - writer.uint32(40).int32(message.type); - } - - if (message.typeName !== "") { - writer.uint32(50).string(message.typeName); - } - - if (message.extendee !== "") { - writer.uint32(18).string(message.extendee); - } - - if (message.defaultValue !== "") { - writer.uint32(58).string(message.defaultValue); - } - - if (message.oneofIndex !== 0) { - writer.uint32(72).int32(message.oneofIndex); - } - - if (message.jsonName !== "") { - writer.uint32(82).string(message.jsonName); - } - - if (message.options !== undefined) { - FieldOptions.encode(message.options, writer.uint32(66).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): FieldDescriptorProto { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseFieldDescriptorProto(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - - case 3: - message.number = reader.int32(); - break; - - case 4: - message.label = (reader.int32() as any); - break; - - case 5: - message.type = (reader.int32() as any); - break; - - case 6: - message.typeName = reader.string(); - break; - - case 2: - message.extendee = reader.string(); - break; - - case 7: - message.defaultValue = reader.string(); - break; - - case 9: - message.oneofIndex = reader.int32(); - break; - - case 10: - message.jsonName = reader.string(); - break; - - case 8: - message.options = FieldOptions.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): FieldDescriptorProto { - const message = createBaseFieldDescriptorProto(); - message.name = object.name ?? ""; - message.number = object.number ?? 0; - message.label = object.label ?? 1; - message.type = object.type ?? 1; - message.typeName = object.typeName ?? ""; - message.extendee = object.extendee ?? ""; - message.defaultValue = object.defaultValue ?? ""; - message.oneofIndex = object.oneofIndex ?? 0; - message.jsonName = object.jsonName ?? ""; - message.options = object.options !== undefined && object.options !== null ? FieldOptions.fromPartial(object.options) : undefined; - return message; - } - -}; - -function createBaseOneofDescriptorProto(): OneofDescriptorProto { - return { - name: "", - options: undefined - }; -} - -export const OneofDescriptorProto = { - encode(message: OneofDescriptorProto, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.name !== "") { - writer.uint32(10).string(message.name); - } - - if (message.options !== undefined) { - OneofOptions.encode(message.options, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): OneofDescriptorProto { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseOneofDescriptorProto(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - - case 2: - message.options = OneofOptions.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): OneofDescriptorProto { - const message = createBaseOneofDescriptorProto(); - message.name = object.name ?? ""; - message.options = object.options !== undefined && object.options !== null ? OneofOptions.fromPartial(object.options) : undefined; - return message; - } - -}; - -function createBaseEnumDescriptorProto(): EnumDescriptorProto { - return { - name: "", - value: [], - options: undefined, - reservedRange: [], - reservedName: [] - }; -} - -export const EnumDescriptorProto = { - encode(message: EnumDescriptorProto, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.name !== "") { - writer.uint32(10).string(message.name); - } - - for (const v of message.value) { - EnumValueDescriptorProto.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - if (message.options !== undefined) { - EnumOptions.encode(message.options, writer.uint32(26).fork()).ldelim(); - } - - for (const v of message.reservedRange) { - EnumDescriptorProto_EnumReservedRange.encode(v!, writer.uint32(34).fork()).ldelim(); - } - - for (const v of message.reservedName) { - writer.uint32(42).string(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): EnumDescriptorProto { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEnumDescriptorProto(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - - case 2: - message.value.push(EnumValueDescriptorProto.decode(reader, reader.uint32())); - break; - - case 3: - message.options = EnumOptions.decode(reader, reader.uint32()); - break; - - case 4: - message.reservedRange.push(EnumDescriptorProto_EnumReservedRange.decode(reader, reader.uint32())); - break; - - case 5: - message.reservedName.push(reader.string()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): EnumDescriptorProto { - const message = createBaseEnumDescriptorProto(); - message.name = object.name ?? ""; - message.value = object.value?.map(e => EnumValueDescriptorProto.fromPartial(e)) || []; - message.options = object.options !== undefined && object.options !== null ? EnumOptions.fromPartial(object.options) : undefined; - message.reservedRange = object.reservedRange?.map(e => EnumDescriptorProto_EnumReservedRange.fromPartial(e)) || []; - message.reservedName = object.reservedName?.map(e => e) || []; - return message; - } - -}; - -function createBaseEnumDescriptorProto_EnumReservedRange(): EnumDescriptorProto_EnumReservedRange { - return { - start: 0, - end: 0 - }; -} - -export const EnumDescriptorProto_EnumReservedRange = { - encode(message: EnumDescriptorProto_EnumReservedRange, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.start !== 0) { - writer.uint32(8).int32(message.start); - } - - if (message.end !== 0) { - writer.uint32(16).int32(message.end); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): EnumDescriptorProto_EnumReservedRange { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEnumDescriptorProto_EnumReservedRange(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.start = reader.int32(); - break; - - case 2: - message.end = reader.int32(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): EnumDescriptorProto_EnumReservedRange { - const message = createBaseEnumDescriptorProto_EnumReservedRange(); - message.start = object.start ?? 0; - message.end = object.end ?? 0; - return message; - } - -}; - -function createBaseEnumValueDescriptorProto(): EnumValueDescriptorProto { - return { - name: "", - number: 0, - options: undefined - }; -} - -export const EnumValueDescriptorProto = { - encode(message: EnumValueDescriptorProto, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.name !== "") { - writer.uint32(10).string(message.name); - } - - if (message.number !== 0) { - writer.uint32(16).int32(message.number); - } - - if (message.options !== undefined) { - EnumValueOptions.encode(message.options, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): EnumValueDescriptorProto { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEnumValueDescriptorProto(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - - case 2: - message.number = reader.int32(); - break; - - case 3: - message.options = EnumValueOptions.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): EnumValueDescriptorProto { - const message = createBaseEnumValueDescriptorProto(); - message.name = object.name ?? ""; - message.number = object.number ?? 0; - message.options = object.options !== undefined && object.options !== null ? EnumValueOptions.fromPartial(object.options) : undefined; - return message; - } - -}; - -function createBaseServiceDescriptorProto(): ServiceDescriptorProto { - return { - name: "", - method: [], - options: undefined - }; -} - -export const ServiceDescriptorProto = { - encode(message: ServiceDescriptorProto, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.name !== "") { - writer.uint32(10).string(message.name); - } - - for (const v of message.method) { - MethodDescriptorProto.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - if (message.options !== undefined) { - ServiceOptions.encode(message.options, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ServiceDescriptorProto { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseServiceDescriptorProto(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - - case 2: - message.method.push(MethodDescriptorProto.decode(reader, reader.uint32())); - break; - - case 3: - message.options = ServiceOptions.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ServiceDescriptorProto { - const message = createBaseServiceDescriptorProto(); - message.name = object.name ?? ""; - message.method = object.method?.map(e => MethodDescriptorProto.fromPartial(e)) || []; - message.options = object.options !== undefined && object.options !== null ? ServiceOptions.fromPartial(object.options) : undefined; - return message; - } - -}; - -function createBaseMethodDescriptorProto(): MethodDescriptorProto { - return { - name: "", - inputType: "", - outputType: "", - options: undefined, - clientStreaming: false, - serverStreaming: false - }; -} - -export const MethodDescriptorProto = { - encode(message: MethodDescriptorProto, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.name !== "") { - writer.uint32(10).string(message.name); - } - - if (message.inputType !== "") { - writer.uint32(18).string(message.inputType); - } - - if (message.outputType !== "") { - writer.uint32(26).string(message.outputType); - } - - if (message.options !== undefined) { - MethodOptions.encode(message.options, writer.uint32(34).fork()).ldelim(); - } - - if (message.clientStreaming === true) { - writer.uint32(40).bool(message.clientStreaming); - } - - if (message.serverStreaming === true) { - writer.uint32(48).bool(message.serverStreaming); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MethodDescriptorProto { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMethodDescriptorProto(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - - case 2: - message.inputType = reader.string(); - break; - - case 3: - message.outputType = reader.string(); - break; - - case 4: - message.options = MethodOptions.decode(reader, reader.uint32()); - break; - - case 5: - message.clientStreaming = reader.bool(); - break; - - case 6: - message.serverStreaming = reader.bool(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MethodDescriptorProto { - const message = createBaseMethodDescriptorProto(); - message.name = object.name ?? ""; - message.inputType = object.inputType ?? ""; - message.outputType = object.outputType ?? ""; - message.options = object.options !== undefined && object.options !== null ? MethodOptions.fromPartial(object.options) : undefined; - message.clientStreaming = object.clientStreaming ?? false; - message.serverStreaming = object.serverStreaming ?? false; - return message; - } - -}; - -function createBaseFileOptions(): FileOptions { - return { - javaPackage: "", - javaOuterClassname: "", - javaMultipleFiles: false, - javaGenerateEqualsAndHash: false, - javaStringCheckUtf8: false, - optimizeFor: 1, - goPackage: "", - ccGenericServices: false, - javaGenericServices: false, - pyGenericServices: false, - phpGenericServices: false, - deprecated: false, - ccEnableArenas: false, - objcClassPrefix: "", - csharpNamespace: "", - swiftPrefix: "", - phpClassPrefix: "", - phpNamespace: "", - phpMetadataNamespace: "", - rubyPackage: "", - uninterpretedOption: [] - }; -} - -export const FileOptions = { - encode(message: FileOptions, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.javaPackage !== "") { - writer.uint32(10).string(message.javaPackage); - } - - if (message.javaOuterClassname !== "") { - writer.uint32(66).string(message.javaOuterClassname); - } - - if (message.javaMultipleFiles === true) { - writer.uint32(80).bool(message.javaMultipleFiles); - } - - if (message.javaGenerateEqualsAndHash === true) { - writer.uint32(160).bool(message.javaGenerateEqualsAndHash); - } - - if (message.javaStringCheckUtf8 === true) { - writer.uint32(216).bool(message.javaStringCheckUtf8); - } - - if (message.optimizeFor !== 1) { - writer.uint32(72).int32(message.optimizeFor); - } - - if (message.goPackage !== "") { - writer.uint32(90).string(message.goPackage); - } - - if (message.ccGenericServices === true) { - writer.uint32(128).bool(message.ccGenericServices); - } - - if (message.javaGenericServices === true) { - writer.uint32(136).bool(message.javaGenericServices); - } - - if (message.pyGenericServices === true) { - writer.uint32(144).bool(message.pyGenericServices); - } - - if (message.phpGenericServices === true) { - writer.uint32(336).bool(message.phpGenericServices); - } - - if (message.deprecated === true) { - writer.uint32(184).bool(message.deprecated); - } - - if (message.ccEnableArenas === true) { - writer.uint32(248).bool(message.ccEnableArenas); - } - - if (message.objcClassPrefix !== "") { - writer.uint32(290).string(message.objcClassPrefix); - } - - if (message.csharpNamespace !== "") { - writer.uint32(298).string(message.csharpNamespace); - } - - if (message.swiftPrefix !== "") { - writer.uint32(314).string(message.swiftPrefix); - } - - if (message.phpClassPrefix !== "") { - writer.uint32(322).string(message.phpClassPrefix); - } - - if (message.phpNamespace !== "") { - writer.uint32(330).string(message.phpNamespace); - } - - if (message.phpMetadataNamespace !== "") { - writer.uint32(354).string(message.phpMetadataNamespace); - } - - if (message.rubyPackage !== "") { - writer.uint32(362).string(message.rubyPackage); - } - - for (const v of message.uninterpretedOption) { - UninterpretedOption.encode(v!, writer.uint32(7994).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): FileOptions { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseFileOptions(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.javaPackage = reader.string(); - break; - - case 8: - message.javaOuterClassname = reader.string(); - break; - - case 10: - message.javaMultipleFiles = reader.bool(); - break; - - case 20: - message.javaGenerateEqualsAndHash = reader.bool(); - break; - - case 27: - message.javaStringCheckUtf8 = reader.bool(); - break; - - case 9: - message.optimizeFor = (reader.int32() as any); - break; - - case 11: - message.goPackage = reader.string(); - break; - - case 16: - message.ccGenericServices = reader.bool(); - break; - - case 17: - message.javaGenericServices = reader.bool(); - break; - - case 18: - message.pyGenericServices = reader.bool(); - break; - - case 42: - message.phpGenericServices = reader.bool(); - break; - - case 23: - message.deprecated = reader.bool(); - break; - - case 31: - message.ccEnableArenas = reader.bool(); - break; - - case 36: - message.objcClassPrefix = reader.string(); - break; - - case 37: - message.csharpNamespace = reader.string(); - break; - - case 39: - message.swiftPrefix = reader.string(); - break; - - case 40: - message.phpClassPrefix = reader.string(); - break; - - case 41: - message.phpNamespace = reader.string(); - break; - - case 44: - message.phpMetadataNamespace = reader.string(); - break; - - case 45: - message.rubyPackage = reader.string(); - break; - - case 999: - message.uninterpretedOption.push(UninterpretedOption.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): FileOptions { - const message = createBaseFileOptions(); - message.javaPackage = object.javaPackage ?? ""; - message.javaOuterClassname = object.javaOuterClassname ?? ""; - message.javaMultipleFiles = object.javaMultipleFiles ?? false; - message.javaGenerateEqualsAndHash = object.javaGenerateEqualsAndHash ?? false; - message.javaStringCheckUtf8 = object.javaStringCheckUtf8 ?? false; - message.optimizeFor = object.optimizeFor ?? 1; - message.goPackage = object.goPackage ?? ""; - message.ccGenericServices = object.ccGenericServices ?? false; - message.javaGenericServices = object.javaGenericServices ?? false; - message.pyGenericServices = object.pyGenericServices ?? false; - message.phpGenericServices = object.phpGenericServices ?? false; - message.deprecated = object.deprecated ?? false; - message.ccEnableArenas = object.ccEnableArenas ?? false; - message.objcClassPrefix = object.objcClassPrefix ?? ""; - message.csharpNamespace = object.csharpNamespace ?? ""; - message.swiftPrefix = object.swiftPrefix ?? ""; - message.phpClassPrefix = object.phpClassPrefix ?? ""; - message.phpNamespace = object.phpNamespace ?? ""; - message.phpMetadataNamespace = object.phpMetadataNamespace ?? ""; - message.rubyPackage = object.rubyPackage ?? ""; - message.uninterpretedOption = object.uninterpretedOption?.map(e => UninterpretedOption.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseMessageOptions(): MessageOptions { - return { - messageSetWireFormat: false, - noStandardDescriptorAccessor: false, - deprecated: false, - mapEntry: false, - uninterpretedOption: [] - }; -} - -export const MessageOptions = { - encode(message: MessageOptions, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.messageSetWireFormat === true) { - writer.uint32(8).bool(message.messageSetWireFormat); - } - - if (message.noStandardDescriptorAccessor === true) { - writer.uint32(16).bool(message.noStandardDescriptorAccessor); - } - - if (message.deprecated === true) { - writer.uint32(24).bool(message.deprecated); - } - - if (message.mapEntry === true) { - writer.uint32(56).bool(message.mapEntry); - } - - for (const v of message.uninterpretedOption) { - UninterpretedOption.encode(v!, writer.uint32(7994).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MessageOptions { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMessageOptions(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.messageSetWireFormat = reader.bool(); - break; - - case 2: - message.noStandardDescriptorAccessor = reader.bool(); - break; - - case 3: - message.deprecated = reader.bool(); - break; - - case 7: - message.mapEntry = reader.bool(); - break; - - case 999: - message.uninterpretedOption.push(UninterpretedOption.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MessageOptions { - const message = createBaseMessageOptions(); - message.messageSetWireFormat = object.messageSetWireFormat ?? false; - message.noStandardDescriptorAccessor = object.noStandardDescriptorAccessor ?? false; - message.deprecated = object.deprecated ?? false; - message.mapEntry = object.mapEntry ?? false; - message.uninterpretedOption = object.uninterpretedOption?.map(e => UninterpretedOption.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseFieldOptions(): FieldOptions { - return { - ctype: 1, - packed: false, - jstype: 1, - lazy: false, - deprecated: false, - weak: false, - uninterpretedOption: [] - }; -} - -export const FieldOptions = { - encode(message: FieldOptions, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.ctype !== 1) { - writer.uint32(8).int32(message.ctype); - } - - if (message.packed === true) { - writer.uint32(16).bool(message.packed); - } - - if (message.jstype !== 1) { - writer.uint32(48).int32(message.jstype); - } - - if (message.lazy === true) { - writer.uint32(40).bool(message.lazy); - } - - if (message.deprecated === true) { - writer.uint32(24).bool(message.deprecated); - } - - if (message.weak === true) { - writer.uint32(80).bool(message.weak); - } - - for (const v of message.uninterpretedOption) { - UninterpretedOption.encode(v!, writer.uint32(7994).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): FieldOptions { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseFieldOptions(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.ctype = (reader.int32() as any); - break; - - case 2: - message.packed = reader.bool(); - break; - - case 6: - message.jstype = (reader.int32() as any); - break; - - case 5: - message.lazy = reader.bool(); - break; - - case 3: - message.deprecated = reader.bool(); - break; - - case 10: - message.weak = reader.bool(); - break; - - case 999: - message.uninterpretedOption.push(UninterpretedOption.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): FieldOptions { - const message = createBaseFieldOptions(); - message.ctype = object.ctype ?? 1; - message.packed = object.packed ?? false; - message.jstype = object.jstype ?? 1; - message.lazy = object.lazy ?? false; - message.deprecated = object.deprecated ?? false; - message.weak = object.weak ?? false; - message.uninterpretedOption = object.uninterpretedOption?.map(e => UninterpretedOption.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseOneofOptions(): OneofOptions { - return { - uninterpretedOption: [] - }; -} - -export const OneofOptions = { - encode(message: OneofOptions, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.uninterpretedOption) { - UninterpretedOption.encode(v!, writer.uint32(7994).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): OneofOptions { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseOneofOptions(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 999: - message.uninterpretedOption.push(UninterpretedOption.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): OneofOptions { - const message = createBaseOneofOptions(); - message.uninterpretedOption = object.uninterpretedOption?.map(e => UninterpretedOption.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseEnumOptions(): EnumOptions { - return { - allowAlias: false, - deprecated: false, - uninterpretedOption: [] - }; -} - -export const EnumOptions = { - encode(message: EnumOptions, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.allowAlias === true) { - writer.uint32(16).bool(message.allowAlias); - } - - if (message.deprecated === true) { - writer.uint32(24).bool(message.deprecated); - } - - for (const v of message.uninterpretedOption) { - UninterpretedOption.encode(v!, writer.uint32(7994).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): EnumOptions { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEnumOptions(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 2: - message.allowAlias = reader.bool(); - break; - - case 3: - message.deprecated = reader.bool(); - break; - - case 999: - message.uninterpretedOption.push(UninterpretedOption.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): EnumOptions { - const message = createBaseEnumOptions(); - message.allowAlias = object.allowAlias ?? false; - message.deprecated = object.deprecated ?? false; - message.uninterpretedOption = object.uninterpretedOption?.map(e => UninterpretedOption.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseEnumValueOptions(): EnumValueOptions { - return { - deprecated: false, - uninterpretedOption: [] - }; -} - -export const EnumValueOptions = { - encode(message: EnumValueOptions, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.deprecated === true) { - writer.uint32(8).bool(message.deprecated); - } - - for (const v of message.uninterpretedOption) { - UninterpretedOption.encode(v!, writer.uint32(7994).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): EnumValueOptions { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEnumValueOptions(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.deprecated = reader.bool(); - break; - - case 999: - message.uninterpretedOption.push(UninterpretedOption.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): EnumValueOptions { - const message = createBaseEnumValueOptions(); - message.deprecated = object.deprecated ?? false; - message.uninterpretedOption = object.uninterpretedOption?.map(e => UninterpretedOption.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseServiceOptions(): ServiceOptions { - return { - deprecated: false, - uninterpretedOption: [] - }; -} - -export const ServiceOptions = { - encode(message: ServiceOptions, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.deprecated === true) { - writer.uint32(264).bool(message.deprecated); - } - - for (const v of message.uninterpretedOption) { - UninterpretedOption.encode(v!, writer.uint32(7994).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ServiceOptions { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseServiceOptions(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 33: - message.deprecated = reader.bool(); - break; - - case 999: - message.uninterpretedOption.push(UninterpretedOption.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ServiceOptions { - const message = createBaseServiceOptions(); - message.deprecated = object.deprecated ?? false; - message.uninterpretedOption = object.uninterpretedOption?.map(e => UninterpretedOption.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseMethodOptions(): MethodOptions { - return { - deprecated: false, - idempotencyLevel: 1, - uninterpretedOption: [] - }; -} - -export const MethodOptions = { - encode(message: MethodOptions, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.deprecated === true) { - writer.uint32(264).bool(message.deprecated); - } - - if (message.idempotencyLevel !== 1) { - writer.uint32(272).int32(message.idempotencyLevel); - } - - for (const v of message.uninterpretedOption) { - UninterpretedOption.encode(v!, writer.uint32(7994).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MethodOptions { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMethodOptions(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 33: - message.deprecated = reader.bool(); - break; - - case 34: - message.idempotencyLevel = (reader.int32() as any); - break; - - case 999: - message.uninterpretedOption.push(UninterpretedOption.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MethodOptions { - const message = createBaseMethodOptions(); - message.deprecated = object.deprecated ?? false; - message.idempotencyLevel = object.idempotencyLevel ?? 1; - message.uninterpretedOption = object.uninterpretedOption?.map(e => UninterpretedOption.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseUninterpretedOption(): UninterpretedOption { - return { - name: [], - identifierValue: "", - positiveIntValue: Long.UZERO, - negativeIntValue: Long.ZERO, - doubleValue: 0, - stringValue: new Uint8Array(), - aggregateValue: "" - }; -} - -export const UninterpretedOption = { - encode(message: UninterpretedOption, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.name) { - UninterpretedOption_NamePart.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - if (message.identifierValue !== "") { - writer.uint32(26).string(message.identifierValue); - } - - if (!message.positiveIntValue.isZero()) { - writer.uint32(32).uint64(message.positiveIntValue); - } - - if (!message.negativeIntValue.isZero()) { - writer.uint32(40).int64(message.negativeIntValue); - } - - if (message.doubleValue !== 0) { - writer.uint32(49).double(message.doubleValue); - } - - if (message.stringValue.length !== 0) { - writer.uint32(58).bytes(message.stringValue); - } - - if (message.aggregateValue !== "") { - writer.uint32(66).string(message.aggregateValue); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): UninterpretedOption { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseUninterpretedOption(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 2: - message.name.push(UninterpretedOption_NamePart.decode(reader, reader.uint32())); - break; - - case 3: - message.identifierValue = reader.string(); - break; - - case 4: - message.positiveIntValue = (reader.uint64() as Long); - break; - - case 5: - message.negativeIntValue = (reader.int64() as Long); - break; - - case 6: - message.doubleValue = reader.double(); - break; - - case 7: - message.stringValue = reader.bytes(); - break; - - case 8: - message.aggregateValue = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): UninterpretedOption { - const message = createBaseUninterpretedOption(); - message.name = object.name?.map(e => UninterpretedOption_NamePart.fromPartial(e)) || []; - message.identifierValue = object.identifierValue ?? ""; - message.positiveIntValue = object.positiveIntValue !== undefined && object.positiveIntValue !== null ? Long.fromValue(object.positiveIntValue) : Long.UZERO; - message.negativeIntValue = object.negativeIntValue !== undefined && object.negativeIntValue !== null ? Long.fromValue(object.negativeIntValue) : Long.ZERO; - message.doubleValue = object.doubleValue ?? 0; - message.stringValue = object.stringValue ?? new Uint8Array(); - message.aggregateValue = object.aggregateValue ?? ""; - return message; - } - -}; - -function createBaseUninterpretedOption_NamePart(): UninterpretedOption_NamePart { - return { - namePart: "", - isExtension: false - }; -} - -export const UninterpretedOption_NamePart = { - encode(message: UninterpretedOption_NamePart, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.namePart !== "") { - writer.uint32(10).string(message.namePart); - } - - if (message.isExtension === true) { - writer.uint32(16).bool(message.isExtension); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): UninterpretedOption_NamePart { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseUninterpretedOption_NamePart(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.namePart = reader.string(); - break; - - case 2: - message.isExtension = reader.bool(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): UninterpretedOption_NamePart { - const message = createBaseUninterpretedOption_NamePart(); - message.namePart = object.namePart ?? ""; - message.isExtension = object.isExtension ?? false; - return message; - } - -}; - -function createBaseSourceCodeInfo(): SourceCodeInfo { - return { - location: [] - }; -} - -export const SourceCodeInfo = { - encode(message: SourceCodeInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.location) { - SourceCodeInfo_Location.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SourceCodeInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSourceCodeInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.location.push(SourceCodeInfo_Location.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SourceCodeInfo { - const message = createBaseSourceCodeInfo(); - message.location = object.location?.map(e => SourceCodeInfo_Location.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseSourceCodeInfo_Location(): SourceCodeInfo_Location { - return { - path: [], - span: [], - leadingComments: "", - trailingComments: "", - leadingDetachedComments: [] - }; -} - -export const SourceCodeInfo_Location = { - encode(message: SourceCodeInfo_Location, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - writer.uint32(10).fork(); - - for (const v of message.path) { - writer.int32(v); - } - - writer.ldelim(); - writer.uint32(18).fork(); - - for (const v of message.span) { - writer.int32(v); - } - - writer.ldelim(); - - if (message.leadingComments !== "") { - writer.uint32(26).string(message.leadingComments); - } - - if (message.trailingComments !== "") { - writer.uint32(34).string(message.trailingComments); - } - - for (const v of message.leadingDetachedComments) { - writer.uint32(50).string(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SourceCodeInfo_Location { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSourceCodeInfo_Location(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - if ((tag & 7) === 2) { - const end2 = reader.uint32() + reader.pos; - - while (reader.pos < end2) { - message.path.push(reader.int32()); - } - } else { - message.path.push(reader.int32()); - } - - break; - - case 2: - if ((tag & 7) === 2) { - const end2 = reader.uint32() + reader.pos; - - while (reader.pos < end2) { - message.span.push(reader.int32()); - } - } else { - message.span.push(reader.int32()); - } - - break; - - case 3: - message.leadingComments = reader.string(); - break; - - case 4: - message.trailingComments = reader.string(); - break; - - case 6: - message.leadingDetachedComments.push(reader.string()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SourceCodeInfo_Location { - const message = createBaseSourceCodeInfo_Location(); - message.path = object.path?.map(e => e) || []; - message.span = object.span?.map(e => e) || []; - message.leadingComments = object.leadingComments ?? ""; - message.trailingComments = object.trailingComments ?? ""; - message.leadingDetachedComments = object.leadingDetachedComments?.map(e => e) || []; - return message; - } - -}; - -function createBaseGeneratedCodeInfo(): GeneratedCodeInfo { - return { - annotation: [] - }; -} - -export const GeneratedCodeInfo = { - encode(message: GeneratedCodeInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.annotation) { - GeneratedCodeInfo_Annotation.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GeneratedCodeInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGeneratedCodeInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.annotation.push(GeneratedCodeInfo_Annotation.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GeneratedCodeInfo { - const message = createBaseGeneratedCodeInfo(); - message.annotation = object.annotation?.map(e => GeneratedCodeInfo_Annotation.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseGeneratedCodeInfo_Annotation(): GeneratedCodeInfo_Annotation { - return { - path: [], - sourceFile: "", - begin: 0, - end: 0 - }; -} - -export const GeneratedCodeInfo_Annotation = { - encode(message: GeneratedCodeInfo_Annotation, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - writer.uint32(10).fork(); - - for (const v of message.path) { - writer.int32(v); - } - - writer.ldelim(); - - if (message.sourceFile !== "") { - writer.uint32(18).string(message.sourceFile); - } - - if (message.begin !== 0) { - writer.uint32(24).int32(message.begin); - } - - if (message.end !== 0) { - writer.uint32(32).int32(message.end); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GeneratedCodeInfo_Annotation { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGeneratedCodeInfo_Annotation(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - if ((tag & 7) === 2) { - const end2 = reader.uint32() + reader.pos; - - while (reader.pos < end2) { - message.path.push(reader.int32()); - } - } else { - message.path.push(reader.int32()); - } - - break; - - case 2: - message.sourceFile = reader.string(); - break; - - case 3: - message.begin = reader.int32(); - break; - - case 4: - message.end = reader.int32(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GeneratedCodeInfo_Annotation { - const message = createBaseGeneratedCodeInfo_Annotation(); - message.path = object.path?.map(e => e) || []; - message.sourceFile = object.sourceFile ?? ""; - message.begin = object.begin ?? 0; - message.end = object.end ?? 0; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/google/protobuf/duration.ts b/packages/codegen/src/google/protobuf/duration.ts deleted file mode 100644 index 620a27d1..00000000 --- a/packages/codegen/src/google/protobuf/duration.ts +++ /dev/null @@ -1,201 +0,0 @@ -import { Long, DeepPartial } from "../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * 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 (durations.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". - */ - -export interface 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 - */ - seconds: Long; - /** - * 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. - */ - - nanos: number; -} -/** - * 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 (durations.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". - */ - -export interface DurationSDKType { - seconds: Long; - nanos: number; -} - -function createBaseDuration(): Duration { - return { - seconds: Long.ZERO, - nanos: 0 - }; -} - -export const Duration = { - encode(message: Duration, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.seconds.isZero()) { - writer.uint32(8).int64(message.seconds); - } - - if (message.nanos !== 0) { - writer.uint32(16).int32(message.nanos); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Duration { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDuration(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.seconds = (reader.int64() as Long); - break; - - case 2: - message.nanos = reader.int32(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Duration { - const message = createBaseDuration(); - message.seconds = object.seconds !== undefined && object.seconds !== null ? Long.fromValue(object.seconds) : Long.ZERO; - message.nanos = object.nanos ?? 0; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/google/protobuf/empty.ts b/packages/codegen/src/google/protobuf/empty.ts deleted file mode 100644 index 16b43f97..00000000 --- a/packages/codegen/src/google/protobuf/empty.ts +++ /dev/null @@ -1,62 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../helpers"; -/** - * A generic empty message that you can re-use to avoid defining duplicated - * empty messages in your APIs. A typical example is to use it as the request - * or the response type of an API method. For instance: - * - * service Foo { - * rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); - * } - * - * The JSON representation for `Empty` is empty JSON object `{}`. - */ - -export interface Empty {} -/** - * A generic empty message that you can re-use to avoid defining duplicated - * empty messages in your APIs. A typical example is to use it as the request - * or the response type of an API method. For instance: - * - * service Foo { - * rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); - * } - * - * The JSON representation for `Empty` is empty JSON object `{}`. - */ - -export interface EmptySDKType {} - -function createBaseEmpty(): Empty { - return {}; -} - -export const Empty = { - encode(_: Empty, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Empty { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEmpty(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): Empty { - const message = createBaseEmpty(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/google/protobuf/timestamp.ts b/packages/codegen/src/google/protobuf/timestamp.ts deleted file mode 100644 index 3bb95f53..00000000 --- a/packages/codegen/src/google/protobuf/timestamp.ts +++ /dev/null @@ -1,247 +0,0 @@ -import { Long, DeepPartial } from "../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * 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 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://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D - * ) to obtain a formatter capable of generating timestamps in this format. - */ - -export interface 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. - */ - seconds: Long; - /** - * 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. - */ - - nanos: number; -} -/** - * 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 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://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D - * ) to obtain a formatter capable of generating timestamps in this format. - */ - -export interface TimestampSDKType { - seconds: Long; - nanos: number; -} - -function createBaseTimestamp(): Timestamp { - return { - seconds: Long.ZERO, - nanos: 0 - }; -} - -export const Timestamp = { - encode(message: Timestamp, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.seconds.isZero()) { - writer.uint32(8).int64(message.seconds); - } - - if (message.nanos !== 0) { - writer.uint32(16).int32(message.nanos); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Timestamp { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTimestamp(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.seconds = (reader.int64() as Long); - break; - - case 2: - message.nanos = reader.int32(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Timestamp { - const message = createBaseTimestamp(); - message.seconds = object.seconds !== undefined && object.seconds !== null ? Long.fromValue(object.seconds) : Long.ZERO; - message.nanos = object.nanos ?? 0; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/helpers.ts b/packages/codegen/src/helpers.ts deleted file mode 100644 index 67359aa7..00000000 --- a/packages/codegen/src/helpers.ts +++ /dev/null @@ -1,242 +0,0 @@ -/** -* This file and any referenced files were automatically generated by @osmonauts/telescope@0.88.2 -* DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain -* and run the transpile command or yarn proto command to regenerate this bundle. -*/ - -import * as _m0 from "protobufjs/minimal"; -import Long from 'long'; - -// @ts-ignore -if (_m0.util.Long !== Long) { - _m0.util.Long = (Long as any); - - _m0.configure(); -} - -export { Long }; - -declare var self: any | undefined; -declare var window: any | undefined; -declare var global: any | undefined; -var globalThis: any = (() => { - if (typeof globalThis !== 'undefined') return globalThis; - if (typeof self !== 'undefined') return self; - if (typeof window !== 'undefined') return window; - if (typeof global !== 'undefined') return global; - throw 'Unable to locate global object'; -})(); - -const atob: (b64: string) => string = - globalThis.atob || ((b64) => globalThis.Buffer.from(b64, 'base64').toString('binary')); - -export function bytesFromBase64(b64: string): Uint8Array { - const bin = atob(b64); - const arr = new Uint8Array(bin.length); - for (let i = 0; i < bin.length; ++i) { - arr[i] = bin.charCodeAt(i); - } - return arr; -} - -const btoa: (bin: string) => string = - globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, 'binary').toString('base64')); - -export function base64FromBytes(arr: Uint8Array): string { - const bin: string[] = []; - arr.forEach((byte) => { - bin.push(String.fromCharCode(byte)); - }); - return btoa(bin.join('')); -} - -export interface AminoHeight { - readonly revision_number?: string; - readonly revision_height?: string; -}; - -export function omitDefault(input: T): T | undefined { - if (typeof input === "string") { - return input === "" ? undefined : input; - } - - if (typeof input === "number") { - return input === 0 ? undefined : input; - } - - if (Long.isLong(input)) { - return input.isZero() ? undefined : input; - } - - throw new Error(`Got unsupported type ${typeof input}`); -}; - -interface 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 - */ - seconds: Long; - /** - * 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. - */ - - nanos: number; -} - -export function toDuration(duration: string): Duration { - return { - seconds: Long.fromNumber(Math.floor(parseInt(duration) / 1000000000)), - nanos: parseInt(duration) % 1000000000 - }; -}; - -export function fromDuration(duration: Duration): string { - return (parseInt(duration.seconds.toString()) * 1000000000 + duration.nanos).toString(); -}; - -export function isSet(value: any): boolean { - return value !== null && value !== undefined; -}; - -export function isObject(value: any): boolean { - return typeof value === 'object' && value !== null; -}; - -export interface PageRequest { - key: Uint8Array; - offset: Long; - limit: Long; - countTotal: boolean; - reverse: boolean; -}; - -export interface PageRequestParams { - "pagination.key"?: string; - "pagination.offset"?: string; - "pagination.limit"?: string; - "pagination.count_total"?: boolean; - "pagination.reverse"?: boolean; -}; - -export interface Params { - params: PageRequestParams; -}; - -export const setPaginationParams = (options: Params, pagination?: PageRequest) => { - - if (!pagination) { - return options; - } - - if (typeof pagination?.countTotal !== "undefined") { - options.params['pagination.count_total'] = pagination.countTotal; - } - if (typeof pagination?.key !== "undefined") { - // String to Uint8Array - // let uint8arr = new Uint8Array(Buffer.from(data,'base64')); - - // Uint8Array to String - options.params['pagination.key'] = Buffer.from(pagination.key).toString('base64'); - } - if (typeof pagination?.limit !== "undefined") { - options.params["pagination.limit"] = pagination.limit.toString() - } - if (typeof pagination?.offset !== "undefined") { - options.params["pagination.offset"] = pagination.offset.toString() - } - if (typeof pagination?.reverse !== "undefined") { - options.params['pagination.reverse'] = pagination.reverse; - } - - return options; -}; - -type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; - -export type DeepPartial = T extends Builtin - ? T - : T extends Long - ? string | number | Long - : T extends Array - ? Array> - : T extends ReadonlyArray - ? ReadonlyArray> - : T extends {} - ? { [K in keyof T]?: DeepPartial } - : Partial; - -type KeysOfUnion = T extends T ? keyof T : never; -export type Exact = P extends Builtin - ? P - : P & { [K in keyof P]: Exact } & Record>, never>; - -export interface Rpc { - request(service: string, method: string, data: Uint8Array): Promise; -}; - -interface 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. - */ - seconds: Long; - /** - * 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. - */ - - nanos: number; -} - -export function toTimestamp(date: Date): Timestamp { - const seconds = numberToLong(date.getTime() / 1_000); - const nanos = date.getTime() % 1000 * 1000000; - return { - seconds, - nanos - }; -}; - -export function fromTimestamp(t: Timestamp): Date { - let millis = t.seconds.toNumber() * 1000; - millis += t.nanos / 1000000; - return new Date(millis); -}; - -const fromJSON = (object: any): Timestamp => { - return { - seconds: isSet(object.seconds) ? Long.fromString(object.seconds) : Long.ZERO, - nanos: isSet(object.nanos) ? Number(object.nanos) : 0 - }; -}; - -const timestampFromJSON = (object: any): Timestamp => { - return { - seconds: isSet(object.seconds) ? Long.fromValue(object.seconds) : Long.ZERO, - nanos: isSet(object.nanos) ? Number(object.nanos) : 0, - }; -} - -export function fromJsonTimestamp(o: any): Timestamp { - if (o instanceof Date) { - return toTimestamp(o); - } else if (typeof o === "string") { - return toTimestamp(new Date(o)); - } else { - return timestampFromJSON(o); - } -} - -function numberToLong(number: number) { - return Long.fromNumber(number); -} diff --git a/packages/codegen/src/ibc/applications/transfer/v1/genesis.ts b/packages/codegen/src/ibc/applications/transfer/v1/genesis.ts deleted file mode 100644 index a44fcba3..00000000 --- a/packages/codegen/src/ibc/applications/transfer/v1/genesis.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { DenomTrace, DenomTraceSDKType, Params, ParamsSDKType } from "./transfer"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** GenesisState defines the ibc-transfer genesis state */ - -export interface GenesisState { - portId: string; - denomTraces: DenomTrace[]; - params?: Params; -} -/** GenesisState defines the ibc-transfer genesis state */ - -export interface GenesisStateSDKType { - port_id: string; - denom_traces: DenomTraceSDKType[]; - params?: ParamsSDKType; -} - -function createBaseGenesisState(): GenesisState { - return { - portId: "", - denomTraces: [], - params: undefined - }; -} - -export const GenesisState = { - encode(message: GenesisState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.portId !== "") { - writer.uint32(10).string(message.portId); - } - - for (const v of message.denomTraces) { - DenomTrace.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - if (message.params !== undefined) { - Params.encode(message.params, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.portId = reader.string(); - break; - - case 2: - message.denomTraces.push(DenomTrace.decode(reader, reader.uint32())); - break; - - case 3: - message.params = Params.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenesisState { - const message = createBaseGenesisState(); - message.portId = object.portId ?? ""; - message.denomTraces = object.denomTraces?.map(e => DenomTrace.fromPartial(e)) || []; - message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/applications/transfer/v1/query.lcd.ts b/packages/codegen/src/ibc/applications/transfer/v1/query.lcd.ts deleted file mode 100644 index 7bce53a4..00000000 --- a/packages/codegen/src/ibc/applications/transfer/v1/query.lcd.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { setPaginationParams } from "../../../../helpers"; -import { LCDClient } from "@osmonauts/lcd"; -import { QueryDenomTraceRequest, QueryDenomTraceResponseSDKType, QueryDenomTracesRequest, QueryDenomTracesResponseSDKType, QueryParamsRequest, QueryParamsResponseSDKType } from "./query"; -export class LCDQueryClient { - req: LCDClient; - - constructor({ - requestClient - }: { - requestClient: LCDClient; - }) { - this.req = requestClient; - this.denomTrace = this.denomTrace.bind(this); - this.denomTraces = this.denomTraces.bind(this); - this.params = this.params.bind(this); - } - /* DenomTrace queries a denomination trace information. */ - - - async denomTrace(params: QueryDenomTraceRequest): Promise { - const endpoint = `ibc/apps/transfer/v1/denom_traces/${params.hash}`; - return await this.req.get(endpoint); - } - /* DenomTraces queries all denomination traces. */ - - - async denomTraces(params: QueryDenomTracesRequest = { - pagination: undefined - }): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `ibc/apps/transfer/v1/denom_traces`; - return await this.req.get(endpoint, options); - } - /* Params queries all parameters of the ibc-transfer module. */ - - - async params(_params: QueryParamsRequest = {}): Promise { - const endpoint = `ibc/apps/transfer/v1/params`; - return await this.req.get(endpoint); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/ibc/applications/transfer/v1/query.rpc.Query.ts b/packages/codegen/src/ibc/applications/transfer/v1/query.rpc.Query.ts deleted file mode 100644 index 62b2cc99..00000000 --- a/packages/codegen/src/ibc/applications/transfer/v1/query.rpc.Query.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { Rpc } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { QueryDenomTraceRequest, QueryDenomTraceResponse, QueryDenomTracesRequest, QueryDenomTracesResponse, QueryParamsRequest, QueryParamsResponse } from "./query"; -/** Query provides defines the gRPC querier service. */ - -export interface Query { - /** DenomTrace queries a denomination trace information. */ - denomTrace(request: QueryDenomTraceRequest): Promise; - /** DenomTraces queries all denomination traces. */ - - denomTraces(request?: QueryDenomTracesRequest): Promise; - /** Params queries all parameters of the ibc-transfer module. */ - - params(request?: QueryParamsRequest): Promise; -} -export class QueryClientImpl implements Query { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.denomTrace = this.denomTrace.bind(this); - this.denomTraces = this.denomTraces.bind(this); - this.params = this.params.bind(this); - } - - denomTrace(request: QueryDenomTraceRequest): Promise { - const data = QueryDenomTraceRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.applications.transfer.v1.Query", "DenomTrace", data); - return promise.then(data => QueryDenomTraceResponse.decode(new _m0.Reader(data))); - } - - denomTraces(request: QueryDenomTracesRequest = { - pagination: undefined - }): Promise { - const data = QueryDenomTracesRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.applications.transfer.v1.Query", "DenomTraces", data); - return promise.then(data => QueryDenomTracesResponse.decode(new _m0.Reader(data))); - } - - params(request: QueryParamsRequest = {}): Promise { - const data = QueryParamsRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.applications.transfer.v1.Query", "Params", data); - return promise.then(data => QueryParamsResponse.decode(new _m0.Reader(data))); - } - -} -export const createRpcQueryExtension = (base: QueryClient) => { - const rpc = createProtobufRpcClient(base); - const queryService = new QueryClientImpl(rpc); - return { - denomTrace(request: QueryDenomTraceRequest): Promise { - return queryService.denomTrace(request); - }, - - denomTraces(request?: QueryDenomTracesRequest): Promise { - return queryService.denomTraces(request); - }, - - params(request?: QueryParamsRequest): Promise { - return queryService.params(request); - } - - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/applications/transfer/v1/query.ts b/packages/codegen/src/ibc/applications/transfer/v1/query.ts deleted file mode 100644 index bee73fc4..00000000 --- a/packages/codegen/src/ibc/applications/transfer/v1/query.ts +++ /dev/null @@ -1,362 +0,0 @@ -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../../../cosmos/base/query/v1beta1/pagination"; -import { DenomTrace, DenomTraceSDKType, Params, ParamsSDKType } from "./transfer"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** - * QueryDenomTraceRequest is the request type for the Query/DenomTrace RPC - * method - */ - -export interface QueryDenomTraceRequest { - /** hash (in hex format) of the denomination trace information. */ - hash: string; -} -/** - * QueryDenomTraceRequest is the request type for the Query/DenomTrace RPC - * method - */ - -export interface QueryDenomTraceRequestSDKType { - hash: string; -} -/** - * QueryDenomTraceResponse is the response type for the Query/DenomTrace RPC - * method. - */ - -export interface QueryDenomTraceResponse { - /** denom_trace returns the requested denomination trace information. */ - denomTrace?: DenomTrace; -} -/** - * QueryDenomTraceResponse is the response type for the Query/DenomTrace RPC - * method. - */ - -export interface QueryDenomTraceResponseSDKType { - denom_trace?: DenomTraceSDKType; -} -/** - * QueryConnectionsRequest is the request type for the Query/DenomTraces RPC - * method - */ - -export interface QueryDenomTracesRequest { - /** pagination defines an optional pagination for the request. */ - pagination?: PageRequest; -} -/** - * QueryConnectionsRequest is the request type for the Query/DenomTraces RPC - * method - */ - -export interface QueryDenomTracesRequestSDKType { - pagination?: PageRequestSDKType; -} -/** - * QueryConnectionsResponse is the response type for the Query/DenomTraces RPC - * method. - */ - -export interface QueryDenomTracesResponse { - /** denom_traces returns all denominations trace information. */ - denomTraces: DenomTrace[]; - /** pagination defines the pagination in the response. */ - - pagination?: PageResponse; -} -/** - * QueryConnectionsResponse is the response type for the Query/DenomTraces RPC - * method. - */ - -export interface QueryDenomTracesResponseSDKType { - denom_traces: DenomTraceSDKType[]; - pagination?: PageResponseSDKType; -} -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ - -export interface QueryParamsRequest {} -/** QueryParamsRequest is the request type for the Query/Params RPC method. */ - -export interface QueryParamsRequestSDKType {} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ - -export interface QueryParamsResponse { - /** params defines the parameters of the module. */ - params?: Params; -} -/** QueryParamsResponse is the response type for the Query/Params RPC method. */ - -export interface QueryParamsResponseSDKType { - params?: ParamsSDKType; -} - -function createBaseQueryDenomTraceRequest(): QueryDenomTraceRequest { - return { - hash: "" - }; -} - -export const QueryDenomTraceRequest = { - encode(message: QueryDenomTraceRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.hash !== "") { - writer.uint32(10).string(message.hash); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDenomTraceRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDenomTraceRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.hash = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDenomTraceRequest { - const message = createBaseQueryDenomTraceRequest(); - message.hash = object.hash ?? ""; - return message; - } - -}; - -function createBaseQueryDenomTraceResponse(): QueryDenomTraceResponse { - return { - denomTrace: undefined - }; -} - -export const QueryDenomTraceResponse = { - encode(message: QueryDenomTraceResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.denomTrace !== undefined) { - DenomTrace.encode(message.denomTrace, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDenomTraceResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDenomTraceResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.denomTrace = DenomTrace.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDenomTraceResponse { - const message = createBaseQueryDenomTraceResponse(); - message.denomTrace = object.denomTrace !== undefined && object.denomTrace !== null ? DenomTrace.fromPartial(object.denomTrace) : undefined; - return message; - } - -}; - -function createBaseQueryDenomTracesRequest(): QueryDenomTracesRequest { - return { - pagination: undefined - }; -} - -export const QueryDenomTracesRequest = { - encode(message: QueryDenomTracesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDenomTracesRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDenomTracesRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDenomTracesRequest { - const message = createBaseQueryDenomTracesRequest(); - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryDenomTracesResponse(): QueryDenomTracesResponse { - return { - denomTraces: [], - pagination: undefined - }; -} - -export const QueryDenomTracesResponse = { - encode(message: QueryDenomTracesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.denomTraces) { - DenomTrace.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryDenomTracesResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDenomTracesResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.denomTraces.push(DenomTrace.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryDenomTracesResponse { - const message = createBaseQueryDenomTracesResponse(); - message.denomTraces = object.denomTraces?.map(e => DenomTrace.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryParamsRequest(): QueryParamsRequest { - return {}; -} - -export const QueryParamsRequest = { - encode(_: QueryParamsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): QueryParamsRequest { - const message = createBaseQueryParamsRequest(); - return message; - } - -}; - -function createBaseQueryParamsResponse(): QueryParamsResponse { - return { - params: undefined - }; -} - -export const QueryParamsResponse = { - encode(message: QueryParamsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.params !== undefined) { - Params.encode(message.params, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.params = Params.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryParamsResponse { - const message = createBaseQueryParamsResponse(); - message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/applications/transfer/v1/transfer.ts b/packages/codegen/src/ibc/applications/transfer/v1/transfer.ts deleted file mode 100644 index 40710588..00000000 --- a/packages/codegen/src/ibc/applications/transfer/v1/transfer.ts +++ /dev/null @@ -1,167 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** - * DenomTrace contains the base denomination for ICS20 fungible tokens and the - * source tracing information path. - */ - -export interface DenomTrace { - /** - * path defines the chain of port/channel identifiers used for tracing the - * source of the fungible token. - */ - path: string; - /** base denomination of the relayed fungible token. */ - - baseDenom: string; -} -/** - * DenomTrace contains the base denomination for ICS20 fungible tokens and the - * source tracing information path. - */ - -export interface DenomTraceSDKType { - path: string; - base_denom: string; -} -/** - * 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. - */ - -export interface Params { - /** - * send_enabled enables or disables all cross-chain token transfers from this - * chain. - */ - sendEnabled: boolean; - /** - * receive_enabled enables or disables all cross-chain token transfers to this - * chain. - */ - - receiveEnabled: boolean; -} -/** - * 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. - */ - -export interface ParamsSDKType { - send_enabled: boolean; - receive_enabled: boolean; -} - -function createBaseDenomTrace(): DenomTrace { - return { - path: "", - baseDenom: "" - }; -} - -export const DenomTrace = { - encode(message: DenomTrace, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.path !== "") { - writer.uint32(10).string(message.path); - } - - if (message.baseDenom !== "") { - writer.uint32(18).string(message.baseDenom); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): DenomTrace { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDenomTrace(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.path = reader.string(); - break; - - case 2: - message.baseDenom = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): DenomTrace { - const message = createBaseDenomTrace(); - message.path = object.path ?? ""; - message.baseDenom = object.baseDenom ?? ""; - return message; - } - -}; - -function createBaseParams(): Params { - return { - sendEnabled: false, - receiveEnabled: false - }; -} - -export const Params = { - encode(message: Params, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.sendEnabled === true) { - writer.uint32(8).bool(message.sendEnabled); - } - - if (message.receiveEnabled === true) { - writer.uint32(16).bool(message.receiveEnabled); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Params { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseParams(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.sendEnabled = reader.bool(); - break; - - case 2: - message.receiveEnabled = reader.bool(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Params { - const message = createBaseParams(); - message.sendEnabled = object.sendEnabled ?? false; - message.receiveEnabled = object.receiveEnabled ?? false; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/applications/transfer/v1/tx.rpc.msg.ts b/packages/codegen/src/ibc/applications/transfer/v1/tx.rpc.msg.ts deleted file mode 100644 index b0ed7b31..00000000 --- a/packages/codegen/src/ibc/applications/transfer/v1/tx.rpc.msg.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Rpc } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { MsgTransfer, MsgTransferResponse } from "./tx"; -/** Msg defines the ibc/transfer Msg service. */ - -export interface Msg { - /** Transfer defines a rpc handler method for MsgTransfer. */ - transfer(request: MsgTransfer): Promise; -} -export class MsgClientImpl implements Msg { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.transfer = this.transfer.bind(this); - } - - transfer(request: MsgTransfer): Promise { - const data = MsgTransfer.encode(request).finish(); - const promise = this.rpc.request("ibc.applications.transfer.v1.Msg", "Transfer", data); - return promise.then(data => MsgTransferResponse.decode(new _m0.Reader(data))); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/ibc/applications/transfer/v1/tx.ts b/packages/codegen/src/ibc/applications/transfer/v1/tx.ts deleted file mode 100644 index 54c7ab4f..00000000 --- a/packages/codegen/src/ibc/applications/transfer/v1/tx.ts +++ /dev/null @@ -1,198 +0,0 @@ -import { Coin, CoinSDKType } from "../../../../cosmos/base/v1beta1/coin"; -import { Height, HeightSDKType } from "../../../core/client/v1/client"; -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * 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 - */ - -export interface MsgTransfer { - /** the port on which the packet will be sent */ - sourcePort: string; - /** the channel by which the packet will be sent */ - - sourceChannel: string; - /** the tokens to be transferred */ - - token?: Coin; - /** the sender address */ - - sender: string; - /** the recipient address on the destination chain */ - - receiver: string; - /** - * Timeout height relative to the current block height. - * The timeout is disabled when set to 0. - */ - - timeoutHeight?: Height; - /** - * Timeout timestamp (in nanoseconds) relative to the current block timestamp. - * The timeout is disabled when set to 0. - */ - - timeoutTimestamp: Long; -} -/** - * 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 - */ - -export interface MsgTransferSDKType { - source_port: string; - source_channel: string; - token?: CoinSDKType; - sender: string; - receiver: string; - timeout_height?: HeightSDKType; - timeout_timestamp: Long; -} -/** MsgTransferResponse defines the Msg/Transfer response type. */ - -export interface MsgTransferResponse {} -/** MsgTransferResponse defines the Msg/Transfer response type. */ - -export interface MsgTransferResponseSDKType {} - -function createBaseMsgTransfer(): MsgTransfer { - return { - sourcePort: "", - sourceChannel: "", - token: undefined, - sender: "", - receiver: "", - timeoutHeight: undefined, - timeoutTimestamp: Long.UZERO - }; -} - -export const MsgTransfer = { - encode(message: MsgTransfer, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.sourcePort !== "") { - writer.uint32(10).string(message.sourcePort); - } - - if (message.sourceChannel !== "") { - writer.uint32(18).string(message.sourceChannel); - } - - if (message.token !== undefined) { - Coin.encode(message.token, writer.uint32(26).fork()).ldelim(); - } - - if (message.sender !== "") { - writer.uint32(34).string(message.sender); - } - - if (message.receiver !== "") { - writer.uint32(42).string(message.receiver); - } - - if (message.timeoutHeight !== undefined) { - Height.encode(message.timeoutHeight, writer.uint32(50).fork()).ldelim(); - } - - if (!message.timeoutTimestamp.isZero()) { - writer.uint32(56).uint64(message.timeoutTimestamp); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgTransfer { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgTransfer(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.sourcePort = reader.string(); - break; - - case 2: - message.sourceChannel = reader.string(); - break; - - case 3: - message.token = Coin.decode(reader, reader.uint32()); - break; - - case 4: - message.sender = reader.string(); - break; - - case 5: - message.receiver = reader.string(); - break; - - case 6: - message.timeoutHeight = Height.decode(reader, reader.uint32()); - break; - - case 7: - message.timeoutTimestamp = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgTransfer { - const message = createBaseMsgTransfer(); - message.sourcePort = object.sourcePort ?? ""; - message.sourceChannel = object.sourceChannel ?? ""; - message.token = object.token !== undefined && object.token !== null ? Coin.fromPartial(object.token) : undefined; - message.sender = object.sender ?? ""; - message.receiver = object.receiver ?? ""; - message.timeoutHeight = object.timeoutHeight !== undefined && object.timeoutHeight !== null ? Height.fromPartial(object.timeoutHeight) : undefined; - message.timeoutTimestamp = object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null ? Long.fromValue(object.timeoutTimestamp) : Long.UZERO; - return message; - } - -}; - -function createBaseMsgTransferResponse(): MsgTransferResponse { - return {}; -} - -export const MsgTransferResponse = { - encode(_: MsgTransferResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgTransferResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgTransferResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgTransferResponse { - const message = createBaseMsgTransferResponse(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/applications/transfer/v2/packet.ts b/packages/codegen/src/ibc/applications/transfer/v2/packet.ts deleted file mode 100644 index 44f2aaa7..00000000 --- a/packages/codegen/src/ibc/applications/transfer/v2/packet.ts +++ /dev/null @@ -1,108 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** - * 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 - */ - -export interface FungibleTokenPacketData { - /** the token denomination to be transferred */ - denom: string; - /** the token amount to be transferred */ - - amount: string; - /** the sender address */ - - sender: string; - /** the recipient address on the destination chain */ - - receiver: string; -} -/** - * 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 - */ - -export interface FungibleTokenPacketDataSDKType { - denom: string; - amount: string; - sender: string; - receiver: string; -} - -function createBaseFungibleTokenPacketData(): FungibleTokenPacketData { - return { - denom: "", - amount: "", - sender: "", - receiver: "" - }; -} - -export const FungibleTokenPacketData = { - encode(message: FungibleTokenPacketData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.denom !== "") { - writer.uint32(10).string(message.denom); - } - - if (message.amount !== "") { - writer.uint32(18).string(message.amount); - } - - if (message.sender !== "") { - writer.uint32(26).string(message.sender); - } - - if (message.receiver !== "") { - writer.uint32(34).string(message.receiver); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): FungibleTokenPacketData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseFungibleTokenPacketData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.denom = reader.string(); - break; - - case 2: - message.amount = reader.string(); - break; - - case 3: - message.sender = reader.string(); - break; - - case 4: - message.receiver = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): FungibleTokenPacketData { - const message = createBaseFungibleTokenPacketData(); - message.denom = object.denom ?? ""; - message.amount = object.amount ?? ""; - message.sender = object.sender ?? ""; - message.receiver = object.receiver ?? ""; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/bundle.ts b/packages/codegen/src/ibc/bundle.ts deleted file mode 100644 index 63720a3b..00000000 --- a/packages/codegen/src/ibc/bundle.ts +++ /dev/null @@ -1,121 +0,0 @@ -import * as _110 from "./applications/transfer/v1/genesis"; -import * as _111 from "./applications/transfer/v1/query"; -import * as _112 from "./applications/transfer/v1/transfer"; -import * as _113 from "./applications/transfer/v1/tx"; -import * as _114 from "./applications/transfer/v2/packet"; -import * as _115 from "./core/channel/v1/channel"; -import * as _116 from "./core/channel/v1/genesis"; -import * as _117 from "./core/channel/v1/query"; -import * as _118 from "./core/channel/v1/tx"; -import * as _119 from "./core/client/v1/client"; -import * as _120 from "./core/client/v1/genesis"; -import * as _121 from "./core/client/v1/query"; -import * as _122 from "./core/client/v1/tx"; -import * as _123 from "./core/commitment/v1/commitment"; -import * as _124 from "./core/connection/v1/connection"; -import * as _125 from "./core/connection/v1/genesis"; -import * as _126 from "./core/connection/v1/query"; -import * as _127 from "./core/connection/v1/tx"; -import * as _128 from "./core/port/v1/query"; -import * as _129 from "./core/types/v1/genesis"; -import * as _130 from "./lightclients/localhost/v1/localhost"; -import * as _131 from "./lightclients/solomachine/v1/solomachine"; -import * as _132 from "./lightclients/solomachine/v2/solomachine"; -import * as _133 from "./lightclients/tendermint/v1/tendermint"; -import * as _197 from "./applications/transfer/v1/query.lcd"; -import * as _198 from "./core/channel/v1/query.lcd"; -import * as _199 from "./core/client/v1/query.lcd"; -import * as _200 from "./core/connection/v1/query.lcd"; -import * as _201 from "./applications/transfer/v1/query.rpc.Query"; -import * as _202 from "./core/channel/v1/query.rpc.Query"; -import * as _203 from "./core/client/v1/query.rpc.Query"; -import * as _204 from "./core/connection/v1/query.rpc.Query"; -import * as _205 from "./core/port/v1/query.rpc.Query"; -import * as _206 from "./applications/transfer/v1/tx.rpc.msg"; -import * as _207 from "./core/channel/v1/tx.rpc.msg"; -import * as _208 from "./core/client/v1/tx.rpc.msg"; -import * as _209 from "./core/connection/v1/tx.rpc.msg"; -import * as _216 from "./lcd"; -import * as _217 from "./rpc.query"; -import * as _218 from "./rpc.tx"; -export namespace ibc { - export namespace applications { - export namespace transfer { - export const v1 = { ..._110, - ..._111, - ..._112, - ..._113, - ..._197, - ..._201, - ..._206 - }; - export const v2 = { ..._114 - }; - } - } - export namespace core { - export namespace channel { - export const v1 = { ..._115, - ..._116, - ..._117, - ..._118, - ..._198, - ..._202, - ..._207 - }; - } - export namespace client { - export const v1 = { ..._119, - ..._120, - ..._121, - ..._122, - ..._199, - ..._203, - ..._208 - }; - } - export namespace commitment { - export const v1 = { ..._123 - }; - } - export namespace connection { - export const v1 = { ..._124, - ..._125, - ..._126, - ..._127, - ..._200, - ..._204, - ..._209 - }; - } - export namespace port { - export const v1 = { ..._128, - ..._205 - }; - } - export namespace types { - export const v1 = { ..._129 - }; - } - } - export namespace lightclients { - export namespace localhost { - export const v1 = { ..._130 - }; - } - export namespace solomachine { - export const v1 = { ..._131 - }; - export const v2 = { ..._132 - }; - } - export namespace tendermint { - export const v1 = { ..._133 - }; - } - } - export const ClientFactory = { ..._216, - ..._217, - ..._218 - }; -} \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/channel/v1/channel.ts b/packages/codegen/src/ibc/core/channel/v1/channel.ts deleted file mode 100644 index b84ffb9a..00000000 --- a/packages/codegen/src/ibc/core/channel/v1/channel.ts +++ /dev/null @@ -1,826 +0,0 @@ -import { Height, HeightSDKType } from "../../client/v1/client"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../../helpers"; -/** - * State defines if a channel is in one of the following states: - * CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED. - */ - -export enum State { - /** STATE_UNINITIALIZED_UNSPECIFIED - Default State */ - STATE_UNINITIALIZED_UNSPECIFIED = 0, - - /** STATE_INIT - A channel has just started the opening handshake. */ - STATE_INIT = 1, - - /** STATE_TRYOPEN - A channel has acknowledged the handshake step on the counterparty chain. */ - STATE_TRYOPEN = 2, - - /** - * STATE_OPEN - A channel has completed the handshake. Open channels are - * ready to send and receive packets. - */ - STATE_OPEN = 3, - - /** - * STATE_CLOSED - A channel has been closed and can no longer be used to send or receive - * packets. - */ - STATE_CLOSED = 4, - UNRECOGNIZED = -1, -} -export const StateSDKType = State; -export function stateFromJSON(object: any): State { - switch (object) { - case 0: - case "STATE_UNINITIALIZED_UNSPECIFIED": - return State.STATE_UNINITIALIZED_UNSPECIFIED; - - case 1: - case "STATE_INIT": - return State.STATE_INIT; - - case 2: - case "STATE_TRYOPEN": - return State.STATE_TRYOPEN; - - case 3: - case "STATE_OPEN": - return State.STATE_OPEN; - - case 4: - case "STATE_CLOSED": - return State.STATE_CLOSED; - - case -1: - case "UNRECOGNIZED": - default: - return State.UNRECOGNIZED; - } -} -export function stateToJSON(object: State): string { - switch (object) { - case State.STATE_UNINITIALIZED_UNSPECIFIED: - return "STATE_UNINITIALIZED_UNSPECIFIED"; - - case State.STATE_INIT: - return "STATE_INIT"; - - case State.STATE_TRYOPEN: - return "STATE_TRYOPEN"; - - case State.STATE_OPEN: - return "STATE_OPEN"; - - case State.STATE_CLOSED: - return "STATE_CLOSED"; - - case State.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** Order defines if a channel is ORDERED or UNORDERED */ - -export enum Order { - /** ORDER_NONE_UNSPECIFIED - zero-value for channel ordering */ - ORDER_NONE_UNSPECIFIED = 0, - - /** - * ORDER_UNORDERED - packets can be delivered in any order, which may differ from the order in - * which they were sent. - */ - ORDER_UNORDERED = 1, - - /** ORDER_ORDERED - packets are delivered exactly in the order which they were sent */ - ORDER_ORDERED = 2, - UNRECOGNIZED = -1, -} -export const OrderSDKType = Order; -export function orderFromJSON(object: any): Order { - switch (object) { - case 0: - case "ORDER_NONE_UNSPECIFIED": - return Order.ORDER_NONE_UNSPECIFIED; - - case 1: - case "ORDER_UNORDERED": - return Order.ORDER_UNORDERED; - - case 2: - case "ORDER_ORDERED": - return Order.ORDER_ORDERED; - - case -1: - case "UNRECOGNIZED": - default: - return Order.UNRECOGNIZED; - } -} -export function orderToJSON(object: Order): string { - switch (object) { - case Order.ORDER_NONE_UNSPECIFIED: - return "ORDER_NONE_UNSPECIFIED"; - - case Order.ORDER_UNORDERED: - return "ORDER_UNORDERED"; - - case Order.ORDER_ORDERED: - return "ORDER_ORDERED"; - - case Order.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** - * 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. - */ - -export interface Channel { - /** current state of the channel end */ - state: State; - /** whether the channel is ordered or unordered */ - - ordering: Order; - /** counterparty channel end */ - - counterparty?: Counterparty; - /** - * list of connection identifiers, in order, along which packets sent on - * this channel will travel - */ - - connectionHops: string[]; - /** opaque channel version, which is agreed upon during the handshake */ - - version: string; -} -/** - * 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. - */ - -export interface ChannelSDKType { - state: State; - ordering: Order; - counterparty?: CounterpartySDKType; - connection_hops: string[]; - version: string; -} -/** - * IdentifiedChannel defines a channel with additional port and channel - * identifier fields. - */ - -export interface IdentifiedChannel { - /** current state of the channel end */ - state: State; - /** whether the channel is ordered or unordered */ - - ordering: Order; - /** counterparty channel end */ - - counterparty?: Counterparty; - /** - * list of connection identifiers, in order, along which packets sent on - * this channel will travel - */ - - connectionHops: string[]; - /** opaque channel version, which is agreed upon during the handshake */ - - version: string; - /** port identifier */ - - portId: string; - /** channel identifier */ - - channelId: string; -} -/** - * IdentifiedChannel defines a channel with additional port and channel - * identifier fields. - */ - -export interface IdentifiedChannelSDKType { - state: State; - ordering: Order; - counterparty?: CounterpartySDKType; - connection_hops: string[]; - version: string; - port_id: string; - channel_id: string; -} -/** Counterparty defines a channel end counterparty */ - -export interface Counterparty { - /** port on the counterparty chain which owns the other end of the channel. */ - portId: string; - /** channel end on the counterparty chain */ - - channelId: string; -} -/** Counterparty defines a channel end counterparty */ - -export interface CounterpartySDKType { - port_id: string; - channel_id: string; -} -/** Packet defines a type that carries data across different chains through IBC */ - -export interface 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. - */ - sequence: Long; - /** identifies the port on the sending chain. */ - - sourcePort: string; - /** identifies the channel end on the sending chain. */ - - sourceChannel: string; - /** identifies the port on the receiving chain. */ - - destinationPort: string; - /** identifies the channel end on the receiving chain. */ - - destinationChannel: string; - /** actual opaque bytes transferred directly to the application module */ - - data: Uint8Array; - /** block height after which the packet times out */ - - timeoutHeight?: Height; - /** block timestamp (in nanoseconds) after which the packet times out */ - - timeoutTimestamp: Long; -} -/** Packet defines a type that carries data across different chains through IBC */ - -export interface PacketSDKType { - sequence: Long; - source_port: string; - source_channel: string; - destination_port: string; - destination_channel: string; - data: Uint8Array; - timeout_height?: HeightSDKType; - timeout_timestamp: Long; -} -/** - * 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. - */ - -export interface PacketState { - /** channel port identifier. */ - portId: string; - /** channel unique identifier. */ - - channelId: string; - /** packet sequence. */ - - sequence: Long; - /** embedded data that represents packet state. */ - - data: Uint8Array; -} -/** - * 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. - */ - -export interface PacketStateSDKType { - port_id: string; - channel_id: string; - sequence: Long; - data: Uint8Array; -} -/** - * 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 - */ - -export interface Acknowledgement { - result?: Uint8Array; - error?: string; -} -/** - * 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 - */ - -export interface AcknowledgementSDKType { - result?: Uint8Array; - error?: string; -} - -function createBaseChannel(): Channel { - return { - state: 0, - ordering: 0, - counterparty: undefined, - connectionHops: [], - version: "" - }; -} - -export const Channel = { - encode(message: Channel, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.state !== 0) { - writer.uint32(8).int32(message.state); - } - - if (message.ordering !== 0) { - writer.uint32(16).int32(message.ordering); - } - - if (message.counterparty !== undefined) { - Counterparty.encode(message.counterparty, writer.uint32(26).fork()).ldelim(); - } - - for (const v of message.connectionHops) { - writer.uint32(34).string(v!); - } - - if (message.version !== "") { - writer.uint32(42).string(message.version); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Channel { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseChannel(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.state = (reader.int32() as any); - break; - - case 2: - message.ordering = (reader.int32() as any); - break; - - case 3: - message.counterparty = Counterparty.decode(reader, reader.uint32()); - break; - - case 4: - message.connectionHops.push(reader.string()); - break; - - case 5: - message.version = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Channel { - const message = createBaseChannel(); - message.state = object.state ?? 0; - message.ordering = object.ordering ?? 0; - message.counterparty = object.counterparty !== undefined && object.counterparty !== null ? Counterparty.fromPartial(object.counterparty) : undefined; - message.connectionHops = object.connectionHops?.map(e => e) || []; - message.version = object.version ?? ""; - return message; - } - -}; - -function createBaseIdentifiedChannel(): IdentifiedChannel { - return { - state: 0, - ordering: 0, - counterparty: undefined, - connectionHops: [], - version: "", - portId: "", - channelId: "" - }; -} - -export const IdentifiedChannel = { - encode(message: IdentifiedChannel, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.state !== 0) { - writer.uint32(8).int32(message.state); - } - - if (message.ordering !== 0) { - writer.uint32(16).int32(message.ordering); - } - - if (message.counterparty !== undefined) { - Counterparty.encode(message.counterparty, writer.uint32(26).fork()).ldelim(); - } - - for (const v of message.connectionHops) { - writer.uint32(34).string(v!); - } - - if (message.version !== "") { - writer.uint32(42).string(message.version); - } - - if (message.portId !== "") { - writer.uint32(50).string(message.portId); - } - - if (message.channelId !== "") { - writer.uint32(58).string(message.channelId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): IdentifiedChannel { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseIdentifiedChannel(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.state = (reader.int32() as any); - break; - - case 2: - message.ordering = (reader.int32() as any); - break; - - case 3: - message.counterparty = Counterparty.decode(reader, reader.uint32()); - break; - - case 4: - message.connectionHops.push(reader.string()); - break; - - case 5: - message.version = reader.string(); - break; - - case 6: - message.portId = reader.string(); - break; - - case 7: - message.channelId = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): IdentifiedChannel { - const message = createBaseIdentifiedChannel(); - message.state = object.state ?? 0; - message.ordering = object.ordering ?? 0; - message.counterparty = object.counterparty !== undefined && object.counterparty !== null ? Counterparty.fromPartial(object.counterparty) : undefined; - message.connectionHops = object.connectionHops?.map(e => e) || []; - message.version = object.version ?? ""; - message.portId = object.portId ?? ""; - message.channelId = object.channelId ?? ""; - return message; - } - -}; - -function createBaseCounterparty(): Counterparty { - return { - portId: "", - channelId: "" - }; -} - -export const Counterparty = { - encode(message: Counterparty, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.portId !== "") { - writer.uint32(10).string(message.portId); - } - - if (message.channelId !== "") { - writer.uint32(18).string(message.channelId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Counterparty { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCounterparty(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.portId = reader.string(); - break; - - case 2: - message.channelId = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Counterparty { - const message = createBaseCounterparty(); - message.portId = object.portId ?? ""; - message.channelId = object.channelId ?? ""; - return message; - } - -}; - -function createBasePacket(): Packet { - return { - sequence: Long.UZERO, - sourcePort: "", - sourceChannel: "", - destinationPort: "", - destinationChannel: "", - data: new Uint8Array(), - timeoutHeight: undefined, - timeoutTimestamp: Long.UZERO - }; -} - -export const Packet = { - encode(message: Packet, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.sequence.isZero()) { - writer.uint32(8).uint64(message.sequence); - } - - if (message.sourcePort !== "") { - writer.uint32(18).string(message.sourcePort); - } - - if (message.sourceChannel !== "") { - writer.uint32(26).string(message.sourceChannel); - } - - if (message.destinationPort !== "") { - writer.uint32(34).string(message.destinationPort); - } - - if (message.destinationChannel !== "") { - writer.uint32(42).string(message.destinationChannel); - } - - if (message.data.length !== 0) { - writer.uint32(50).bytes(message.data); - } - - if (message.timeoutHeight !== undefined) { - Height.encode(message.timeoutHeight, writer.uint32(58).fork()).ldelim(); - } - - if (!message.timeoutTimestamp.isZero()) { - writer.uint32(64).uint64(message.timeoutTimestamp); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Packet { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePacket(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.sequence = (reader.uint64() as Long); - break; - - case 2: - message.sourcePort = reader.string(); - break; - - case 3: - message.sourceChannel = reader.string(); - break; - - case 4: - message.destinationPort = reader.string(); - break; - - case 5: - message.destinationChannel = reader.string(); - break; - - case 6: - message.data = reader.bytes(); - break; - - case 7: - message.timeoutHeight = Height.decode(reader, reader.uint32()); - break; - - case 8: - message.timeoutTimestamp = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Packet { - const message = createBasePacket(); - message.sequence = object.sequence !== undefined && object.sequence !== null ? Long.fromValue(object.sequence) : Long.UZERO; - message.sourcePort = object.sourcePort ?? ""; - message.sourceChannel = object.sourceChannel ?? ""; - message.destinationPort = object.destinationPort ?? ""; - message.destinationChannel = object.destinationChannel ?? ""; - message.data = object.data ?? new Uint8Array(); - message.timeoutHeight = object.timeoutHeight !== undefined && object.timeoutHeight !== null ? Height.fromPartial(object.timeoutHeight) : undefined; - message.timeoutTimestamp = object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null ? Long.fromValue(object.timeoutTimestamp) : Long.UZERO; - return message; - } - -}; - -function createBasePacketState(): PacketState { - return { - portId: "", - channelId: "", - sequence: Long.UZERO, - data: new Uint8Array() - }; -} - -export const PacketState = { - encode(message: PacketState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.portId !== "") { - writer.uint32(10).string(message.portId); - } - - if (message.channelId !== "") { - writer.uint32(18).string(message.channelId); - } - - if (!message.sequence.isZero()) { - writer.uint32(24).uint64(message.sequence); - } - - if (message.data.length !== 0) { - writer.uint32(34).bytes(message.data); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PacketState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePacketState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.portId = reader.string(); - break; - - case 2: - message.channelId = reader.string(); - break; - - case 3: - message.sequence = (reader.uint64() as Long); - break; - - case 4: - message.data = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PacketState { - const message = createBasePacketState(); - message.portId = object.portId ?? ""; - message.channelId = object.channelId ?? ""; - message.sequence = object.sequence !== undefined && object.sequence !== null ? Long.fromValue(object.sequence) : Long.UZERO; - message.data = object.data ?? new Uint8Array(); - return message; - } - -}; - -function createBaseAcknowledgement(): Acknowledgement { - return { - result: undefined, - error: undefined - }; -} - -export const Acknowledgement = { - encode(message: Acknowledgement, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.result !== undefined) { - writer.uint32(170).bytes(message.result); - } - - if (message.error !== undefined) { - writer.uint32(178).string(message.error); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Acknowledgement { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAcknowledgement(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 21: - message.result = reader.bytes(); - break; - - case 22: - message.error = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Acknowledgement { - const message = createBaseAcknowledgement(); - message.result = object.result ?? undefined; - message.error = object.error ?? undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/channel/v1/genesis.ts b/packages/codegen/src/ibc/core/channel/v1/genesis.ts deleted file mode 100644 index 4d7759f6..00000000 --- a/packages/codegen/src/ibc/core/channel/v1/genesis.ts +++ /dev/null @@ -1,229 +0,0 @@ -import { IdentifiedChannel, IdentifiedChannelSDKType, PacketState, PacketStateSDKType } from "./channel"; -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** GenesisState defines the ibc channel submodule's genesis state. */ - -export interface GenesisState { - channels: IdentifiedChannel[]; - acknowledgements: PacketState[]; - commitments: PacketState[]; - receipts: PacketState[]; - sendSequences: PacketSequence[]; - recvSequences: PacketSequence[]; - ackSequences: PacketSequence[]; - /** the sequence for the next generated channel identifier */ - - nextChannelSequence: Long; -} -/** GenesisState defines the ibc channel submodule's genesis state. */ - -export interface GenesisStateSDKType { - channels: IdentifiedChannelSDKType[]; - acknowledgements: PacketStateSDKType[]; - commitments: PacketStateSDKType[]; - receipts: PacketStateSDKType[]; - send_sequences: PacketSequenceSDKType[]; - recv_sequences: PacketSequenceSDKType[]; - ack_sequences: PacketSequenceSDKType[]; - next_channel_sequence: Long; -} -/** - * PacketSequence defines the genesis type necessary to retrieve and store - * next send and receive sequences. - */ - -export interface PacketSequence { - portId: string; - channelId: string; - sequence: Long; -} -/** - * PacketSequence defines the genesis type necessary to retrieve and store - * next send and receive sequences. - */ - -export interface PacketSequenceSDKType { - port_id: string; - channel_id: string; - sequence: Long; -} - -function createBaseGenesisState(): GenesisState { - return { - channels: [], - acknowledgements: [], - commitments: [], - receipts: [], - sendSequences: [], - recvSequences: [], - ackSequences: [], - nextChannelSequence: Long.UZERO - }; -} - -export const GenesisState = { - encode(message: GenesisState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.channels) { - IdentifiedChannel.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - for (const v of message.acknowledgements) { - PacketState.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - for (const v of message.commitments) { - PacketState.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - for (const v of message.receipts) { - PacketState.encode(v!, writer.uint32(34).fork()).ldelim(); - } - - for (const v of message.sendSequences) { - PacketSequence.encode(v!, writer.uint32(42).fork()).ldelim(); - } - - for (const v of message.recvSequences) { - PacketSequence.encode(v!, writer.uint32(50).fork()).ldelim(); - } - - for (const v of message.ackSequences) { - PacketSequence.encode(v!, writer.uint32(58).fork()).ldelim(); - } - - if (!message.nextChannelSequence.isZero()) { - writer.uint32(64).uint64(message.nextChannelSequence); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.channels.push(IdentifiedChannel.decode(reader, reader.uint32())); - break; - - case 2: - message.acknowledgements.push(PacketState.decode(reader, reader.uint32())); - break; - - case 3: - message.commitments.push(PacketState.decode(reader, reader.uint32())); - break; - - case 4: - message.receipts.push(PacketState.decode(reader, reader.uint32())); - break; - - case 5: - message.sendSequences.push(PacketSequence.decode(reader, reader.uint32())); - break; - - case 6: - message.recvSequences.push(PacketSequence.decode(reader, reader.uint32())); - break; - - case 7: - message.ackSequences.push(PacketSequence.decode(reader, reader.uint32())); - break; - - case 8: - message.nextChannelSequence = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenesisState { - const message = createBaseGenesisState(); - message.channels = object.channels?.map(e => IdentifiedChannel.fromPartial(e)) || []; - message.acknowledgements = object.acknowledgements?.map(e => PacketState.fromPartial(e)) || []; - message.commitments = object.commitments?.map(e => PacketState.fromPartial(e)) || []; - message.receipts = object.receipts?.map(e => PacketState.fromPartial(e)) || []; - message.sendSequences = object.sendSequences?.map(e => PacketSequence.fromPartial(e)) || []; - message.recvSequences = object.recvSequences?.map(e => PacketSequence.fromPartial(e)) || []; - message.ackSequences = object.ackSequences?.map(e => PacketSequence.fromPartial(e)) || []; - message.nextChannelSequence = object.nextChannelSequence !== undefined && object.nextChannelSequence !== null ? Long.fromValue(object.nextChannelSequence) : Long.UZERO; - return message; - } - -}; - -function createBasePacketSequence(): PacketSequence { - return { - portId: "", - channelId: "", - sequence: Long.UZERO - }; -} - -export const PacketSequence = { - encode(message: PacketSequence, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.portId !== "") { - writer.uint32(10).string(message.portId); - } - - if (message.channelId !== "") { - writer.uint32(18).string(message.channelId); - } - - if (!message.sequence.isZero()) { - writer.uint32(24).uint64(message.sequence); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PacketSequence { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePacketSequence(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.portId = reader.string(); - break; - - case 2: - message.channelId = reader.string(); - break; - - case 3: - message.sequence = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PacketSequence { - const message = createBasePacketSequence(); - message.portId = object.portId ?? ""; - message.channelId = object.channelId ?? ""; - message.sequence = object.sequence !== undefined && object.sequence !== null ? Long.fromValue(object.sequence) : Long.UZERO; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/channel/v1/query.lcd.ts b/packages/codegen/src/ibc/core/channel/v1/query.lcd.ts deleted file mode 100644 index eb1215bf..00000000 --- a/packages/codegen/src/ibc/core/channel/v1/query.lcd.ts +++ /dev/null @@ -1,165 +0,0 @@ -import { setPaginationParams } from "../../../../helpers"; -import { LCDClient } from "@osmonauts/lcd"; -import { QueryChannelRequest, QueryChannelResponseSDKType, QueryChannelsRequest, QueryChannelsResponseSDKType, QueryConnectionChannelsRequest, QueryConnectionChannelsResponseSDKType, QueryChannelClientStateRequest, QueryChannelClientStateResponseSDKType, QueryChannelConsensusStateRequest, QueryChannelConsensusStateResponseSDKType, QueryPacketCommitmentRequest, QueryPacketCommitmentResponseSDKType, QueryPacketCommitmentsRequest, QueryPacketCommitmentsResponseSDKType, QueryPacketReceiptRequest, QueryPacketReceiptResponseSDKType, QueryPacketAcknowledgementRequest, QueryPacketAcknowledgementResponseSDKType, QueryPacketAcknowledgementsRequest, QueryPacketAcknowledgementsResponseSDKType, QueryUnreceivedPacketsRequest, QueryUnreceivedPacketsResponseSDKType, QueryUnreceivedAcksRequest, QueryUnreceivedAcksResponseSDKType, QueryNextSequenceReceiveRequest, QueryNextSequenceReceiveResponseSDKType } from "./query"; -export class LCDQueryClient { - req: LCDClient; - - constructor({ - requestClient - }: { - requestClient: LCDClient; - }) { - this.req = requestClient; - this.channel = this.channel.bind(this); - this.channels = this.channels.bind(this); - this.connectionChannels = this.connectionChannels.bind(this); - this.channelClientState = this.channelClientState.bind(this); - this.channelConsensusState = this.channelConsensusState.bind(this); - this.packetCommitment = this.packetCommitment.bind(this); - this.packetCommitments = this.packetCommitments.bind(this); - this.packetReceipt = this.packetReceipt.bind(this); - this.packetAcknowledgement = this.packetAcknowledgement.bind(this); - this.packetAcknowledgements = this.packetAcknowledgements.bind(this); - this.unreceivedPackets = this.unreceivedPackets.bind(this); - this.unreceivedAcks = this.unreceivedAcks.bind(this); - this.nextSequenceReceive = this.nextSequenceReceive.bind(this); - } - /* Channel queries an IBC Channel. */ - - - async channel(params: QueryChannelRequest): Promise { - const endpoint = `ibc/core/channel/v1/channels/${params.channelId}/ports/${params.portId}`; - return await this.req.get(endpoint); - } - /* Channels queries all the IBC channels of a chain. */ - - - async channels(params: QueryChannelsRequest = { - pagination: undefined - }): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `ibc/core/channel/v1/channels`; - return await this.req.get(endpoint, options); - } - /* ConnectionChannels queries all the channels associated with a connection - end. */ - - - async connectionChannels(params: QueryConnectionChannelsRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `ibc/core/channel/v1/connections/${params.connection}/channels`; - return await this.req.get(endpoint, options); - } - /* ChannelClientState queries for the client state for the channel associated - with the provided channel identifiers. */ - - - async channelClientState(params: QueryChannelClientStateRequest): Promise { - const endpoint = `ibc/core/channel/v1/channels/${params.channelId}/ports/${params.portId}/client_state`; - return await this.req.get(endpoint); - } - /* ChannelConsensusState queries for the consensus state for the channel - associated with the provided channel identifiers. */ - - - async channelConsensusState(params: QueryChannelConsensusStateRequest): Promise { - const endpoint = `ibc/core/channel/v1/channels/${params.channelId}/ports/${params.portId}/consensus_state/revision/${params.revisionNumber}/height/${params.revisionHeight}`; - return await this.req.get(endpoint); - } - /* PacketCommitment queries a stored packet commitment hash. */ - - - async packetCommitment(params: QueryPacketCommitmentRequest): Promise { - const endpoint = `ibc/core/channel/v1/channels/${params.channelId}/ports/${params.portId}/packet_commitments/${params.sequence}`; - return await this.req.get(endpoint); - } - /* PacketCommitments returns all the packet commitments hashes associated - with a channel. */ - - - async packetCommitments(params: QueryPacketCommitmentsRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `ibc/core/channel/v1/channels/${params.channelId}/ports/${params.portId}/packet_commitments`; - return await this.req.get(endpoint, options); - } - /* PacketReceipt queries if a given packet sequence has been received on the - queried chain */ - - - async packetReceipt(params: QueryPacketReceiptRequest): Promise { - const endpoint = `ibc/core/channel/v1/channels/${params.channelId}/ports/${params.portId}/packet_receipts/${params.sequence}`; - return await this.req.get(endpoint); - } - /* PacketAcknowledgement queries a stored packet acknowledgement hash. */ - - - async packetAcknowledgement(params: QueryPacketAcknowledgementRequest): Promise { - const endpoint = `ibc/core/channel/v1/channels/${params.channelId}/ports/${params.portId}/packet_acks/${params.sequence}`; - return await this.req.get(endpoint); - } - /* PacketAcknowledgements returns all the packet acknowledgements associated - with a channel. */ - - - async packetAcknowledgements(params: QueryPacketAcknowledgementsRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - if (typeof params?.packetCommitmentSequences !== "undefined") { - options.params.packet_commitment_sequences = params.packetCommitmentSequences; - } - - const endpoint = `ibc/core/channel/v1/channels/${params.channelId}/ports/${params.portId}/packet_acknowledgements`; - return await this.req.get(endpoint, options); - } - /* UnreceivedPackets returns all the unreceived IBC packets associated with a - channel and sequences. */ - - - async unreceivedPackets(params: QueryUnreceivedPacketsRequest): Promise { - const endpoint = `ibc/core/channel/v1/channels/${params.channelId}/ports/${params.portId}/packet_commitments/${params.packetCommitmentSequences}/unreceived_packets`; - return await this.req.get(endpoint); - } - /* UnreceivedAcks returns all the unreceived IBC acknowledgements associated - with a channel and sequences. */ - - - async unreceivedAcks(params: QueryUnreceivedAcksRequest): Promise { - const endpoint = `ibc/core/channel/v1/channels/${params.channelId}/ports/${params.portId}/packet_commitments/${params.packetAckSequences}/unreceived_acks`; - return await this.req.get(endpoint); - } - /* NextSequenceReceive returns the next receive sequence for a given channel. */ - - - async nextSequenceReceive(params: QueryNextSequenceReceiveRequest): Promise { - const endpoint = `ibc/core/channel/v1/channels/${params.channelId}/ports/${params.portId}/next_sequence`; - return await this.req.get(endpoint); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/channel/v1/query.rpc.Query.ts b/packages/codegen/src/ibc/core/channel/v1/query.rpc.Query.ts deleted file mode 100644 index 4fbeb5b7..00000000 --- a/packages/codegen/src/ibc/core/channel/v1/query.rpc.Query.ts +++ /dev/null @@ -1,229 +0,0 @@ -import { Rpc } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { QueryChannelRequest, QueryChannelResponse, QueryChannelsRequest, QueryChannelsResponse, QueryConnectionChannelsRequest, QueryConnectionChannelsResponse, QueryChannelClientStateRequest, QueryChannelClientStateResponse, QueryChannelConsensusStateRequest, QueryChannelConsensusStateResponse, QueryPacketCommitmentRequest, QueryPacketCommitmentResponse, QueryPacketCommitmentsRequest, QueryPacketCommitmentsResponse, QueryPacketReceiptRequest, QueryPacketReceiptResponse, QueryPacketAcknowledgementRequest, QueryPacketAcknowledgementResponse, QueryPacketAcknowledgementsRequest, QueryPacketAcknowledgementsResponse, QueryUnreceivedPacketsRequest, QueryUnreceivedPacketsResponse, QueryUnreceivedAcksRequest, QueryUnreceivedAcksResponse, QueryNextSequenceReceiveRequest, QueryNextSequenceReceiveResponse } from "./query"; -/** Query provides defines the gRPC querier service */ - -export interface Query { - /** Channel queries an IBC Channel. */ - channel(request: QueryChannelRequest): Promise; - /** Channels queries all the IBC channels of a chain. */ - - channels(request?: QueryChannelsRequest): Promise; - /** - * ConnectionChannels queries all the channels associated with a connection - * end. - */ - - connectionChannels(request: QueryConnectionChannelsRequest): Promise; - /** - * ChannelClientState queries for the client state for the channel associated - * with the provided channel identifiers. - */ - - channelClientState(request: QueryChannelClientStateRequest): Promise; - /** - * ChannelConsensusState queries for the consensus state for the channel - * associated with the provided channel identifiers. - */ - - channelConsensusState(request: QueryChannelConsensusStateRequest): Promise; - /** PacketCommitment queries a stored packet commitment hash. */ - - packetCommitment(request: QueryPacketCommitmentRequest): Promise; - /** - * PacketCommitments returns all the packet commitments hashes associated - * with a channel. - */ - - packetCommitments(request: QueryPacketCommitmentsRequest): Promise; - /** - * PacketReceipt queries if a given packet sequence has been received on the - * queried chain - */ - - packetReceipt(request: QueryPacketReceiptRequest): Promise; - /** PacketAcknowledgement queries a stored packet acknowledgement hash. */ - - packetAcknowledgement(request: QueryPacketAcknowledgementRequest): Promise; - /** - * PacketAcknowledgements returns all the packet acknowledgements associated - * with a channel. - */ - - packetAcknowledgements(request: QueryPacketAcknowledgementsRequest): Promise; - /** - * UnreceivedPackets returns all the unreceived IBC packets associated with a - * channel and sequences. - */ - - unreceivedPackets(request: QueryUnreceivedPacketsRequest): Promise; - /** - * UnreceivedAcks returns all the unreceived IBC acknowledgements associated - * with a channel and sequences. - */ - - unreceivedAcks(request: QueryUnreceivedAcksRequest): Promise; - /** NextSequenceReceive returns the next receive sequence for a given channel. */ - - nextSequenceReceive(request: QueryNextSequenceReceiveRequest): Promise; -} -export class QueryClientImpl implements Query { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.channel = this.channel.bind(this); - this.channels = this.channels.bind(this); - this.connectionChannels = this.connectionChannels.bind(this); - this.channelClientState = this.channelClientState.bind(this); - this.channelConsensusState = this.channelConsensusState.bind(this); - this.packetCommitment = this.packetCommitment.bind(this); - this.packetCommitments = this.packetCommitments.bind(this); - this.packetReceipt = this.packetReceipt.bind(this); - this.packetAcknowledgement = this.packetAcknowledgement.bind(this); - this.packetAcknowledgements = this.packetAcknowledgements.bind(this); - this.unreceivedPackets = this.unreceivedPackets.bind(this); - this.unreceivedAcks = this.unreceivedAcks.bind(this); - this.nextSequenceReceive = this.nextSequenceReceive.bind(this); - } - - channel(request: QueryChannelRequest): Promise { - const data = QueryChannelRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.channel.v1.Query", "Channel", data); - return promise.then(data => QueryChannelResponse.decode(new _m0.Reader(data))); - } - - channels(request: QueryChannelsRequest = { - pagination: undefined - }): Promise { - const data = QueryChannelsRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.channel.v1.Query", "Channels", data); - return promise.then(data => QueryChannelsResponse.decode(new _m0.Reader(data))); - } - - connectionChannels(request: QueryConnectionChannelsRequest): Promise { - const data = QueryConnectionChannelsRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.channel.v1.Query", "ConnectionChannels", data); - return promise.then(data => QueryConnectionChannelsResponse.decode(new _m0.Reader(data))); - } - - channelClientState(request: QueryChannelClientStateRequest): Promise { - const data = QueryChannelClientStateRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.channel.v1.Query", "ChannelClientState", data); - return promise.then(data => QueryChannelClientStateResponse.decode(new _m0.Reader(data))); - } - - channelConsensusState(request: QueryChannelConsensusStateRequest): Promise { - const data = QueryChannelConsensusStateRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.channel.v1.Query", "ChannelConsensusState", data); - return promise.then(data => QueryChannelConsensusStateResponse.decode(new _m0.Reader(data))); - } - - packetCommitment(request: QueryPacketCommitmentRequest): Promise { - const data = QueryPacketCommitmentRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.channel.v1.Query", "PacketCommitment", data); - return promise.then(data => QueryPacketCommitmentResponse.decode(new _m0.Reader(data))); - } - - packetCommitments(request: QueryPacketCommitmentsRequest): Promise { - const data = QueryPacketCommitmentsRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.channel.v1.Query", "PacketCommitments", data); - return promise.then(data => QueryPacketCommitmentsResponse.decode(new _m0.Reader(data))); - } - - packetReceipt(request: QueryPacketReceiptRequest): Promise { - const data = QueryPacketReceiptRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.channel.v1.Query", "PacketReceipt", data); - return promise.then(data => QueryPacketReceiptResponse.decode(new _m0.Reader(data))); - } - - packetAcknowledgement(request: QueryPacketAcknowledgementRequest): Promise { - const data = QueryPacketAcknowledgementRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.channel.v1.Query", "PacketAcknowledgement", data); - return promise.then(data => QueryPacketAcknowledgementResponse.decode(new _m0.Reader(data))); - } - - packetAcknowledgements(request: QueryPacketAcknowledgementsRequest): Promise { - const data = QueryPacketAcknowledgementsRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.channel.v1.Query", "PacketAcknowledgements", data); - return promise.then(data => QueryPacketAcknowledgementsResponse.decode(new _m0.Reader(data))); - } - - unreceivedPackets(request: QueryUnreceivedPacketsRequest): Promise { - const data = QueryUnreceivedPacketsRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.channel.v1.Query", "UnreceivedPackets", data); - return promise.then(data => QueryUnreceivedPacketsResponse.decode(new _m0.Reader(data))); - } - - unreceivedAcks(request: QueryUnreceivedAcksRequest): Promise { - const data = QueryUnreceivedAcksRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.channel.v1.Query", "UnreceivedAcks", data); - return promise.then(data => QueryUnreceivedAcksResponse.decode(new _m0.Reader(data))); - } - - nextSequenceReceive(request: QueryNextSequenceReceiveRequest): Promise { - const data = QueryNextSequenceReceiveRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.channel.v1.Query", "NextSequenceReceive", data); - return promise.then(data => QueryNextSequenceReceiveResponse.decode(new _m0.Reader(data))); - } - -} -export const createRpcQueryExtension = (base: QueryClient) => { - const rpc = createProtobufRpcClient(base); - const queryService = new QueryClientImpl(rpc); - return { - channel(request: QueryChannelRequest): Promise { - return queryService.channel(request); - }, - - channels(request?: QueryChannelsRequest): Promise { - return queryService.channels(request); - }, - - connectionChannels(request: QueryConnectionChannelsRequest): Promise { - return queryService.connectionChannels(request); - }, - - channelClientState(request: QueryChannelClientStateRequest): Promise { - return queryService.channelClientState(request); - }, - - channelConsensusState(request: QueryChannelConsensusStateRequest): Promise { - return queryService.channelConsensusState(request); - }, - - packetCommitment(request: QueryPacketCommitmentRequest): Promise { - return queryService.packetCommitment(request); - }, - - packetCommitments(request: QueryPacketCommitmentsRequest): Promise { - return queryService.packetCommitments(request); - }, - - packetReceipt(request: QueryPacketReceiptRequest): Promise { - return queryService.packetReceipt(request); - }, - - packetAcknowledgement(request: QueryPacketAcknowledgementRequest): Promise { - return queryService.packetAcknowledgement(request); - }, - - packetAcknowledgements(request: QueryPacketAcknowledgementsRequest): Promise { - return queryService.packetAcknowledgements(request); - }, - - unreceivedPackets(request: QueryUnreceivedPacketsRequest): Promise { - return queryService.unreceivedPackets(request); - }, - - unreceivedAcks(request: QueryUnreceivedAcksRequest): Promise { - return queryService.unreceivedAcks(request); - }, - - nextSequenceReceive(request: QueryNextSequenceReceiveRequest): Promise { - return queryService.nextSequenceReceive(request); - } - - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/channel/v1/query.ts b/packages/codegen/src/ibc/core/channel/v1/query.ts deleted file mode 100644 index c63fc1d4..00000000 --- a/packages/codegen/src/ibc/core/channel/v1/query.ts +++ /dev/null @@ -1,2326 +0,0 @@ -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../../../cosmos/base/query/v1beta1/pagination"; -import { Channel, ChannelSDKType, IdentifiedChannel, IdentifiedChannelSDKType, PacketState, PacketStateSDKType } from "./channel"; -import { Height, HeightSDKType, IdentifiedClientState, IdentifiedClientStateSDKType } from "../../client/v1/client"; -import { Any, AnySDKType } from "../../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../../helpers"; -/** QueryChannelRequest is the request type for the Query/Channel RPC method */ - -export interface QueryChannelRequest { - /** port unique identifier */ - portId: string; - /** channel unique identifier */ - - channelId: string; -} -/** QueryChannelRequest is the request type for the Query/Channel RPC method */ - -export interface QueryChannelRequestSDKType { - port_id: string; - channel_id: string; -} -/** - * 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. - */ - -export interface QueryChannelResponse { - /** channel associated with the request identifiers */ - channel?: Channel; - /** merkle proof of existence */ - - proof: Uint8Array; - /** height at which the proof was retrieved */ - - proofHeight?: Height; -} -/** - * 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. - */ - -export interface QueryChannelResponseSDKType { - channel?: ChannelSDKType; - proof: Uint8Array; - proof_height?: HeightSDKType; -} -/** QueryChannelsRequest is the request type for the Query/Channels RPC method */ - -export interface QueryChannelsRequest { - /** pagination request */ - pagination?: PageRequest; -} -/** QueryChannelsRequest is the request type for the Query/Channels RPC method */ - -export interface QueryChannelsRequestSDKType { - pagination?: PageRequestSDKType; -} -/** QueryChannelsResponse is the response type for the Query/Channels RPC method. */ - -export interface QueryChannelsResponse { - /** list of stored channels of the chain. */ - channels: IdentifiedChannel[]; - /** pagination response */ - - pagination?: PageResponse; - /** query block height */ - - height?: Height; -} -/** QueryChannelsResponse is the response type for the Query/Channels RPC method. */ - -export interface QueryChannelsResponseSDKType { - channels: IdentifiedChannelSDKType[]; - pagination?: PageResponseSDKType; - height?: HeightSDKType; -} -/** - * QueryConnectionChannelsRequest is the request type for the - * Query/QueryConnectionChannels RPC method - */ - -export interface QueryConnectionChannelsRequest { - /** connection unique identifier */ - connection: string; - /** pagination request */ - - pagination?: PageRequest; -} -/** - * QueryConnectionChannelsRequest is the request type for the - * Query/QueryConnectionChannels RPC method - */ - -export interface QueryConnectionChannelsRequestSDKType { - connection: string; - pagination?: PageRequestSDKType; -} -/** - * QueryConnectionChannelsResponse is the Response type for the - * Query/QueryConnectionChannels RPC method - */ - -export interface QueryConnectionChannelsResponse { - /** list of channels associated with a connection. */ - channels: IdentifiedChannel[]; - /** pagination response */ - - pagination?: PageResponse; - /** query block height */ - - height?: Height; -} -/** - * QueryConnectionChannelsResponse is the Response type for the - * Query/QueryConnectionChannels RPC method - */ - -export interface QueryConnectionChannelsResponseSDKType { - channels: IdentifiedChannelSDKType[]; - pagination?: PageResponseSDKType; - height?: HeightSDKType; -} -/** - * QueryChannelClientStateRequest is the request type for the Query/ClientState - * RPC method - */ - -export interface QueryChannelClientStateRequest { - /** port unique identifier */ - portId: string; - /** channel unique identifier */ - - channelId: string; -} -/** - * QueryChannelClientStateRequest is the request type for the Query/ClientState - * RPC method - */ - -export interface QueryChannelClientStateRequestSDKType { - port_id: string; - channel_id: string; -} -/** - * QueryChannelClientStateResponse is the Response type for the - * Query/QueryChannelClientState RPC method - */ - -export interface QueryChannelClientStateResponse { - /** client state associated with the channel */ - identifiedClientState?: IdentifiedClientState; - /** merkle proof of existence */ - - proof: Uint8Array; - /** height at which the proof was retrieved */ - - proofHeight?: Height; -} -/** - * QueryChannelClientStateResponse is the Response type for the - * Query/QueryChannelClientState RPC method - */ - -export interface QueryChannelClientStateResponseSDKType { - identified_client_state?: IdentifiedClientStateSDKType; - proof: Uint8Array; - proof_height?: HeightSDKType; -} -/** - * QueryChannelConsensusStateRequest is the request type for the - * Query/ConsensusState RPC method - */ - -export interface QueryChannelConsensusStateRequest { - /** port unique identifier */ - portId: string; - /** channel unique identifier */ - - channelId: string; - /** revision number of the consensus state */ - - revisionNumber: Long; - /** revision height of the consensus state */ - - revisionHeight: Long; -} -/** - * QueryChannelConsensusStateRequest is the request type for the - * Query/ConsensusState RPC method - */ - -export interface QueryChannelConsensusStateRequestSDKType { - port_id: string; - channel_id: string; - revision_number: Long; - revision_height: Long; -} -/** - * QueryChannelClientStateResponse is the Response type for the - * Query/QueryChannelClientState RPC method - */ - -export interface QueryChannelConsensusStateResponse { - /** consensus state associated with the channel */ - consensusState?: Any; - /** client ID associated with the consensus state */ - - clientId: string; - /** merkle proof of existence */ - - proof: Uint8Array; - /** height at which the proof was retrieved */ - - proofHeight?: Height; -} -/** - * QueryChannelClientStateResponse is the Response type for the - * Query/QueryChannelClientState RPC method - */ - -export interface QueryChannelConsensusStateResponseSDKType { - consensus_state?: AnySDKType; - client_id: string; - proof: Uint8Array; - proof_height?: HeightSDKType; -} -/** - * QueryPacketCommitmentRequest is the request type for the - * Query/PacketCommitment RPC method - */ - -export interface QueryPacketCommitmentRequest { - /** port unique identifier */ - portId: string; - /** channel unique identifier */ - - channelId: string; - /** packet sequence */ - - sequence: Long; -} -/** - * QueryPacketCommitmentRequest is the request type for the - * Query/PacketCommitment RPC method - */ - -export interface QueryPacketCommitmentRequestSDKType { - port_id: string; - channel_id: string; - sequence: Long; -} -/** - * QueryPacketCommitmentResponse defines the client query response for a packet - * which also includes a proof and the height from which the proof was - * retrieved - */ - -export interface QueryPacketCommitmentResponse { - /** packet associated with the request fields */ - commitment: Uint8Array; - /** merkle proof of existence */ - - proof: Uint8Array; - /** height at which the proof was retrieved */ - - proofHeight?: Height; -} -/** - * QueryPacketCommitmentResponse defines the client query response for a packet - * which also includes a proof and the height from which the proof was - * retrieved - */ - -export interface QueryPacketCommitmentResponseSDKType { - commitment: Uint8Array; - proof: Uint8Array; - proof_height?: HeightSDKType; -} -/** - * QueryPacketCommitmentsRequest is the request type for the - * Query/QueryPacketCommitments RPC method - */ - -export interface QueryPacketCommitmentsRequest { - /** port unique identifier */ - portId: string; - /** channel unique identifier */ - - channelId: string; - /** pagination request */ - - pagination?: PageRequest; -} -/** - * QueryPacketCommitmentsRequest is the request type for the - * Query/QueryPacketCommitments RPC method - */ - -export interface QueryPacketCommitmentsRequestSDKType { - port_id: string; - channel_id: string; - pagination?: PageRequestSDKType; -} -/** - * QueryPacketCommitmentsResponse is the request type for the - * Query/QueryPacketCommitments RPC method - */ - -export interface QueryPacketCommitmentsResponse { - commitments: PacketState[]; - /** pagination response */ - - pagination?: PageResponse; - /** query block height */ - - height?: Height; -} -/** - * QueryPacketCommitmentsResponse is the request type for the - * Query/QueryPacketCommitments RPC method - */ - -export interface QueryPacketCommitmentsResponseSDKType { - commitments: PacketStateSDKType[]; - pagination?: PageResponseSDKType; - height?: HeightSDKType; -} -/** - * QueryPacketReceiptRequest is the request type for the - * Query/PacketReceipt RPC method - */ - -export interface QueryPacketReceiptRequest { - /** port unique identifier */ - portId: string; - /** channel unique identifier */ - - channelId: string; - /** packet sequence */ - - sequence: Long; -} -/** - * QueryPacketReceiptRequest is the request type for the - * Query/PacketReceipt RPC method - */ - -export interface QueryPacketReceiptRequestSDKType { - port_id: string; - channel_id: string; - sequence: Long; -} -/** - * QueryPacketReceiptResponse defines the client query response for a packet - * receipt which also includes a proof, and the height from which the proof was - * retrieved - */ - -export interface QueryPacketReceiptResponse { - /** success flag for if receipt exists */ - received: boolean; - /** merkle proof of existence */ - - proof: Uint8Array; - /** height at which the proof was retrieved */ - - proofHeight?: Height; -} -/** - * QueryPacketReceiptResponse defines the client query response for a packet - * receipt which also includes a proof, and the height from which the proof was - * retrieved - */ - -export interface QueryPacketReceiptResponseSDKType { - received: boolean; - proof: Uint8Array; - proof_height?: HeightSDKType; -} -/** - * QueryPacketAcknowledgementRequest is the request type for the - * Query/PacketAcknowledgement RPC method - */ - -export interface QueryPacketAcknowledgementRequest { - /** port unique identifier */ - portId: string; - /** channel unique identifier */ - - channelId: string; - /** packet sequence */ - - sequence: Long; -} -/** - * QueryPacketAcknowledgementRequest is the request type for the - * Query/PacketAcknowledgement RPC method - */ - -export interface QueryPacketAcknowledgementRequestSDKType { - port_id: string; - channel_id: string; - sequence: Long; -} -/** - * QueryPacketAcknowledgementResponse defines the client query response for a - * packet which also includes a proof and the height from which the - * proof was retrieved - */ - -export interface QueryPacketAcknowledgementResponse { - /** packet associated with the request fields */ - acknowledgement: Uint8Array; - /** merkle proof of existence */ - - proof: Uint8Array; - /** height at which the proof was retrieved */ - - proofHeight?: Height; -} -/** - * QueryPacketAcknowledgementResponse defines the client query response for a - * packet which also includes a proof and the height from which the - * proof was retrieved - */ - -export interface QueryPacketAcknowledgementResponseSDKType { - acknowledgement: Uint8Array; - proof: Uint8Array; - proof_height?: HeightSDKType; -} -/** - * QueryPacketAcknowledgementsRequest is the request type for the - * Query/QueryPacketCommitments RPC method - */ - -export interface QueryPacketAcknowledgementsRequest { - /** port unique identifier */ - portId: string; - /** channel unique identifier */ - - channelId: string; - /** pagination request */ - - pagination?: PageRequest; - /** list of packet sequences */ - - packetCommitmentSequences: Long[]; -} -/** - * QueryPacketAcknowledgementsRequest is the request type for the - * Query/QueryPacketCommitments RPC method - */ - -export interface QueryPacketAcknowledgementsRequestSDKType { - port_id: string; - channel_id: string; - pagination?: PageRequestSDKType; - packet_commitment_sequences: Long[]; -} -/** - * QueryPacketAcknowledgemetsResponse is the request type for the - * Query/QueryPacketAcknowledgements RPC method - */ - -export interface QueryPacketAcknowledgementsResponse { - acknowledgements: PacketState[]; - /** pagination response */ - - pagination?: PageResponse; - /** query block height */ - - height?: Height; -} -/** - * QueryPacketAcknowledgemetsResponse is the request type for the - * Query/QueryPacketAcknowledgements RPC method - */ - -export interface QueryPacketAcknowledgementsResponseSDKType { - acknowledgements: PacketStateSDKType[]; - pagination?: PageResponseSDKType; - height?: HeightSDKType; -} -/** - * QueryUnreceivedPacketsRequest is the request type for the - * Query/UnreceivedPackets RPC method - */ - -export interface QueryUnreceivedPacketsRequest { - /** port unique identifier */ - portId: string; - /** channel unique identifier */ - - channelId: string; - /** list of packet sequences */ - - packetCommitmentSequences: Long[]; -} -/** - * QueryUnreceivedPacketsRequest is the request type for the - * Query/UnreceivedPackets RPC method - */ - -export interface QueryUnreceivedPacketsRequestSDKType { - port_id: string; - channel_id: string; - packet_commitment_sequences: Long[]; -} -/** - * QueryUnreceivedPacketsResponse is the response type for the - * Query/UnreceivedPacketCommitments RPC method - */ - -export interface QueryUnreceivedPacketsResponse { - /** list of unreceived packet sequences */ - sequences: Long[]; - /** query block height */ - - height?: Height; -} -/** - * QueryUnreceivedPacketsResponse is the response type for the - * Query/UnreceivedPacketCommitments RPC method - */ - -export interface QueryUnreceivedPacketsResponseSDKType { - sequences: Long[]; - height?: HeightSDKType; -} -/** - * QueryUnreceivedAcks is the request type for the - * Query/UnreceivedAcks RPC method - */ - -export interface QueryUnreceivedAcksRequest { - /** port unique identifier */ - portId: string; - /** channel unique identifier */ - - channelId: string; - /** list of acknowledgement sequences */ - - packetAckSequences: Long[]; -} -/** - * QueryUnreceivedAcks is the request type for the - * Query/UnreceivedAcks RPC method - */ - -export interface QueryUnreceivedAcksRequestSDKType { - port_id: string; - channel_id: string; - packet_ack_sequences: Long[]; -} -/** - * QueryUnreceivedAcksResponse is the response type for the - * Query/UnreceivedAcks RPC method - */ - -export interface QueryUnreceivedAcksResponse { - /** list of unreceived acknowledgement sequences */ - sequences: Long[]; - /** query block height */ - - height?: Height; -} -/** - * QueryUnreceivedAcksResponse is the response type for the - * Query/UnreceivedAcks RPC method - */ - -export interface QueryUnreceivedAcksResponseSDKType { - sequences: Long[]; - height?: HeightSDKType; -} -/** - * QueryNextSequenceReceiveRequest is the request type for the - * Query/QueryNextSequenceReceiveRequest RPC method - */ - -export interface QueryNextSequenceReceiveRequest { - /** port unique identifier */ - portId: string; - /** channel unique identifier */ - - channelId: string; -} -/** - * QueryNextSequenceReceiveRequest is the request type for the - * Query/QueryNextSequenceReceiveRequest RPC method - */ - -export interface QueryNextSequenceReceiveRequestSDKType { - port_id: string; - channel_id: string; -} -/** - * QuerySequenceResponse is the request type for the - * Query/QueryNextSequenceReceiveResponse RPC method - */ - -export interface QueryNextSequenceReceiveResponse { - /** next sequence receive number */ - nextSequenceReceive: Long; - /** merkle proof of existence */ - - proof: Uint8Array; - /** height at which the proof was retrieved */ - - proofHeight?: Height; -} -/** - * QuerySequenceResponse is the request type for the - * Query/QueryNextSequenceReceiveResponse RPC method - */ - -export interface QueryNextSequenceReceiveResponseSDKType { - next_sequence_receive: Long; - proof: Uint8Array; - proof_height?: HeightSDKType; -} - -function createBaseQueryChannelRequest(): QueryChannelRequest { - return { - portId: "", - channelId: "" - }; -} - -export const QueryChannelRequest = { - encode(message: QueryChannelRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.portId !== "") { - writer.uint32(10).string(message.portId); - } - - if (message.channelId !== "") { - writer.uint32(18).string(message.channelId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryChannelRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryChannelRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.portId = reader.string(); - break; - - case 2: - message.channelId = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryChannelRequest { - const message = createBaseQueryChannelRequest(); - message.portId = object.portId ?? ""; - message.channelId = object.channelId ?? ""; - return message; - } - -}; - -function createBaseQueryChannelResponse(): QueryChannelResponse { - return { - channel: undefined, - proof: new Uint8Array(), - proofHeight: undefined - }; -} - -export const QueryChannelResponse = { - encode(message: QueryChannelResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.channel !== undefined) { - Channel.encode(message.channel, writer.uint32(10).fork()).ldelim(); - } - - if (message.proof.length !== 0) { - writer.uint32(18).bytes(message.proof); - } - - if (message.proofHeight !== undefined) { - Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryChannelResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryChannelResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.channel = Channel.decode(reader, reader.uint32()); - break; - - case 2: - message.proof = reader.bytes(); - break; - - case 3: - message.proofHeight = Height.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryChannelResponse { - const message = createBaseQueryChannelResponse(); - message.channel = object.channel !== undefined && object.channel !== null ? Channel.fromPartial(object.channel) : undefined; - message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined; - return message; - } - -}; - -function createBaseQueryChannelsRequest(): QueryChannelsRequest { - return { - pagination: undefined - }; -} - -export const QueryChannelsRequest = { - encode(message: QueryChannelsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryChannelsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryChannelsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryChannelsRequest { - const message = createBaseQueryChannelsRequest(); - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryChannelsResponse(): QueryChannelsResponse { - return { - channels: [], - pagination: undefined, - height: undefined - }; -} - -export const QueryChannelsResponse = { - encode(message: QueryChannelsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.channels) { - IdentifiedChannel.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - if (message.height !== undefined) { - Height.encode(message.height, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryChannelsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryChannelsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.channels.push(IdentifiedChannel.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - case 3: - message.height = Height.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryChannelsResponse { - const message = createBaseQueryChannelsResponse(); - message.channels = object.channels?.map(e => IdentifiedChannel.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - message.height = object.height !== undefined && object.height !== null ? Height.fromPartial(object.height) : undefined; - return message; - } - -}; - -function createBaseQueryConnectionChannelsRequest(): QueryConnectionChannelsRequest { - return { - connection: "", - pagination: undefined - }; -} - -export const QueryConnectionChannelsRequest = { - encode(message: QueryConnectionChannelsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.connection !== "") { - writer.uint32(10).string(message.connection); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConnectionChannelsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryConnectionChannelsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.connection = reader.string(); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryConnectionChannelsRequest { - const message = createBaseQueryConnectionChannelsRequest(); - message.connection = object.connection ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryConnectionChannelsResponse(): QueryConnectionChannelsResponse { - return { - channels: [], - pagination: undefined, - height: undefined - }; -} - -export const QueryConnectionChannelsResponse = { - encode(message: QueryConnectionChannelsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.channels) { - IdentifiedChannel.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - if (message.height !== undefined) { - Height.encode(message.height, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConnectionChannelsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryConnectionChannelsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.channels.push(IdentifiedChannel.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - case 3: - message.height = Height.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryConnectionChannelsResponse { - const message = createBaseQueryConnectionChannelsResponse(); - message.channels = object.channels?.map(e => IdentifiedChannel.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - message.height = object.height !== undefined && object.height !== null ? Height.fromPartial(object.height) : undefined; - return message; - } - -}; - -function createBaseQueryChannelClientStateRequest(): QueryChannelClientStateRequest { - return { - portId: "", - channelId: "" - }; -} - -export const QueryChannelClientStateRequest = { - encode(message: QueryChannelClientStateRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.portId !== "") { - writer.uint32(10).string(message.portId); - } - - if (message.channelId !== "") { - writer.uint32(18).string(message.channelId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryChannelClientStateRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryChannelClientStateRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.portId = reader.string(); - break; - - case 2: - message.channelId = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryChannelClientStateRequest { - const message = createBaseQueryChannelClientStateRequest(); - message.portId = object.portId ?? ""; - message.channelId = object.channelId ?? ""; - return message; - } - -}; - -function createBaseQueryChannelClientStateResponse(): QueryChannelClientStateResponse { - return { - identifiedClientState: undefined, - proof: new Uint8Array(), - proofHeight: undefined - }; -} - -export const QueryChannelClientStateResponse = { - encode(message: QueryChannelClientStateResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.identifiedClientState !== undefined) { - IdentifiedClientState.encode(message.identifiedClientState, writer.uint32(10).fork()).ldelim(); - } - - if (message.proof.length !== 0) { - writer.uint32(18).bytes(message.proof); - } - - if (message.proofHeight !== undefined) { - Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryChannelClientStateResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryChannelClientStateResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.identifiedClientState = IdentifiedClientState.decode(reader, reader.uint32()); - break; - - case 2: - message.proof = reader.bytes(); - break; - - case 3: - message.proofHeight = Height.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryChannelClientStateResponse { - const message = createBaseQueryChannelClientStateResponse(); - message.identifiedClientState = object.identifiedClientState !== undefined && object.identifiedClientState !== null ? IdentifiedClientState.fromPartial(object.identifiedClientState) : undefined; - message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined; - return message; - } - -}; - -function createBaseQueryChannelConsensusStateRequest(): QueryChannelConsensusStateRequest { - return { - portId: "", - channelId: "", - revisionNumber: Long.UZERO, - revisionHeight: Long.UZERO - }; -} - -export const QueryChannelConsensusStateRequest = { - encode(message: QueryChannelConsensusStateRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.portId !== "") { - writer.uint32(10).string(message.portId); - } - - if (message.channelId !== "") { - writer.uint32(18).string(message.channelId); - } - - if (!message.revisionNumber.isZero()) { - writer.uint32(24).uint64(message.revisionNumber); - } - - if (!message.revisionHeight.isZero()) { - writer.uint32(32).uint64(message.revisionHeight); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryChannelConsensusStateRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryChannelConsensusStateRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.portId = reader.string(); - break; - - case 2: - message.channelId = reader.string(); - break; - - case 3: - message.revisionNumber = (reader.uint64() as Long); - break; - - case 4: - message.revisionHeight = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryChannelConsensusStateRequest { - const message = createBaseQueryChannelConsensusStateRequest(); - message.portId = object.portId ?? ""; - message.channelId = object.channelId ?? ""; - message.revisionNumber = object.revisionNumber !== undefined && object.revisionNumber !== null ? Long.fromValue(object.revisionNumber) : Long.UZERO; - message.revisionHeight = object.revisionHeight !== undefined && object.revisionHeight !== null ? Long.fromValue(object.revisionHeight) : Long.UZERO; - return message; - } - -}; - -function createBaseQueryChannelConsensusStateResponse(): QueryChannelConsensusStateResponse { - return { - consensusState: undefined, - clientId: "", - proof: new Uint8Array(), - proofHeight: undefined - }; -} - -export const QueryChannelConsensusStateResponse = { - encode(message: QueryChannelConsensusStateResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.consensusState !== undefined) { - Any.encode(message.consensusState, writer.uint32(10).fork()).ldelim(); - } - - if (message.clientId !== "") { - writer.uint32(18).string(message.clientId); - } - - if (message.proof.length !== 0) { - writer.uint32(26).bytes(message.proof); - } - - if (message.proofHeight !== undefined) { - Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryChannelConsensusStateResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryChannelConsensusStateResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.consensusState = Any.decode(reader, reader.uint32()); - break; - - case 2: - message.clientId = reader.string(); - break; - - case 3: - message.proof = reader.bytes(); - break; - - case 4: - message.proofHeight = Height.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryChannelConsensusStateResponse { - const message = createBaseQueryChannelConsensusStateResponse(); - message.consensusState = object.consensusState !== undefined && object.consensusState !== null ? Any.fromPartial(object.consensusState) : undefined; - message.clientId = object.clientId ?? ""; - message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined; - return message; - } - -}; - -function createBaseQueryPacketCommitmentRequest(): QueryPacketCommitmentRequest { - return { - portId: "", - channelId: "", - sequence: Long.UZERO - }; -} - -export const QueryPacketCommitmentRequest = { - encode(message: QueryPacketCommitmentRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.portId !== "") { - writer.uint32(10).string(message.portId); - } - - if (message.channelId !== "") { - writer.uint32(18).string(message.channelId); - } - - if (!message.sequence.isZero()) { - writer.uint32(24).uint64(message.sequence); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPacketCommitmentRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryPacketCommitmentRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.portId = reader.string(); - break; - - case 2: - message.channelId = reader.string(); - break; - - case 3: - message.sequence = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryPacketCommitmentRequest { - const message = createBaseQueryPacketCommitmentRequest(); - message.portId = object.portId ?? ""; - message.channelId = object.channelId ?? ""; - message.sequence = object.sequence !== undefined && object.sequence !== null ? Long.fromValue(object.sequence) : Long.UZERO; - return message; - } - -}; - -function createBaseQueryPacketCommitmentResponse(): QueryPacketCommitmentResponse { - return { - commitment: new Uint8Array(), - proof: new Uint8Array(), - proofHeight: undefined - }; -} - -export const QueryPacketCommitmentResponse = { - encode(message: QueryPacketCommitmentResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.commitment.length !== 0) { - writer.uint32(10).bytes(message.commitment); - } - - if (message.proof.length !== 0) { - writer.uint32(18).bytes(message.proof); - } - - if (message.proofHeight !== undefined) { - Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPacketCommitmentResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryPacketCommitmentResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.commitment = reader.bytes(); - break; - - case 2: - message.proof = reader.bytes(); - break; - - case 3: - message.proofHeight = Height.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryPacketCommitmentResponse { - const message = createBaseQueryPacketCommitmentResponse(); - message.commitment = object.commitment ?? new Uint8Array(); - message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined; - return message; - } - -}; - -function createBaseQueryPacketCommitmentsRequest(): QueryPacketCommitmentsRequest { - return { - portId: "", - channelId: "", - pagination: undefined - }; -} - -export const QueryPacketCommitmentsRequest = { - encode(message: QueryPacketCommitmentsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.portId !== "") { - writer.uint32(10).string(message.portId); - } - - if (message.channelId !== "") { - writer.uint32(18).string(message.channelId); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPacketCommitmentsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryPacketCommitmentsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.portId = reader.string(); - break; - - case 2: - message.channelId = reader.string(); - break; - - case 3: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryPacketCommitmentsRequest { - const message = createBaseQueryPacketCommitmentsRequest(); - message.portId = object.portId ?? ""; - message.channelId = object.channelId ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryPacketCommitmentsResponse(): QueryPacketCommitmentsResponse { - return { - commitments: [], - pagination: undefined, - height: undefined - }; -} - -export const QueryPacketCommitmentsResponse = { - encode(message: QueryPacketCommitmentsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.commitments) { - PacketState.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - if (message.height !== undefined) { - Height.encode(message.height, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPacketCommitmentsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryPacketCommitmentsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.commitments.push(PacketState.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - case 3: - message.height = Height.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryPacketCommitmentsResponse { - const message = createBaseQueryPacketCommitmentsResponse(); - message.commitments = object.commitments?.map(e => PacketState.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - message.height = object.height !== undefined && object.height !== null ? Height.fromPartial(object.height) : undefined; - return message; - } - -}; - -function createBaseQueryPacketReceiptRequest(): QueryPacketReceiptRequest { - return { - portId: "", - channelId: "", - sequence: Long.UZERO - }; -} - -export const QueryPacketReceiptRequest = { - encode(message: QueryPacketReceiptRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.portId !== "") { - writer.uint32(10).string(message.portId); - } - - if (message.channelId !== "") { - writer.uint32(18).string(message.channelId); - } - - if (!message.sequence.isZero()) { - writer.uint32(24).uint64(message.sequence); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPacketReceiptRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryPacketReceiptRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.portId = reader.string(); - break; - - case 2: - message.channelId = reader.string(); - break; - - case 3: - message.sequence = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryPacketReceiptRequest { - const message = createBaseQueryPacketReceiptRequest(); - message.portId = object.portId ?? ""; - message.channelId = object.channelId ?? ""; - message.sequence = object.sequence !== undefined && object.sequence !== null ? Long.fromValue(object.sequence) : Long.UZERO; - return message; - } - -}; - -function createBaseQueryPacketReceiptResponse(): QueryPacketReceiptResponse { - return { - received: false, - proof: new Uint8Array(), - proofHeight: undefined - }; -} - -export const QueryPacketReceiptResponse = { - encode(message: QueryPacketReceiptResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.received === true) { - writer.uint32(16).bool(message.received); - } - - if (message.proof.length !== 0) { - writer.uint32(26).bytes(message.proof); - } - - if (message.proofHeight !== undefined) { - Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPacketReceiptResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryPacketReceiptResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 2: - message.received = reader.bool(); - break; - - case 3: - message.proof = reader.bytes(); - break; - - case 4: - message.proofHeight = Height.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryPacketReceiptResponse { - const message = createBaseQueryPacketReceiptResponse(); - message.received = object.received ?? false; - message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined; - return message; - } - -}; - -function createBaseQueryPacketAcknowledgementRequest(): QueryPacketAcknowledgementRequest { - return { - portId: "", - channelId: "", - sequence: Long.UZERO - }; -} - -export const QueryPacketAcknowledgementRequest = { - encode(message: QueryPacketAcknowledgementRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.portId !== "") { - writer.uint32(10).string(message.portId); - } - - if (message.channelId !== "") { - writer.uint32(18).string(message.channelId); - } - - if (!message.sequence.isZero()) { - writer.uint32(24).uint64(message.sequence); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPacketAcknowledgementRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryPacketAcknowledgementRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.portId = reader.string(); - break; - - case 2: - message.channelId = reader.string(); - break; - - case 3: - message.sequence = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryPacketAcknowledgementRequest { - const message = createBaseQueryPacketAcknowledgementRequest(); - message.portId = object.portId ?? ""; - message.channelId = object.channelId ?? ""; - message.sequence = object.sequence !== undefined && object.sequence !== null ? Long.fromValue(object.sequence) : Long.UZERO; - return message; - } - -}; - -function createBaseQueryPacketAcknowledgementResponse(): QueryPacketAcknowledgementResponse { - return { - acknowledgement: new Uint8Array(), - proof: new Uint8Array(), - proofHeight: undefined - }; -} - -export const QueryPacketAcknowledgementResponse = { - encode(message: QueryPacketAcknowledgementResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.acknowledgement.length !== 0) { - writer.uint32(10).bytes(message.acknowledgement); - } - - if (message.proof.length !== 0) { - writer.uint32(18).bytes(message.proof); - } - - if (message.proofHeight !== undefined) { - Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPacketAcknowledgementResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryPacketAcknowledgementResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.acknowledgement = reader.bytes(); - break; - - case 2: - message.proof = reader.bytes(); - break; - - case 3: - message.proofHeight = Height.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryPacketAcknowledgementResponse { - const message = createBaseQueryPacketAcknowledgementResponse(); - message.acknowledgement = object.acknowledgement ?? new Uint8Array(); - message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined; - return message; - } - -}; - -function createBaseQueryPacketAcknowledgementsRequest(): QueryPacketAcknowledgementsRequest { - return { - portId: "", - channelId: "", - pagination: undefined, - packetCommitmentSequences: [] - }; -} - -export const QueryPacketAcknowledgementsRequest = { - encode(message: QueryPacketAcknowledgementsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.portId !== "") { - writer.uint32(10).string(message.portId); - } - - if (message.channelId !== "") { - writer.uint32(18).string(message.channelId); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(26).fork()).ldelim(); - } - - writer.uint32(34).fork(); - - for (const v of message.packetCommitmentSequences) { - writer.uint64(v); - } - - writer.ldelim(); - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPacketAcknowledgementsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryPacketAcknowledgementsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.portId = reader.string(); - break; - - case 2: - message.channelId = reader.string(); - break; - - case 3: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - case 4: - if ((tag & 7) === 2) { - const end2 = reader.uint32() + reader.pos; - - while (reader.pos < end2) { - message.packetCommitmentSequences.push((reader.uint64() as Long)); - } - } else { - message.packetCommitmentSequences.push((reader.uint64() as Long)); - } - - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryPacketAcknowledgementsRequest { - const message = createBaseQueryPacketAcknowledgementsRequest(); - message.portId = object.portId ?? ""; - message.channelId = object.channelId ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - message.packetCommitmentSequences = object.packetCommitmentSequences?.map(e => Long.fromValue(e)) || []; - return message; - } - -}; - -function createBaseQueryPacketAcknowledgementsResponse(): QueryPacketAcknowledgementsResponse { - return { - acknowledgements: [], - pagination: undefined, - height: undefined - }; -} - -export const QueryPacketAcknowledgementsResponse = { - encode(message: QueryPacketAcknowledgementsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.acknowledgements) { - PacketState.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - if (message.height !== undefined) { - Height.encode(message.height, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryPacketAcknowledgementsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryPacketAcknowledgementsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.acknowledgements.push(PacketState.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - case 3: - message.height = Height.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryPacketAcknowledgementsResponse { - const message = createBaseQueryPacketAcknowledgementsResponse(); - message.acknowledgements = object.acknowledgements?.map(e => PacketState.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - message.height = object.height !== undefined && object.height !== null ? Height.fromPartial(object.height) : undefined; - return message; - } - -}; - -function createBaseQueryUnreceivedPacketsRequest(): QueryUnreceivedPacketsRequest { - return { - portId: "", - channelId: "", - packetCommitmentSequences: [] - }; -} - -export const QueryUnreceivedPacketsRequest = { - encode(message: QueryUnreceivedPacketsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.portId !== "") { - writer.uint32(10).string(message.portId); - } - - if (message.channelId !== "") { - writer.uint32(18).string(message.channelId); - } - - writer.uint32(26).fork(); - - for (const v of message.packetCommitmentSequences) { - writer.uint64(v); - } - - writer.ldelim(); - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryUnreceivedPacketsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryUnreceivedPacketsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.portId = reader.string(); - break; - - case 2: - message.channelId = reader.string(); - break; - - case 3: - if ((tag & 7) === 2) { - const end2 = reader.uint32() + reader.pos; - - while (reader.pos < end2) { - message.packetCommitmentSequences.push((reader.uint64() as Long)); - } - } else { - message.packetCommitmentSequences.push((reader.uint64() as Long)); - } - - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryUnreceivedPacketsRequest { - const message = createBaseQueryUnreceivedPacketsRequest(); - message.portId = object.portId ?? ""; - message.channelId = object.channelId ?? ""; - message.packetCommitmentSequences = object.packetCommitmentSequences?.map(e => Long.fromValue(e)) || []; - return message; - } - -}; - -function createBaseQueryUnreceivedPacketsResponse(): QueryUnreceivedPacketsResponse { - return { - sequences: [], - height: undefined - }; -} - -export const QueryUnreceivedPacketsResponse = { - encode(message: QueryUnreceivedPacketsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - writer.uint32(10).fork(); - - for (const v of message.sequences) { - writer.uint64(v); - } - - writer.ldelim(); - - if (message.height !== undefined) { - Height.encode(message.height, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryUnreceivedPacketsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryUnreceivedPacketsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - if ((tag & 7) === 2) { - const end2 = reader.uint32() + reader.pos; - - while (reader.pos < end2) { - message.sequences.push((reader.uint64() as Long)); - } - } else { - message.sequences.push((reader.uint64() as Long)); - } - - break; - - case 2: - message.height = Height.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryUnreceivedPacketsResponse { - const message = createBaseQueryUnreceivedPacketsResponse(); - message.sequences = object.sequences?.map(e => Long.fromValue(e)) || []; - message.height = object.height !== undefined && object.height !== null ? Height.fromPartial(object.height) : undefined; - return message; - } - -}; - -function createBaseQueryUnreceivedAcksRequest(): QueryUnreceivedAcksRequest { - return { - portId: "", - channelId: "", - packetAckSequences: [] - }; -} - -export const QueryUnreceivedAcksRequest = { - encode(message: QueryUnreceivedAcksRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.portId !== "") { - writer.uint32(10).string(message.portId); - } - - if (message.channelId !== "") { - writer.uint32(18).string(message.channelId); - } - - writer.uint32(26).fork(); - - for (const v of message.packetAckSequences) { - writer.uint64(v); - } - - writer.ldelim(); - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryUnreceivedAcksRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryUnreceivedAcksRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.portId = reader.string(); - break; - - case 2: - message.channelId = reader.string(); - break; - - case 3: - if ((tag & 7) === 2) { - const end2 = reader.uint32() + reader.pos; - - while (reader.pos < end2) { - message.packetAckSequences.push((reader.uint64() as Long)); - } - } else { - message.packetAckSequences.push((reader.uint64() as Long)); - } - - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryUnreceivedAcksRequest { - const message = createBaseQueryUnreceivedAcksRequest(); - message.portId = object.portId ?? ""; - message.channelId = object.channelId ?? ""; - message.packetAckSequences = object.packetAckSequences?.map(e => Long.fromValue(e)) || []; - return message; - } - -}; - -function createBaseQueryUnreceivedAcksResponse(): QueryUnreceivedAcksResponse { - return { - sequences: [], - height: undefined - }; -} - -export const QueryUnreceivedAcksResponse = { - encode(message: QueryUnreceivedAcksResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - writer.uint32(10).fork(); - - for (const v of message.sequences) { - writer.uint64(v); - } - - writer.ldelim(); - - if (message.height !== undefined) { - Height.encode(message.height, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryUnreceivedAcksResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryUnreceivedAcksResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - if ((tag & 7) === 2) { - const end2 = reader.uint32() + reader.pos; - - while (reader.pos < end2) { - message.sequences.push((reader.uint64() as Long)); - } - } else { - message.sequences.push((reader.uint64() as Long)); - } - - break; - - case 2: - message.height = Height.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryUnreceivedAcksResponse { - const message = createBaseQueryUnreceivedAcksResponse(); - message.sequences = object.sequences?.map(e => Long.fromValue(e)) || []; - message.height = object.height !== undefined && object.height !== null ? Height.fromPartial(object.height) : undefined; - return message; - } - -}; - -function createBaseQueryNextSequenceReceiveRequest(): QueryNextSequenceReceiveRequest { - return { - portId: "", - channelId: "" - }; -} - -export const QueryNextSequenceReceiveRequest = { - encode(message: QueryNextSequenceReceiveRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.portId !== "") { - writer.uint32(10).string(message.portId); - } - - if (message.channelId !== "") { - writer.uint32(18).string(message.channelId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryNextSequenceReceiveRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryNextSequenceReceiveRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.portId = reader.string(); - break; - - case 2: - message.channelId = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryNextSequenceReceiveRequest { - const message = createBaseQueryNextSequenceReceiveRequest(); - message.portId = object.portId ?? ""; - message.channelId = object.channelId ?? ""; - return message; - } - -}; - -function createBaseQueryNextSequenceReceiveResponse(): QueryNextSequenceReceiveResponse { - return { - nextSequenceReceive: Long.UZERO, - proof: new Uint8Array(), - proofHeight: undefined - }; -} - -export const QueryNextSequenceReceiveResponse = { - encode(message: QueryNextSequenceReceiveResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.nextSequenceReceive.isZero()) { - writer.uint32(8).uint64(message.nextSequenceReceive); - } - - if (message.proof.length !== 0) { - writer.uint32(18).bytes(message.proof); - } - - if (message.proofHeight !== undefined) { - Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryNextSequenceReceiveResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryNextSequenceReceiveResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.nextSequenceReceive = (reader.uint64() as Long); - break; - - case 2: - message.proof = reader.bytes(); - break; - - case 3: - message.proofHeight = Height.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryNextSequenceReceiveResponse { - const message = createBaseQueryNextSequenceReceiveResponse(); - message.nextSequenceReceive = object.nextSequenceReceive !== undefined && object.nextSequenceReceive !== null ? Long.fromValue(object.nextSequenceReceive) : Long.UZERO; - message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/channel/v1/tx.rpc.msg.ts b/packages/codegen/src/ibc/core/channel/v1/tx.rpc.msg.ts deleted file mode 100644 index b9ebcc50..00000000 --- a/packages/codegen/src/ibc/core/channel/v1/tx.rpc.msg.ts +++ /dev/null @@ -1,117 +0,0 @@ -import { Rpc } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { MsgChannelOpenInit, MsgChannelOpenInitResponse, MsgChannelOpenTry, MsgChannelOpenTryResponse, MsgChannelOpenAck, MsgChannelOpenAckResponse, MsgChannelOpenConfirm, MsgChannelOpenConfirmResponse, MsgChannelCloseInit, MsgChannelCloseInitResponse, MsgChannelCloseConfirm, MsgChannelCloseConfirmResponse, MsgRecvPacket, MsgRecvPacketResponse, MsgTimeout, MsgTimeoutResponse, MsgTimeoutOnClose, MsgTimeoutOnCloseResponse, MsgAcknowledgement, MsgAcknowledgementResponse } from "./tx"; -/** Msg defines the ibc/channel Msg service. */ - -export interface Msg { - /** ChannelOpenInit defines a rpc handler method for MsgChannelOpenInit. */ - channelOpenInit(request: MsgChannelOpenInit): Promise; - /** ChannelOpenTry defines a rpc handler method for MsgChannelOpenTry. */ - - channelOpenTry(request: MsgChannelOpenTry): Promise; - /** ChannelOpenAck defines a rpc handler method for MsgChannelOpenAck. */ - - channelOpenAck(request: MsgChannelOpenAck): Promise; - /** ChannelOpenConfirm defines a rpc handler method for MsgChannelOpenConfirm. */ - - channelOpenConfirm(request: MsgChannelOpenConfirm): Promise; - /** ChannelCloseInit defines a rpc handler method for MsgChannelCloseInit. */ - - channelCloseInit(request: MsgChannelCloseInit): Promise; - /** - * ChannelCloseConfirm defines a rpc handler method for - * MsgChannelCloseConfirm. - */ - - channelCloseConfirm(request: MsgChannelCloseConfirm): Promise; - /** RecvPacket defines a rpc handler method for MsgRecvPacket. */ - - recvPacket(request: MsgRecvPacket): Promise; - /** Timeout defines a rpc handler method for MsgTimeout. */ - - timeout(request: MsgTimeout): Promise; - /** TimeoutOnClose defines a rpc handler method for MsgTimeoutOnClose. */ - - timeoutOnClose(request: MsgTimeoutOnClose): Promise; - /** Acknowledgement defines a rpc handler method for MsgAcknowledgement. */ - - acknowledgement(request: MsgAcknowledgement): Promise; -} -export class MsgClientImpl implements Msg { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.channelOpenInit = this.channelOpenInit.bind(this); - this.channelOpenTry = this.channelOpenTry.bind(this); - this.channelOpenAck = this.channelOpenAck.bind(this); - this.channelOpenConfirm = this.channelOpenConfirm.bind(this); - this.channelCloseInit = this.channelCloseInit.bind(this); - this.channelCloseConfirm = this.channelCloseConfirm.bind(this); - this.recvPacket = this.recvPacket.bind(this); - this.timeout = this.timeout.bind(this); - this.timeoutOnClose = this.timeoutOnClose.bind(this); - this.acknowledgement = this.acknowledgement.bind(this); - } - - channelOpenInit(request: MsgChannelOpenInit): Promise { - const data = MsgChannelOpenInit.encode(request).finish(); - const promise = this.rpc.request("ibc.core.channel.v1.Msg", "ChannelOpenInit", data); - return promise.then(data => MsgChannelOpenInitResponse.decode(new _m0.Reader(data))); - } - - channelOpenTry(request: MsgChannelOpenTry): Promise { - const data = MsgChannelOpenTry.encode(request).finish(); - const promise = this.rpc.request("ibc.core.channel.v1.Msg", "ChannelOpenTry", data); - return promise.then(data => MsgChannelOpenTryResponse.decode(new _m0.Reader(data))); - } - - channelOpenAck(request: MsgChannelOpenAck): Promise { - const data = MsgChannelOpenAck.encode(request).finish(); - const promise = this.rpc.request("ibc.core.channel.v1.Msg", "ChannelOpenAck", data); - return promise.then(data => MsgChannelOpenAckResponse.decode(new _m0.Reader(data))); - } - - channelOpenConfirm(request: MsgChannelOpenConfirm): Promise { - const data = MsgChannelOpenConfirm.encode(request).finish(); - const promise = this.rpc.request("ibc.core.channel.v1.Msg", "ChannelOpenConfirm", data); - return promise.then(data => MsgChannelOpenConfirmResponse.decode(new _m0.Reader(data))); - } - - channelCloseInit(request: MsgChannelCloseInit): Promise { - const data = MsgChannelCloseInit.encode(request).finish(); - const promise = this.rpc.request("ibc.core.channel.v1.Msg", "ChannelCloseInit", data); - return promise.then(data => MsgChannelCloseInitResponse.decode(new _m0.Reader(data))); - } - - channelCloseConfirm(request: MsgChannelCloseConfirm): Promise { - const data = MsgChannelCloseConfirm.encode(request).finish(); - const promise = this.rpc.request("ibc.core.channel.v1.Msg", "ChannelCloseConfirm", data); - return promise.then(data => MsgChannelCloseConfirmResponse.decode(new _m0.Reader(data))); - } - - recvPacket(request: MsgRecvPacket): Promise { - const data = MsgRecvPacket.encode(request).finish(); - const promise = this.rpc.request("ibc.core.channel.v1.Msg", "RecvPacket", data); - return promise.then(data => MsgRecvPacketResponse.decode(new _m0.Reader(data))); - } - - timeout(request: MsgTimeout): Promise { - const data = MsgTimeout.encode(request).finish(); - const promise = this.rpc.request("ibc.core.channel.v1.Msg", "Timeout", data); - return promise.then(data => MsgTimeoutResponse.decode(new _m0.Reader(data))); - } - - timeoutOnClose(request: MsgTimeoutOnClose): Promise { - const data = MsgTimeoutOnClose.encode(request).finish(); - const promise = this.rpc.request("ibc.core.channel.v1.Msg", "TimeoutOnClose", data); - return promise.then(data => MsgTimeoutOnCloseResponse.decode(new _m0.Reader(data))); - } - - acknowledgement(request: MsgAcknowledgement): Promise { - const data = MsgAcknowledgement.encode(request).finish(); - const promise = this.rpc.request("ibc.core.channel.v1.Msg", "Acknowledgement", data); - return promise.then(data => MsgAcknowledgementResponse.decode(new _m0.Reader(data))); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/channel/v1/tx.ts b/packages/codegen/src/ibc/core/channel/v1/tx.ts deleted file mode 100644 index 1c22c471..00000000 --- a/packages/codegen/src/ibc/core/channel/v1/tx.ts +++ /dev/null @@ -1,1487 +0,0 @@ -import { Channel, ChannelSDKType, Packet, PacketSDKType } from "./channel"; -import { Height, HeightSDKType } from "../../client/v1/client"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../../helpers"; -/** - * MsgChannelOpenInit defines an sdk.Msg to initialize a channel handshake. It - * is called by a relayer on Chain A. - */ - -export interface MsgChannelOpenInit { - portId: string; - channel?: Channel; - signer: string; -} -/** - * MsgChannelOpenInit defines an sdk.Msg to initialize a channel handshake. It - * is called by a relayer on Chain A. - */ - -export interface MsgChannelOpenInitSDKType { - port_id: string; - channel?: ChannelSDKType; - signer: string; -} -/** MsgChannelOpenInitResponse defines the Msg/ChannelOpenInit response type. */ - -export interface MsgChannelOpenInitResponse {} -/** MsgChannelOpenInitResponse defines the Msg/ChannelOpenInit response type. */ - -export interface MsgChannelOpenInitResponseSDKType {} -/** - * MsgChannelOpenInit defines a msg sent by a Relayer to try to open a channel - * on Chain B. - */ - -export interface MsgChannelOpenTry { - portId: string; - /** - * in the case of crossing hello's, when both chains call OpenInit, we need - * the channel identifier of the previous channel in state INIT - */ - - previousChannelId: string; - channel?: Channel; - counterpartyVersion: string; - proofInit: Uint8Array; - proofHeight?: Height; - signer: string; -} -/** - * MsgChannelOpenInit defines a msg sent by a Relayer to try to open a channel - * on Chain B. - */ - -export interface MsgChannelOpenTrySDKType { - port_id: string; - previous_channel_id: string; - channel?: ChannelSDKType; - counterparty_version: string; - proof_init: Uint8Array; - proof_height?: HeightSDKType; - signer: string; -} -/** MsgChannelOpenTryResponse defines the Msg/ChannelOpenTry response type. */ - -export interface MsgChannelOpenTryResponse {} -/** MsgChannelOpenTryResponse defines the Msg/ChannelOpenTry response type. */ - -export interface MsgChannelOpenTryResponseSDKType {} -/** - * MsgChannelOpenAck defines a msg sent by a Relayer to Chain A to acknowledge - * the change of channel state to TRYOPEN on Chain B. - */ - -export interface MsgChannelOpenAck { - portId: string; - channelId: string; - counterpartyChannelId: string; - counterpartyVersion: string; - proofTry: Uint8Array; - proofHeight?: Height; - signer: string; -} -/** - * MsgChannelOpenAck defines a msg sent by a Relayer to Chain A to acknowledge - * the change of channel state to TRYOPEN on Chain B. - */ - -export interface MsgChannelOpenAckSDKType { - port_id: string; - channel_id: string; - counterparty_channel_id: string; - counterparty_version: string; - proof_try: Uint8Array; - proof_height?: HeightSDKType; - signer: string; -} -/** MsgChannelOpenAckResponse defines the Msg/ChannelOpenAck response type. */ - -export interface MsgChannelOpenAckResponse {} -/** MsgChannelOpenAckResponse defines the Msg/ChannelOpenAck response type. */ - -export interface MsgChannelOpenAckResponseSDKType {} -/** - * MsgChannelOpenConfirm defines a msg sent by a Relayer to Chain B to - * acknowledge the change of channel state to OPEN on Chain A. - */ - -export interface MsgChannelOpenConfirm { - portId: string; - channelId: string; - proofAck: Uint8Array; - proofHeight?: Height; - signer: string; -} -/** - * MsgChannelOpenConfirm defines a msg sent by a Relayer to Chain B to - * acknowledge the change of channel state to OPEN on Chain A. - */ - -export interface MsgChannelOpenConfirmSDKType { - port_id: string; - channel_id: string; - proof_ack: Uint8Array; - proof_height?: HeightSDKType; - signer: string; -} -/** - * MsgChannelOpenConfirmResponse defines the Msg/ChannelOpenConfirm response - * type. - */ - -export interface MsgChannelOpenConfirmResponse {} -/** - * MsgChannelOpenConfirmResponse defines the Msg/ChannelOpenConfirm response - * type. - */ - -export interface MsgChannelOpenConfirmResponseSDKType {} -/** - * MsgChannelCloseInit defines a msg sent by a Relayer to Chain A - * to close a channel with Chain B. - */ - -export interface MsgChannelCloseInit { - portId: string; - channelId: string; - signer: string; -} -/** - * MsgChannelCloseInit defines a msg sent by a Relayer to Chain A - * to close a channel with Chain B. - */ - -export interface MsgChannelCloseInitSDKType { - port_id: string; - channel_id: string; - signer: string; -} -/** MsgChannelCloseInitResponse defines the Msg/ChannelCloseInit response type. */ - -export interface MsgChannelCloseInitResponse {} -/** MsgChannelCloseInitResponse defines the Msg/ChannelCloseInit response type. */ - -export interface MsgChannelCloseInitResponseSDKType {} -/** - * MsgChannelCloseConfirm defines a msg sent by a Relayer to Chain B - * to acknowledge the change of channel state to CLOSED on Chain A. - */ - -export interface MsgChannelCloseConfirm { - portId: string; - channelId: string; - proofInit: Uint8Array; - proofHeight?: Height; - signer: string; -} -/** - * MsgChannelCloseConfirm defines a msg sent by a Relayer to Chain B - * to acknowledge the change of channel state to CLOSED on Chain A. - */ - -export interface MsgChannelCloseConfirmSDKType { - port_id: string; - channel_id: string; - proof_init: Uint8Array; - proof_height?: HeightSDKType; - signer: string; -} -/** - * MsgChannelCloseConfirmResponse defines the Msg/ChannelCloseConfirm response - * type. - */ - -export interface MsgChannelCloseConfirmResponse {} -/** - * MsgChannelCloseConfirmResponse defines the Msg/ChannelCloseConfirm response - * type. - */ - -export interface MsgChannelCloseConfirmResponseSDKType {} -/** MsgRecvPacket receives incoming IBC packet */ - -export interface MsgRecvPacket { - packet?: Packet; - proofCommitment: Uint8Array; - proofHeight?: Height; - signer: string; -} -/** MsgRecvPacket receives incoming IBC packet */ - -export interface MsgRecvPacketSDKType { - packet?: PacketSDKType; - proof_commitment: Uint8Array; - proof_height?: HeightSDKType; - signer: string; -} -/** MsgRecvPacketResponse defines the Msg/RecvPacket response type. */ - -export interface MsgRecvPacketResponse {} -/** MsgRecvPacketResponse defines the Msg/RecvPacket response type. */ - -export interface MsgRecvPacketResponseSDKType {} -/** MsgTimeout receives timed-out packet */ - -export interface MsgTimeout { - packet?: Packet; - proofUnreceived: Uint8Array; - proofHeight?: Height; - nextSequenceRecv: Long; - signer: string; -} -/** MsgTimeout receives timed-out packet */ - -export interface MsgTimeoutSDKType { - packet?: PacketSDKType; - proof_unreceived: Uint8Array; - proof_height?: HeightSDKType; - next_sequence_recv: Long; - signer: string; -} -/** MsgTimeoutResponse defines the Msg/Timeout response type. */ - -export interface MsgTimeoutResponse {} -/** MsgTimeoutResponse defines the Msg/Timeout response type. */ - -export interface MsgTimeoutResponseSDKType {} -/** MsgTimeoutOnClose timed-out packet upon counterparty channel closure. */ - -export interface MsgTimeoutOnClose { - packet?: Packet; - proofUnreceived: Uint8Array; - proofClose: Uint8Array; - proofHeight?: Height; - nextSequenceRecv: Long; - signer: string; -} -/** MsgTimeoutOnClose timed-out packet upon counterparty channel closure. */ - -export interface MsgTimeoutOnCloseSDKType { - packet?: PacketSDKType; - proof_unreceived: Uint8Array; - proof_close: Uint8Array; - proof_height?: HeightSDKType; - next_sequence_recv: Long; - signer: string; -} -/** MsgTimeoutOnCloseResponse defines the Msg/TimeoutOnClose response type. */ - -export interface MsgTimeoutOnCloseResponse {} -/** MsgTimeoutOnCloseResponse defines the Msg/TimeoutOnClose response type. */ - -export interface MsgTimeoutOnCloseResponseSDKType {} -/** MsgAcknowledgement receives incoming IBC acknowledgement */ - -export interface MsgAcknowledgement { - packet?: Packet; - acknowledgement: Uint8Array; - proofAcked: Uint8Array; - proofHeight?: Height; - signer: string; -} -/** MsgAcknowledgement receives incoming IBC acknowledgement */ - -export interface MsgAcknowledgementSDKType { - packet?: PacketSDKType; - acknowledgement: Uint8Array; - proof_acked: Uint8Array; - proof_height?: HeightSDKType; - signer: string; -} -/** MsgAcknowledgementResponse defines the Msg/Acknowledgement response type. */ - -export interface MsgAcknowledgementResponse {} -/** MsgAcknowledgementResponse defines the Msg/Acknowledgement response type. */ - -export interface MsgAcknowledgementResponseSDKType {} - -function createBaseMsgChannelOpenInit(): MsgChannelOpenInit { - return { - portId: "", - channel: undefined, - signer: "" - }; -} - -export const MsgChannelOpenInit = { - encode(message: MsgChannelOpenInit, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.portId !== "") { - writer.uint32(10).string(message.portId); - } - - if (message.channel !== undefined) { - Channel.encode(message.channel, writer.uint32(18).fork()).ldelim(); - } - - if (message.signer !== "") { - writer.uint32(26).string(message.signer); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelOpenInit { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgChannelOpenInit(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.portId = reader.string(); - break; - - case 2: - message.channel = Channel.decode(reader, reader.uint32()); - break; - - case 3: - message.signer = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgChannelOpenInit { - const message = createBaseMsgChannelOpenInit(); - message.portId = object.portId ?? ""; - message.channel = object.channel !== undefined && object.channel !== null ? Channel.fromPartial(object.channel) : undefined; - message.signer = object.signer ?? ""; - return message; - } - -}; - -function createBaseMsgChannelOpenInitResponse(): MsgChannelOpenInitResponse { - return {}; -} - -export const MsgChannelOpenInitResponse = { - encode(_: MsgChannelOpenInitResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelOpenInitResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgChannelOpenInitResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgChannelOpenInitResponse { - const message = createBaseMsgChannelOpenInitResponse(); - return message; - } - -}; - -function createBaseMsgChannelOpenTry(): MsgChannelOpenTry { - return { - portId: "", - previousChannelId: "", - channel: undefined, - counterpartyVersion: "", - proofInit: new Uint8Array(), - proofHeight: undefined, - signer: "" - }; -} - -export const MsgChannelOpenTry = { - encode(message: MsgChannelOpenTry, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.portId !== "") { - writer.uint32(10).string(message.portId); - } - - if (message.previousChannelId !== "") { - writer.uint32(18).string(message.previousChannelId); - } - - if (message.channel !== undefined) { - Channel.encode(message.channel, writer.uint32(26).fork()).ldelim(); - } - - if (message.counterpartyVersion !== "") { - writer.uint32(34).string(message.counterpartyVersion); - } - - if (message.proofInit.length !== 0) { - writer.uint32(42).bytes(message.proofInit); - } - - if (message.proofHeight !== undefined) { - Height.encode(message.proofHeight, writer.uint32(50).fork()).ldelim(); - } - - if (message.signer !== "") { - writer.uint32(58).string(message.signer); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelOpenTry { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgChannelOpenTry(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.portId = reader.string(); - break; - - case 2: - message.previousChannelId = reader.string(); - break; - - case 3: - message.channel = Channel.decode(reader, reader.uint32()); - break; - - case 4: - message.counterpartyVersion = reader.string(); - break; - - case 5: - message.proofInit = reader.bytes(); - break; - - case 6: - message.proofHeight = Height.decode(reader, reader.uint32()); - break; - - case 7: - message.signer = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgChannelOpenTry { - const message = createBaseMsgChannelOpenTry(); - message.portId = object.portId ?? ""; - message.previousChannelId = object.previousChannelId ?? ""; - message.channel = object.channel !== undefined && object.channel !== null ? Channel.fromPartial(object.channel) : undefined; - message.counterpartyVersion = object.counterpartyVersion ?? ""; - message.proofInit = object.proofInit ?? new Uint8Array(); - message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined; - message.signer = object.signer ?? ""; - return message; - } - -}; - -function createBaseMsgChannelOpenTryResponse(): MsgChannelOpenTryResponse { - return {}; -} - -export const MsgChannelOpenTryResponse = { - encode(_: MsgChannelOpenTryResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelOpenTryResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgChannelOpenTryResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgChannelOpenTryResponse { - const message = createBaseMsgChannelOpenTryResponse(); - return message; - } - -}; - -function createBaseMsgChannelOpenAck(): MsgChannelOpenAck { - return { - portId: "", - channelId: "", - counterpartyChannelId: "", - counterpartyVersion: "", - proofTry: new Uint8Array(), - proofHeight: undefined, - signer: "" - }; -} - -export const MsgChannelOpenAck = { - encode(message: MsgChannelOpenAck, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.portId !== "") { - writer.uint32(10).string(message.portId); - } - - if (message.channelId !== "") { - writer.uint32(18).string(message.channelId); - } - - if (message.counterpartyChannelId !== "") { - writer.uint32(26).string(message.counterpartyChannelId); - } - - if (message.counterpartyVersion !== "") { - writer.uint32(34).string(message.counterpartyVersion); - } - - if (message.proofTry.length !== 0) { - writer.uint32(42).bytes(message.proofTry); - } - - if (message.proofHeight !== undefined) { - Height.encode(message.proofHeight, writer.uint32(50).fork()).ldelim(); - } - - if (message.signer !== "") { - writer.uint32(58).string(message.signer); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelOpenAck { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgChannelOpenAck(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.portId = reader.string(); - break; - - case 2: - message.channelId = reader.string(); - break; - - case 3: - message.counterpartyChannelId = reader.string(); - break; - - case 4: - message.counterpartyVersion = reader.string(); - break; - - case 5: - message.proofTry = reader.bytes(); - break; - - case 6: - message.proofHeight = Height.decode(reader, reader.uint32()); - break; - - case 7: - message.signer = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgChannelOpenAck { - const message = createBaseMsgChannelOpenAck(); - message.portId = object.portId ?? ""; - message.channelId = object.channelId ?? ""; - message.counterpartyChannelId = object.counterpartyChannelId ?? ""; - message.counterpartyVersion = object.counterpartyVersion ?? ""; - message.proofTry = object.proofTry ?? new Uint8Array(); - message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined; - message.signer = object.signer ?? ""; - return message; - } - -}; - -function createBaseMsgChannelOpenAckResponse(): MsgChannelOpenAckResponse { - return {}; -} - -export const MsgChannelOpenAckResponse = { - encode(_: MsgChannelOpenAckResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelOpenAckResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgChannelOpenAckResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgChannelOpenAckResponse { - const message = createBaseMsgChannelOpenAckResponse(); - return message; - } - -}; - -function createBaseMsgChannelOpenConfirm(): MsgChannelOpenConfirm { - return { - portId: "", - channelId: "", - proofAck: new Uint8Array(), - proofHeight: undefined, - signer: "" - }; -} - -export const MsgChannelOpenConfirm = { - encode(message: MsgChannelOpenConfirm, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.portId !== "") { - writer.uint32(10).string(message.portId); - } - - if (message.channelId !== "") { - writer.uint32(18).string(message.channelId); - } - - if (message.proofAck.length !== 0) { - writer.uint32(26).bytes(message.proofAck); - } - - if (message.proofHeight !== undefined) { - Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim(); - } - - if (message.signer !== "") { - writer.uint32(42).string(message.signer); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelOpenConfirm { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgChannelOpenConfirm(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.portId = reader.string(); - break; - - case 2: - message.channelId = reader.string(); - break; - - case 3: - message.proofAck = reader.bytes(); - break; - - case 4: - message.proofHeight = Height.decode(reader, reader.uint32()); - break; - - case 5: - message.signer = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgChannelOpenConfirm { - const message = createBaseMsgChannelOpenConfirm(); - message.portId = object.portId ?? ""; - message.channelId = object.channelId ?? ""; - message.proofAck = object.proofAck ?? new Uint8Array(); - message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined; - message.signer = object.signer ?? ""; - return message; - } - -}; - -function createBaseMsgChannelOpenConfirmResponse(): MsgChannelOpenConfirmResponse { - return {}; -} - -export const MsgChannelOpenConfirmResponse = { - encode(_: MsgChannelOpenConfirmResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelOpenConfirmResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgChannelOpenConfirmResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgChannelOpenConfirmResponse { - const message = createBaseMsgChannelOpenConfirmResponse(); - return message; - } - -}; - -function createBaseMsgChannelCloseInit(): MsgChannelCloseInit { - return { - portId: "", - channelId: "", - signer: "" - }; -} - -export const MsgChannelCloseInit = { - encode(message: MsgChannelCloseInit, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.portId !== "") { - writer.uint32(10).string(message.portId); - } - - if (message.channelId !== "") { - writer.uint32(18).string(message.channelId); - } - - if (message.signer !== "") { - writer.uint32(26).string(message.signer); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelCloseInit { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgChannelCloseInit(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.portId = reader.string(); - break; - - case 2: - message.channelId = reader.string(); - break; - - case 3: - message.signer = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgChannelCloseInit { - const message = createBaseMsgChannelCloseInit(); - message.portId = object.portId ?? ""; - message.channelId = object.channelId ?? ""; - message.signer = object.signer ?? ""; - return message; - } - -}; - -function createBaseMsgChannelCloseInitResponse(): MsgChannelCloseInitResponse { - return {}; -} - -export const MsgChannelCloseInitResponse = { - encode(_: MsgChannelCloseInitResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelCloseInitResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgChannelCloseInitResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgChannelCloseInitResponse { - const message = createBaseMsgChannelCloseInitResponse(); - return message; - } - -}; - -function createBaseMsgChannelCloseConfirm(): MsgChannelCloseConfirm { - return { - portId: "", - channelId: "", - proofInit: new Uint8Array(), - proofHeight: undefined, - signer: "" - }; -} - -export const MsgChannelCloseConfirm = { - encode(message: MsgChannelCloseConfirm, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.portId !== "") { - writer.uint32(10).string(message.portId); - } - - if (message.channelId !== "") { - writer.uint32(18).string(message.channelId); - } - - if (message.proofInit.length !== 0) { - writer.uint32(26).bytes(message.proofInit); - } - - if (message.proofHeight !== undefined) { - Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim(); - } - - if (message.signer !== "") { - writer.uint32(42).string(message.signer); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelCloseConfirm { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgChannelCloseConfirm(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.portId = reader.string(); - break; - - case 2: - message.channelId = reader.string(); - break; - - case 3: - message.proofInit = reader.bytes(); - break; - - case 4: - message.proofHeight = Height.decode(reader, reader.uint32()); - break; - - case 5: - message.signer = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgChannelCloseConfirm { - const message = createBaseMsgChannelCloseConfirm(); - message.portId = object.portId ?? ""; - message.channelId = object.channelId ?? ""; - message.proofInit = object.proofInit ?? new Uint8Array(); - message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined; - message.signer = object.signer ?? ""; - return message; - } - -}; - -function createBaseMsgChannelCloseConfirmResponse(): MsgChannelCloseConfirmResponse { - return {}; -} - -export const MsgChannelCloseConfirmResponse = { - encode(_: MsgChannelCloseConfirmResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelCloseConfirmResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgChannelCloseConfirmResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgChannelCloseConfirmResponse { - const message = createBaseMsgChannelCloseConfirmResponse(); - return message; - } - -}; - -function createBaseMsgRecvPacket(): MsgRecvPacket { - return { - packet: undefined, - proofCommitment: new Uint8Array(), - proofHeight: undefined, - signer: "" - }; -} - -export const MsgRecvPacket = { - encode(message: MsgRecvPacket, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.packet !== undefined) { - Packet.encode(message.packet, writer.uint32(10).fork()).ldelim(); - } - - if (message.proofCommitment.length !== 0) { - writer.uint32(18).bytes(message.proofCommitment); - } - - if (message.proofHeight !== undefined) { - Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim(); - } - - if (message.signer !== "") { - writer.uint32(34).string(message.signer); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgRecvPacket { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgRecvPacket(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.packet = Packet.decode(reader, reader.uint32()); - break; - - case 2: - message.proofCommitment = reader.bytes(); - break; - - case 3: - message.proofHeight = Height.decode(reader, reader.uint32()); - break; - - case 4: - message.signer = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgRecvPacket { - const message = createBaseMsgRecvPacket(); - message.packet = object.packet !== undefined && object.packet !== null ? Packet.fromPartial(object.packet) : undefined; - message.proofCommitment = object.proofCommitment ?? new Uint8Array(); - message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined; - message.signer = object.signer ?? ""; - return message; - } - -}; - -function createBaseMsgRecvPacketResponse(): MsgRecvPacketResponse { - return {}; -} - -export const MsgRecvPacketResponse = { - encode(_: MsgRecvPacketResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgRecvPacketResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgRecvPacketResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgRecvPacketResponse { - const message = createBaseMsgRecvPacketResponse(); - return message; - } - -}; - -function createBaseMsgTimeout(): MsgTimeout { - return { - packet: undefined, - proofUnreceived: new Uint8Array(), - proofHeight: undefined, - nextSequenceRecv: Long.UZERO, - signer: "" - }; -} - -export const MsgTimeout = { - encode(message: MsgTimeout, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.packet !== undefined) { - Packet.encode(message.packet, writer.uint32(10).fork()).ldelim(); - } - - if (message.proofUnreceived.length !== 0) { - writer.uint32(18).bytes(message.proofUnreceived); - } - - if (message.proofHeight !== undefined) { - Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim(); - } - - if (!message.nextSequenceRecv.isZero()) { - writer.uint32(32).uint64(message.nextSequenceRecv); - } - - if (message.signer !== "") { - writer.uint32(42).string(message.signer); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgTimeout { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgTimeout(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.packet = Packet.decode(reader, reader.uint32()); - break; - - case 2: - message.proofUnreceived = reader.bytes(); - break; - - case 3: - message.proofHeight = Height.decode(reader, reader.uint32()); - break; - - case 4: - message.nextSequenceRecv = (reader.uint64() as Long); - break; - - case 5: - message.signer = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgTimeout { - const message = createBaseMsgTimeout(); - message.packet = object.packet !== undefined && object.packet !== null ? Packet.fromPartial(object.packet) : undefined; - message.proofUnreceived = object.proofUnreceived ?? new Uint8Array(); - message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined; - message.nextSequenceRecv = object.nextSequenceRecv !== undefined && object.nextSequenceRecv !== null ? Long.fromValue(object.nextSequenceRecv) : Long.UZERO; - message.signer = object.signer ?? ""; - return message; - } - -}; - -function createBaseMsgTimeoutResponse(): MsgTimeoutResponse { - return {}; -} - -export const MsgTimeoutResponse = { - encode(_: MsgTimeoutResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgTimeoutResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgTimeoutResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgTimeoutResponse { - const message = createBaseMsgTimeoutResponse(); - return message; - } - -}; - -function createBaseMsgTimeoutOnClose(): MsgTimeoutOnClose { - return { - packet: undefined, - proofUnreceived: new Uint8Array(), - proofClose: new Uint8Array(), - proofHeight: undefined, - nextSequenceRecv: Long.UZERO, - signer: "" - }; -} - -export const MsgTimeoutOnClose = { - encode(message: MsgTimeoutOnClose, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.packet !== undefined) { - Packet.encode(message.packet, writer.uint32(10).fork()).ldelim(); - } - - if (message.proofUnreceived.length !== 0) { - writer.uint32(18).bytes(message.proofUnreceived); - } - - if (message.proofClose.length !== 0) { - writer.uint32(26).bytes(message.proofClose); - } - - if (message.proofHeight !== undefined) { - Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim(); - } - - if (!message.nextSequenceRecv.isZero()) { - writer.uint32(40).uint64(message.nextSequenceRecv); - } - - if (message.signer !== "") { - writer.uint32(50).string(message.signer); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgTimeoutOnClose { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgTimeoutOnClose(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.packet = Packet.decode(reader, reader.uint32()); - break; - - case 2: - message.proofUnreceived = reader.bytes(); - break; - - case 3: - message.proofClose = reader.bytes(); - break; - - case 4: - message.proofHeight = Height.decode(reader, reader.uint32()); - break; - - case 5: - message.nextSequenceRecv = (reader.uint64() as Long); - break; - - case 6: - message.signer = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgTimeoutOnClose { - const message = createBaseMsgTimeoutOnClose(); - message.packet = object.packet !== undefined && object.packet !== null ? Packet.fromPartial(object.packet) : undefined; - message.proofUnreceived = object.proofUnreceived ?? new Uint8Array(); - message.proofClose = object.proofClose ?? new Uint8Array(); - message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined; - message.nextSequenceRecv = object.nextSequenceRecv !== undefined && object.nextSequenceRecv !== null ? Long.fromValue(object.nextSequenceRecv) : Long.UZERO; - message.signer = object.signer ?? ""; - return message; - } - -}; - -function createBaseMsgTimeoutOnCloseResponse(): MsgTimeoutOnCloseResponse { - return {}; -} - -export const MsgTimeoutOnCloseResponse = { - encode(_: MsgTimeoutOnCloseResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgTimeoutOnCloseResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgTimeoutOnCloseResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgTimeoutOnCloseResponse { - const message = createBaseMsgTimeoutOnCloseResponse(); - return message; - } - -}; - -function createBaseMsgAcknowledgement(): MsgAcknowledgement { - return { - packet: undefined, - acknowledgement: new Uint8Array(), - proofAcked: new Uint8Array(), - proofHeight: undefined, - signer: "" - }; -} - -export const MsgAcknowledgement = { - encode(message: MsgAcknowledgement, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.packet !== undefined) { - Packet.encode(message.packet, writer.uint32(10).fork()).ldelim(); - } - - if (message.acknowledgement.length !== 0) { - writer.uint32(18).bytes(message.acknowledgement); - } - - if (message.proofAcked.length !== 0) { - writer.uint32(26).bytes(message.proofAcked); - } - - if (message.proofHeight !== undefined) { - Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim(); - } - - if (message.signer !== "") { - writer.uint32(42).string(message.signer); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgAcknowledgement { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgAcknowledgement(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.packet = Packet.decode(reader, reader.uint32()); - break; - - case 2: - message.acknowledgement = reader.bytes(); - break; - - case 3: - message.proofAcked = reader.bytes(); - break; - - case 4: - message.proofHeight = Height.decode(reader, reader.uint32()); - break; - - case 5: - message.signer = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgAcknowledgement { - const message = createBaseMsgAcknowledgement(); - message.packet = object.packet !== undefined && object.packet !== null ? Packet.fromPartial(object.packet) : undefined; - message.acknowledgement = object.acknowledgement ?? new Uint8Array(); - message.proofAcked = object.proofAcked ?? new Uint8Array(); - message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined; - message.signer = object.signer ?? ""; - return message; - } - -}; - -function createBaseMsgAcknowledgementResponse(): MsgAcknowledgementResponse { - return {}; -} - -export const MsgAcknowledgementResponse = { - encode(_: MsgAcknowledgementResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgAcknowledgementResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgAcknowledgementResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgAcknowledgementResponse { - const message = createBaseMsgAcknowledgementResponse(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/client/v1/client.ts b/packages/codegen/src/ibc/core/client/v1/client.ts deleted file mode 100644 index 309ef44f..00000000 --- a/packages/codegen/src/ibc/core/client/v1/client.ts +++ /dev/null @@ -1,597 +0,0 @@ -import { Any, AnySDKType } from "../../../../google/protobuf/any"; -import { Plan, PlanSDKType } from "../../../../cosmos/upgrade/v1beta1/upgrade"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../../helpers"; -/** - * IdentifiedClientState defines a client state with an additional client - * identifier field. - */ - -export interface IdentifiedClientState { - /** client identifier */ - clientId: string; - /** client state */ - - clientState?: Any; -} -/** - * IdentifiedClientState defines a client state with an additional client - * identifier field. - */ - -export interface IdentifiedClientStateSDKType { - client_id: string; - client_state?: AnySDKType; -} -/** - * ConsensusStateWithHeight defines a consensus state with an additional height - * field. - */ - -export interface ConsensusStateWithHeight { - /** consensus state height */ - height?: Height; - /** consensus state */ - - consensusState?: Any; -} -/** - * ConsensusStateWithHeight defines a consensus state with an additional height - * field. - */ - -export interface ConsensusStateWithHeightSDKType { - height?: HeightSDKType; - consensus_state?: AnySDKType; -} -/** - * ClientConsensusStates defines all the stored consensus states for a given - * client. - */ - -export interface ClientConsensusStates { - /** client identifier */ - clientId: string; - /** consensus states and their heights associated with the client */ - - consensusStates: ConsensusStateWithHeight[]; -} -/** - * ClientConsensusStates defines all the stored consensus states for a given - * client. - */ - -export interface ClientConsensusStatesSDKType { - client_id: string; - consensus_states: ConsensusStateWithHeightSDKType[]; -} -/** - * ClientUpdateProposal is a governance proposal. If it passes, the substitute - * client's latest consensus state is copied over to the subject client. The proposal - * handler may fail if the subject and the substitute do not match in client and - * chain parameters (with exception to latest height, frozen height, and chain-id). - */ - -export interface ClientUpdateProposal { - /** the title of the update proposal */ - title: string; - /** the description of the proposal */ - - description: string; - /** the client identifier for the client to be updated if the proposal passes */ - - subjectClientId: string; - /** - * the substitute client identifier for the client standing in for the subject - * client - */ - - substituteClientId: string; -} -/** - * ClientUpdateProposal is a governance proposal. If it passes, the substitute - * client's latest consensus state is copied over to the subject client. The proposal - * handler may fail if the subject and the substitute do not match in client and - * chain parameters (with exception to latest height, frozen height, and chain-id). - */ - -export interface ClientUpdateProposalSDKType { - title: string; - description: string; - subject_client_id: string; - substitute_client_id: string; -} -/** - * UpgradeProposal is a gov Content type for initiating an IBC breaking - * upgrade. - */ - -export interface UpgradeProposal { - title: string; - description: string; - 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 - */ - - upgradedClientState?: Any; -} -/** - * UpgradeProposal is a gov Content type for initiating an IBC breaking - * upgrade. - */ - -export interface UpgradeProposalSDKType { - title: string; - description: string; - plan?: PlanSDKType; - upgraded_client_state?: AnySDKType; -} -/** - * 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 - */ - -export interface Height { - /** the revision that the client is currently on */ - revisionNumber: Long; - /** the height within the given revision */ - - revisionHeight: Long; -} -/** - * 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 - */ - -export interface HeightSDKType { - revision_number: Long; - revision_height: Long; -} -/** Params defines the set of IBC light client parameters. */ - -export interface Params { - /** allowed_clients defines the list of allowed client state types. */ - allowedClients: string[]; -} -/** Params defines the set of IBC light client parameters. */ - -export interface ParamsSDKType { - allowed_clients: string[]; -} - -function createBaseIdentifiedClientState(): IdentifiedClientState { - return { - clientId: "", - clientState: undefined - }; -} - -export const IdentifiedClientState = { - encode(message: IdentifiedClientState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.clientId !== "") { - writer.uint32(10).string(message.clientId); - } - - if (message.clientState !== undefined) { - Any.encode(message.clientState, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): IdentifiedClientState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseIdentifiedClientState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.clientId = reader.string(); - break; - - case 2: - message.clientState = Any.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): IdentifiedClientState { - const message = createBaseIdentifiedClientState(); - message.clientId = object.clientId ?? ""; - message.clientState = object.clientState !== undefined && object.clientState !== null ? Any.fromPartial(object.clientState) : undefined; - return message; - } - -}; - -function createBaseConsensusStateWithHeight(): ConsensusStateWithHeight { - return { - height: undefined, - consensusState: undefined - }; -} - -export const ConsensusStateWithHeight = { - encode(message: ConsensusStateWithHeight, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.height !== undefined) { - Height.encode(message.height, writer.uint32(10).fork()).ldelim(); - } - - if (message.consensusState !== undefined) { - Any.encode(message.consensusState, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ConsensusStateWithHeight { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseConsensusStateWithHeight(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.height = Height.decode(reader, reader.uint32()); - break; - - case 2: - message.consensusState = Any.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ConsensusStateWithHeight { - const message = createBaseConsensusStateWithHeight(); - message.height = object.height !== undefined && object.height !== null ? Height.fromPartial(object.height) : undefined; - message.consensusState = object.consensusState !== undefined && object.consensusState !== null ? Any.fromPartial(object.consensusState) : undefined; - return message; - } - -}; - -function createBaseClientConsensusStates(): ClientConsensusStates { - return { - clientId: "", - consensusStates: [] - }; -} - -export const ClientConsensusStates = { - encode(message: ClientConsensusStates, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.clientId !== "") { - writer.uint32(10).string(message.clientId); - } - - for (const v of message.consensusStates) { - ConsensusStateWithHeight.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ClientConsensusStates { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseClientConsensusStates(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.clientId = reader.string(); - break; - - case 2: - message.consensusStates.push(ConsensusStateWithHeight.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ClientConsensusStates { - const message = createBaseClientConsensusStates(); - message.clientId = object.clientId ?? ""; - message.consensusStates = object.consensusStates?.map(e => ConsensusStateWithHeight.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseClientUpdateProposal(): ClientUpdateProposal { - return { - title: "", - description: "", - subjectClientId: "", - substituteClientId: "" - }; -} - -export const ClientUpdateProposal = { - encode(message: ClientUpdateProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.title !== "") { - writer.uint32(10).string(message.title); - } - - if (message.description !== "") { - writer.uint32(18).string(message.description); - } - - if (message.subjectClientId !== "") { - writer.uint32(26).string(message.subjectClientId); - } - - if (message.substituteClientId !== "") { - writer.uint32(34).string(message.substituteClientId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ClientUpdateProposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseClientUpdateProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.title = reader.string(); - break; - - case 2: - message.description = reader.string(); - break; - - case 3: - message.subjectClientId = reader.string(); - break; - - case 4: - message.substituteClientId = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ClientUpdateProposal { - const message = createBaseClientUpdateProposal(); - message.title = object.title ?? ""; - message.description = object.description ?? ""; - message.subjectClientId = object.subjectClientId ?? ""; - message.substituteClientId = object.substituteClientId ?? ""; - return message; - } - -}; - -function createBaseUpgradeProposal(): UpgradeProposal { - return { - title: "", - description: "", - plan: undefined, - upgradedClientState: undefined - }; -} - -export const UpgradeProposal = { - encode(message: UpgradeProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.title !== "") { - writer.uint32(10).string(message.title); - } - - if (message.description !== "") { - writer.uint32(18).string(message.description); - } - - if (message.plan !== undefined) { - Plan.encode(message.plan, writer.uint32(26).fork()).ldelim(); - } - - if (message.upgradedClientState !== undefined) { - Any.encode(message.upgradedClientState, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): UpgradeProposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseUpgradeProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.title = reader.string(); - break; - - case 2: - message.description = reader.string(); - break; - - case 3: - message.plan = Plan.decode(reader, reader.uint32()); - break; - - case 4: - message.upgradedClientState = Any.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): UpgradeProposal { - const message = createBaseUpgradeProposal(); - message.title = object.title ?? ""; - message.description = object.description ?? ""; - message.plan = object.plan !== undefined && object.plan !== null ? Plan.fromPartial(object.plan) : undefined; - message.upgradedClientState = object.upgradedClientState !== undefined && object.upgradedClientState !== null ? Any.fromPartial(object.upgradedClientState) : undefined; - return message; - } - -}; - -function createBaseHeight(): Height { - return { - revisionNumber: Long.UZERO, - revisionHeight: Long.UZERO - }; -} - -export const Height = { - encode(message: Height, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.revisionNumber.isZero()) { - writer.uint32(8).uint64(message.revisionNumber); - } - - if (!message.revisionHeight.isZero()) { - writer.uint32(16).uint64(message.revisionHeight); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Height { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseHeight(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.revisionNumber = (reader.uint64() as Long); - break; - - case 2: - message.revisionHeight = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Height { - const message = createBaseHeight(); - message.revisionNumber = object.revisionNumber !== undefined && object.revisionNumber !== null ? Long.fromValue(object.revisionNumber) : Long.UZERO; - message.revisionHeight = object.revisionHeight !== undefined && object.revisionHeight !== null ? Long.fromValue(object.revisionHeight) : Long.UZERO; - return message; - } - -}; - -function createBaseParams(): Params { - return { - allowedClients: [] - }; -} - -export const Params = { - encode(message: Params, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.allowedClients) { - writer.uint32(10).string(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Params { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseParams(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.allowedClients.push(reader.string()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Params { - const message = createBaseParams(); - message.allowedClients = object.allowedClients?.map(e => e) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/client/v1/genesis.ts b/packages/codegen/src/ibc/core/client/v1/genesis.ts deleted file mode 100644 index 1eba4075..00000000 --- a/packages/codegen/src/ibc/core/client/v1/genesis.ts +++ /dev/null @@ -1,276 +0,0 @@ -import { IdentifiedClientState, IdentifiedClientStateSDKType, ClientConsensusStates, ClientConsensusStatesSDKType, Params, ParamsSDKType } from "./client"; -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** GenesisState defines the ibc client submodule's genesis state. */ - -export interface GenesisState { - /** client states with their corresponding identifiers */ - clients: IdentifiedClientState[]; - /** consensus states from each client */ - - clientsConsensus: ClientConsensusStates[]; - /** metadata from each client */ - - clientsMetadata: IdentifiedGenesisMetadata[]; - params?: Params; - /** create localhost on initialization */ - - createLocalhost: boolean; - /** the sequence for the next generated client identifier */ - - nextClientSequence: Long; -} -/** GenesisState defines the ibc client submodule's genesis state. */ - -export interface GenesisStateSDKType { - clients: IdentifiedClientStateSDKType[]; - clients_consensus: ClientConsensusStatesSDKType[]; - clients_metadata: IdentifiedGenesisMetadataSDKType[]; - params?: ParamsSDKType; - create_localhost: boolean; - next_client_sequence: Long; -} -/** - * GenesisMetadata defines the genesis type for metadata that clients may return - * with ExportMetadata - */ - -export interface GenesisMetadata { - /** store key of metadata without clientID-prefix */ - key: Uint8Array; - /** metadata value */ - - value: Uint8Array; -} -/** - * GenesisMetadata defines the genesis type for metadata that clients may return - * with ExportMetadata - */ - -export interface GenesisMetadataSDKType { - key: Uint8Array; - value: Uint8Array; -} -/** - * IdentifiedGenesisMetadata has the client metadata with the corresponding - * client id. - */ - -export interface IdentifiedGenesisMetadata { - clientId: string; - clientMetadata: GenesisMetadata[]; -} -/** - * IdentifiedGenesisMetadata has the client metadata with the corresponding - * client id. - */ - -export interface IdentifiedGenesisMetadataSDKType { - client_id: string; - client_metadata: GenesisMetadataSDKType[]; -} - -function createBaseGenesisState(): GenesisState { - return { - clients: [], - clientsConsensus: [], - clientsMetadata: [], - params: undefined, - createLocalhost: false, - nextClientSequence: Long.UZERO - }; -} - -export const GenesisState = { - encode(message: GenesisState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.clients) { - IdentifiedClientState.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - for (const v of message.clientsConsensus) { - ClientConsensusStates.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - for (const v of message.clientsMetadata) { - IdentifiedGenesisMetadata.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - if (message.params !== undefined) { - Params.encode(message.params, writer.uint32(34).fork()).ldelim(); - } - - if (message.createLocalhost === true) { - writer.uint32(40).bool(message.createLocalhost); - } - - if (!message.nextClientSequence.isZero()) { - writer.uint32(48).uint64(message.nextClientSequence); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.clients.push(IdentifiedClientState.decode(reader, reader.uint32())); - break; - - case 2: - message.clientsConsensus.push(ClientConsensusStates.decode(reader, reader.uint32())); - break; - - case 3: - message.clientsMetadata.push(IdentifiedGenesisMetadata.decode(reader, reader.uint32())); - break; - - case 4: - message.params = Params.decode(reader, reader.uint32()); - break; - - case 5: - message.createLocalhost = reader.bool(); - break; - - case 6: - message.nextClientSequence = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenesisState { - const message = createBaseGenesisState(); - message.clients = object.clients?.map(e => IdentifiedClientState.fromPartial(e)) || []; - message.clientsConsensus = object.clientsConsensus?.map(e => ClientConsensusStates.fromPartial(e)) || []; - message.clientsMetadata = object.clientsMetadata?.map(e => IdentifiedGenesisMetadata.fromPartial(e)) || []; - message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined; - message.createLocalhost = object.createLocalhost ?? false; - message.nextClientSequence = object.nextClientSequence !== undefined && object.nextClientSequence !== null ? Long.fromValue(object.nextClientSequence) : Long.UZERO; - return message; - } - -}; - -function createBaseGenesisMetadata(): GenesisMetadata { - return { - key: new Uint8Array(), - value: new Uint8Array() - }; -} - -export const GenesisMetadata = { - encode(message: GenesisMetadata, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); - } - - if (message.value.length !== 0) { - writer.uint32(18).bytes(message.value); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisMetadata { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisMetadata(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.key = reader.bytes(); - break; - - case 2: - message.value = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenesisMetadata { - const message = createBaseGenesisMetadata(); - message.key = object.key ?? new Uint8Array(); - message.value = object.value ?? new Uint8Array(); - return message; - } - -}; - -function createBaseIdentifiedGenesisMetadata(): IdentifiedGenesisMetadata { - return { - clientId: "", - clientMetadata: [] - }; -} - -export const IdentifiedGenesisMetadata = { - encode(message: IdentifiedGenesisMetadata, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.clientId !== "") { - writer.uint32(10).string(message.clientId); - } - - for (const v of message.clientMetadata) { - GenesisMetadata.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): IdentifiedGenesisMetadata { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseIdentifiedGenesisMetadata(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.clientId = reader.string(); - break; - - case 2: - message.clientMetadata.push(GenesisMetadata.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): IdentifiedGenesisMetadata { - const message = createBaseIdentifiedGenesisMetadata(); - message.clientId = object.clientId ?? ""; - message.clientMetadata = object.clientMetadata?.map(e => GenesisMetadata.fromPartial(e)) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/client/v1/query.lcd.ts b/packages/codegen/src/ibc/core/client/v1/query.lcd.ts deleted file mode 100644 index 8a1e13e4..00000000 --- a/packages/codegen/src/ibc/core/client/v1/query.lcd.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { setPaginationParams } from "../../../../helpers"; -import { LCDClient } from "@osmonauts/lcd"; -import { QueryClientStateRequest, QueryClientStateResponseSDKType, QueryClientStatesRequest, QueryClientStatesResponseSDKType, QueryConsensusStateRequest, QueryConsensusStateResponseSDKType, QueryConsensusStatesRequest, QueryConsensusStatesResponseSDKType, QueryClientStatusRequest, QueryClientStatusResponseSDKType, QueryClientParamsRequest, QueryClientParamsResponseSDKType, QueryUpgradedClientStateRequest, QueryUpgradedClientStateResponseSDKType, QueryUpgradedConsensusStateRequest, QueryUpgradedConsensusStateResponseSDKType } from "./query"; -export class LCDQueryClient { - req: LCDClient; - - constructor({ - requestClient - }: { - requestClient: LCDClient; - }) { - this.req = requestClient; - this.clientState = this.clientState.bind(this); - this.clientStates = this.clientStates.bind(this); - this.consensusState = this.consensusState.bind(this); - this.consensusStates = this.consensusStates.bind(this); - this.clientStatus = this.clientStatus.bind(this); - this.clientParams = this.clientParams.bind(this); - this.upgradedClientState = this.upgradedClientState.bind(this); - this.upgradedConsensusState = this.upgradedConsensusState.bind(this); - } - /* ClientState queries an IBC light client. */ - - - async clientState(params: QueryClientStateRequest): Promise { - const endpoint = `ibc/core/client/v1/client_states/${params.clientId}`; - return await this.req.get(endpoint); - } - /* ClientStates queries all the IBC light clients of a chain. */ - - - async clientStates(params: QueryClientStatesRequest = { - pagination: undefined - }): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `ibc/core/client/v1/client_states`; - return await this.req.get(endpoint, options); - } - /* ConsensusState queries a consensus state associated with a client state at - a given height. */ - - - async consensusState(params: QueryConsensusStateRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.latestHeight !== "undefined") { - options.params.latest_height = params.latestHeight; - } - - const endpoint = `ibc/core/client/v1/consensus_states/${params.clientId}/revision/${params.revisionNumber}/height/${params.revisionHeight}`; - return await this.req.get(endpoint, options); - } - /* ConsensusStates queries all the consensus state associated with a given - client. */ - - - async consensusStates(params: QueryConsensusStatesRequest): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `ibc/core/client/v1/consensus_states/${params.clientId}`; - return await this.req.get(endpoint, options); - } - /* Status queries the status of an IBC client. */ - - - async clientStatus(params: QueryClientStatusRequest): Promise { - const endpoint = `ibc/core/client/v1/client_status/${params.clientId}`; - return await this.req.get(endpoint); - } - /* ClientParams queries all parameters of the ibc client. */ - - - async clientParams(_params: QueryClientParamsRequest = {}): Promise { - const endpoint = `ibc/client/v1/params`; - return await this.req.get(endpoint); - } - /* UpgradedClientState queries an Upgraded IBC light client. */ - - - async upgradedClientState(_params: QueryUpgradedClientStateRequest = {}): Promise { - const endpoint = `ibc/core/client/v1/upgraded_client_states`; - return await this.req.get(endpoint); - } - /* UpgradedConsensusState queries an Upgraded IBC consensus state. */ - - - async upgradedConsensusState(_params: QueryUpgradedConsensusStateRequest = {}): Promise { - const endpoint = `ibc/core/client/v1/upgraded_consensus_states`; - return await this.req.get(endpoint); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/client/v1/query.rpc.Query.ts b/packages/codegen/src/ibc/core/client/v1/query.rpc.Query.ts deleted file mode 100644 index 58429d53..00000000 --- a/packages/codegen/src/ibc/core/client/v1/query.rpc.Query.ts +++ /dev/null @@ -1,141 +0,0 @@ -import { Rpc } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { QueryClientStateRequest, QueryClientStateResponse, QueryClientStatesRequest, QueryClientStatesResponse, QueryConsensusStateRequest, QueryConsensusStateResponse, QueryConsensusStatesRequest, QueryConsensusStatesResponse, QueryClientStatusRequest, QueryClientStatusResponse, QueryClientParamsRequest, QueryClientParamsResponse, QueryUpgradedClientStateRequest, QueryUpgradedClientStateResponse, QueryUpgradedConsensusStateRequest, QueryUpgradedConsensusStateResponse } from "./query"; -/** Query provides defines the gRPC querier service */ - -export interface Query { - /** ClientState queries an IBC light client. */ - clientState(request: QueryClientStateRequest): Promise; - /** ClientStates queries all the IBC light clients of a chain. */ - - clientStates(request?: QueryClientStatesRequest): Promise; - /** - * ConsensusState queries a consensus state associated with a client state at - * a given height. - */ - - consensusState(request: QueryConsensusStateRequest): Promise; - /** - * ConsensusStates queries all the consensus state associated with a given - * client. - */ - - consensusStates(request: QueryConsensusStatesRequest): Promise; - /** Status queries the status of an IBC client. */ - - clientStatus(request: QueryClientStatusRequest): Promise; - /** ClientParams queries all parameters of the ibc client. */ - - clientParams(request?: QueryClientParamsRequest): Promise; - /** UpgradedClientState queries an Upgraded IBC light client. */ - - upgradedClientState(request?: QueryUpgradedClientStateRequest): Promise; - /** UpgradedConsensusState queries an Upgraded IBC consensus state. */ - - upgradedConsensusState(request?: QueryUpgradedConsensusStateRequest): Promise; -} -export class QueryClientImpl implements Query { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.clientState = this.clientState.bind(this); - this.clientStates = this.clientStates.bind(this); - this.consensusState = this.consensusState.bind(this); - this.consensusStates = this.consensusStates.bind(this); - this.clientStatus = this.clientStatus.bind(this); - this.clientParams = this.clientParams.bind(this); - this.upgradedClientState = this.upgradedClientState.bind(this); - this.upgradedConsensusState = this.upgradedConsensusState.bind(this); - } - - clientState(request: QueryClientStateRequest): Promise { - const data = QueryClientStateRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.client.v1.Query", "ClientState", data); - return promise.then(data => QueryClientStateResponse.decode(new _m0.Reader(data))); - } - - clientStates(request: QueryClientStatesRequest = { - pagination: undefined - }): Promise { - const data = QueryClientStatesRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.client.v1.Query", "ClientStates", data); - return promise.then(data => QueryClientStatesResponse.decode(new _m0.Reader(data))); - } - - consensusState(request: QueryConsensusStateRequest): Promise { - const data = QueryConsensusStateRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.client.v1.Query", "ConsensusState", data); - return promise.then(data => QueryConsensusStateResponse.decode(new _m0.Reader(data))); - } - - consensusStates(request: QueryConsensusStatesRequest): Promise { - const data = QueryConsensusStatesRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.client.v1.Query", "ConsensusStates", data); - return promise.then(data => QueryConsensusStatesResponse.decode(new _m0.Reader(data))); - } - - clientStatus(request: QueryClientStatusRequest): Promise { - const data = QueryClientStatusRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.client.v1.Query", "ClientStatus", data); - return promise.then(data => QueryClientStatusResponse.decode(new _m0.Reader(data))); - } - - clientParams(request: QueryClientParamsRequest = {}): Promise { - const data = QueryClientParamsRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.client.v1.Query", "ClientParams", data); - return promise.then(data => QueryClientParamsResponse.decode(new _m0.Reader(data))); - } - - upgradedClientState(request: QueryUpgradedClientStateRequest = {}): Promise { - const data = QueryUpgradedClientStateRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.client.v1.Query", "UpgradedClientState", data); - return promise.then(data => QueryUpgradedClientStateResponse.decode(new _m0.Reader(data))); - } - - upgradedConsensusState(request: QueryUpgradedConsensusStateRequest = {}): Promise { - const data = QueryUpgradedConsensusStateRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.client.v1.Query", "UpgradedConsensusState", data); - return promise.then(data => QueryUpgradedConsensusStateResponse.decode(new _m0.Reader(data))); - } - -} -export const createRpcQueryExtension = (base: QueryClient) => { - const rpc = createProtobufRpcClient(base); - const queryService = new QueryClientImpl(rpc); - return { - clientState(request: QueryClientStateRequest): Promise { - return queryService.clientState(request); - }, - - clientStates(request?: QueryClientStatesRequest): Promise { - return queryService.clientStates(request); - }, - - consensusState(request: QueryConsensusStateRequest): Promise { - return queryService.consensusState(request); - }, - - consensusStates(request: QueryConsensusStatesRequest): Promise { - return queryService.consensusStates(request); - }, - - clientStatus(request: QueryClientStatusRequest): Promise { - return queryService.clientStatus(request); - }, - - clientParams(request?: QueryClientParamsRequest): Promise { - return queryService.clientParams(request); - }, - - upgradedClientState(request?: QueryUpgradedClientStateRequest): Promise { - return queryService.upgradedClientState(request); - }, - - upgradedConsensusState(request?: QueryUpgradedConsensusStateRequest): Promise { - return queryService.upgradedConsensusState(request); - } - - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/client/v1/query.ts b/packages/codegen/src/ibc/core/client/v1/query.ts deleted file mode 100644 index b667aed9..00000000 --- a/packages/codegen/src/ibc/core/client/v1/query.ts +++ /dev/null @@ -1,1095 +0,0 @@ -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../../../cosmos/base/query/v1beta1/pagination"; -import { Any, AnySDKType } from "../../../../google/protobuf/any"; -import { Height, HeightSDKType, IdentifiedClientState, IdentifiedClientStateSDKType, ConsensusStateWithHeight, ConsensusStateWithHeightSDKType, Params, ParamsSDKType } from "./client"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../../helpers"; -/** - * QueryClientStateRequest is the request type for the Query/ClientState RPC - * method - */ - -export interface QueryClientStateRequest { - /** client state unique identifier */ - clientId: string; -} -/** - * QueryClientStateRequest is the request type for the Query/ClientState RPC - * method - */ - -export interface QueryClientStateRequestSDKType { - client_id: string; -} -/** - * 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. - */ - -export interface QueryClientStateResponse { - /** client state associated with the request identifier */ - clientState?: Any; - /** merkle proof of existence */ - - proof: Uint8Array; - /** height at which the proof was retrieved */ - - proofHeight?: Height; -} -/** - * 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. - */ - -export interface QueryClientStateResponseSDKType { - client_state?: AnySDKType; - proof: Uint8Array; - proof_height?: HeightSDKType; -} -/** - * QueryClientStatesRequest is the request type for the Query/ClientStates RPC - * method - */ - -export interface QueryClientStatesRequest { - /** pagination request */ - pagination?: PageRequest; -} -/** - * QueryClientStatesRequest is the request type for the Query/ClientStates RPC - * method - */ - -export interface QueryClientStatesRequestSDKType { - pagination?: PageRequestSDKType; -} -/** - * QueryClientStatesResponse is the response type for the Query/ClientStates RPC - * method. - */ - -export interface QueryClientStatesResponse { - /** list of stored ClientStates of the chain. */ - clientStates: IdentifiedClientState[]; - /** pagination response */ - - pagination?: PageResponse; -} -/** - * QueryClientStatesResponse is the response type for the Query/ClientStates RPC - * method. - */ - -export interface QueryClientStatesResponseSDKType { - client_states: IdentifiedClientStateSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * 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. - */ - -export interface QueryConsensusStateRequest { - /** client identifier */ - clientId: string; - /** consensus state revision number */ - - revisionNumber: Long; - /** consensus state revision height */ - - revisionHeight: Long; - /** - * latest_height overrrides the height field and queries the latest stored - * ConsensusState - */ - - latestHeight: boolean; -} -/** - * 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. - */ - -export interface QueryConsensusStateRequestSDKType { - client_id: string; - revision_number: Long; - revision_height: Long; - latest_height: boolean; -} -/** - * QueryConsensusStateResponse is the response type for the Query/ConsensusState - * RPC method - */ - -export interface QueryConsensusStateResponse { - /** consensus state associated with the client identifier at the given height */ - consensusState?: Any; - /** merkle proof of existence */ - - proof: Uint8Array; - /** height at which the proof was retrieved */ - - proofHeight?: Height; -} -/** - * QueryConsensusStateResponse is the response type for the Query/ConsensusState - * RPC method - */ - -export interface QueryConsensusStateResponseSDKType { - consensus_state?: AnySDKType; - proof: Uint8Array; - proof_height?: HeightSDKType; -} -/** - * QueryConsensusStatesRequest is the request type for the Query/ConsensusStates - * RPC method. - */ - -export interface QueryConsensusStatesRequest { - /** client identifier */ - clientId: string; - /** pagination request */ - - pagination?: PageRequest; -} -/** - * QueryConsensusStatesRequest is the request type for the Query/ConsensusStates - * RPC method. - */ - -export interface QueryConsensusStatesRequestSDKType { - client_id: string; - pagination?: PageRequestSDKType; -} -/** - * QueryConsensusStatesResponse is the response type for the - * Query/ConsensusStates RPC method - */ - -export interface QueryConsensusStatesResponse { - /** consensus states associated with the identifier */ - consensusStates: ConsensusStateWithHeight[]; - /** pagination response */ - - pagination?: PageResponse; -} -/** - * QueryConsensusStatesResponse is the response type for the - * Query/ConsensusStates RPC method - */ - -export interface QueryConsensusStatesResponseSDKType { - consensus_states: ConsensusStateWithHeightSDKType[]; - pagination?: PageResponseSDKType; -} -/** - * QueryClientStatusRequest is the request type for the Query/ClientStatus RPC - * method - */ - -export interface QueryClientStatusRequest { - /** client unique identifier */ - clientId: string; -} -/** - * QueryClientStatusRequest is the request type for the Query/ClientStatus RPC - * method - */ - -export interface QueryClientStatusRequestSDKType { - client_id: string; -} -/** - * QueryClientStatusResponse is the response type for the Query/ClientStatus RPC - * method. It returns the current status of the IBC client. - */ - -export interface QueryClientStatusResponse { - status: string; -} -/** - * QueryClientStatusResponse is the response type for the Query/ClientStatus RPC - * method. It returns the current status of the IBC client. - */ - -export interface QueryClientStatusResponseSDKType { - status: string; -} -/** - * QueryClientParamsRequest is the request type for the Query/ClientParams RPC - * method. - */ - -export interface QueryClientParamsRequest {} -/** - * QueryClientParamsRequest is the request type for the Query/ClientParams RPC - * method. - */ - -export interface QueryClientParamsRequestSDKType {} -/** - * QueryClientParamsResponse is the response type for the Query/ClientParams RPC - * method. - */ - -export interface QueryClientParamsResponse { - /** params defines the parameters of the module. */ - params?: Params; -} -/** - * QueryClientParamsResponse is the response type for the Query/ClientParams RPC - * method. - */ - -export interface QueryClientParamsResponseSDKType { - params?: ParamsSDKType; -} -/** - * QueryUpgradedClientStateRequest is the request type for the - * Query/UpgradedClientState RPC method - */ - -export interface QueryUpgradedClientStateRequest {} -/** - * QueryUpgradedClientStateRequest is the request type for the - * Query/UpgradedClientState RPC method - */ - -export interface QueryUpgradedClientStateRequestSDKType {} -/** - * QueryUpgradedClientStateResponse is the response type for the - * Query/UpgradedClientState RPC method. - */ - -export interface QueryUpgradedClientStateResponse { - /** client state associated with the request identifier */ - upgradedClientState?: Any; -} -/** - * QueryUpgradedClientStateResponse is the response type for the - * Query/UpgradedClientState RPC method. - */ - -export interface QueryUpgradedClientStateResponseSDKType { - upgraded_client_state?: AnySDKType; -} -/** - * QueryUpgradedConsensusStateRequest is the request type for the - * Query/UpgradedConsensusState RPC method - */ - -export interface QueryUpgradedConsensusStateRequest {} -/** - * QueryUpgradedConsensusStateRequest is the request type for the - * Query/UpgradedConsensusState RPC method - */ - -export interface QueryUpgradedConsensusStateRequestSDKType {} -/** - * QueryUpgradedConsensusStateResponse is the response type for the - * Query/UpgradedConsensusState RPC method. - */ - -export interface QueryUpgradedConsensusStateResponse { - /** Consensus state associated with the request identifier */ - upgradedConsensusState?: Any; -} -/** - * QueryUpgradedConsensusStateResponse is the response type for the - * Query/UpgradedConsensusState RPC method. - */ - -export interface QueryUpgradedConsensusStateResponseSDKType { - upgraded_consensus_state?: AnySDKType; -} - -function createBaseQueryClientStateRequest(): QueryClientStateRequest { - return { - clientId: "" - }; -} - -export const QueryClientStateRequest = { - encode(message: QueryClientStateRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.clientId !== "") { - writer.uint32(10).string(message.clientId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClientStateRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryClientStateRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.clientId = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryClientStateRequest { - const message = createBaseQueryClientStateRequest(); - message.clientId = object.clientId ?? ""; - return message; - } - -}; - -function createBaseQueryClientStateResponse(): QueryClientStateResponse { - return { - clientState: undefined, - proof: new Uint8Array(), - proofHeight: undefined - }; -} - -export const QueryClientStateResponse = { - encode(message: QueryClientStateResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.clientState !== undefined) { - Any.encode(message.clientState, writer.uint32(10).fork()).ldelim(); - } - - if (message.proof.length !== 0) { - writer.uint32(18).bytes(message.proof); - } - - if (message.proofHeight !== undefined) { - Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClientStateResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryClientStateResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.clientState = Any.decode(reader, reader.uint32()); - break; - - case 2: - message.proof = reader.bytes(); - break; - - case 3: - message.proofHeight = Height.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryClientStateResponse { - const message = createBaseQueryClientStateResponse(); - message.clientState = object.clientState !== undefined && object.clientState !== null ? Any.fromPartial(object.clientState) : undefined; - message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined; - return message; - } - -}; - -function createBaseQueryClientStatesRequest(): QueryClientStatesRequest { - return { - pagination: undefined - }; -} - -export const QueryClientStatesRequest = { - encode(message: QueryClientStatesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClientStatesRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryClientStatesRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryClientStatesRequest { - const message = createBaseQueryClientStatesRequest(); - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryClientStatesResponse(): QueryClientStatesResponse { - return { - clientStates: [], - pagination: undefined - }; -} - -export const QueryClientStatesResponse = { - encode(message: QueryClientStatesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.clientStates) { - IdentifiedClientState.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClientStatesResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryClientStatesResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.clientStates.push(IdentifiedClientState.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryClientStatesResponse { - const message = createBaseQueryClientStatesResponse(); - message.clientStates = object.clientStates?.map(e => IdentifiedClientState.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryConsensusStateRequest(): QueryConsensusStateRequest { - return { - clientId: "", - revisionNumber: Long.UZERO, - revisionHeight: Long.UZERO, - latestHeight: false - }; -} - -export const QueryConsensusStateRequest = { - encode(message: QueryConsensusStateRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.clientId !== "") { - writer.uint32(10).string(message.clientId); - } - - if (!message.revisionNumber.isZero()) { - writer.uint32(16).uint64(message.revisionNumber); - } - - if (!message.revisionHeight.isZero()) { - writer.uint32(24).uint64(message.revisionHeight); - } - - if (message.latestHeight === true) { - writer.uint32(32).bool(message.latestHeight); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConsensusStateRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryConsensusStateRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.clientId = reader.string(); - break; - - case 2: - message.revisionNumber = (reader.uint64() as Long); - break; - - case 3: - message.revisionHeight = (reader.uint64() as Long); - break; - - case 4: - message.latestHeight = reader.bool(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryConsensusStateRequest { - const message = createBaseQueryConsensusStateRequest(); - message.clientId = object.clientId ?? ""; - message.revisionNumber = object.revisionNumber !== undefined && object.revisionNumber !== null ? Long.fromValue(object.revisionNumber) : Long.UZERO; - message.revisionHeight = object.revisionHeight !== undefined && object.revisionHeight !== null ? Long.fromValue(object.revisionHeight) : Long.UZERO; - message.latestHeight = object.latestHeight ?? false; - return message; - } - -}; - -function createBaseQueryConsensusStateResponse(): QueryConsensusStateResponse { - return { - consensusState: undefined, - proof: new Uint8Array(), - proofHeight: undefined - }; -} - -export const QueryConsensusStateResponse = { - encode(message: QueryConsensusStateResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.consensusState !== undefined) { - Any.encode(message.consensusState, writer.uint32(10).fork()).ldelim(); - } - - if (message.proof.length !== 0) { - writer.uint32(18).bytes(message.proof); - } - - if (message.proofHeight !== undefined) { - Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConsensusStateResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryConsensusStateResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.consensusState = Any.decode(reader, reader.uint32()); - break; - - case 2: - message.proof = reader.bytes(); - break; - - case 3: - message.proofHeight = Height.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryConsensusStateResponse { - const message = createBaseQueryConsensusStateResponse(); - message.consensusState = object.consensusState !== undefined && object.consensusState !== null ? Any.fromPartial(object.consensusState) : undefined; - message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined; - return message; - } - -}; - -function createBaseQueryConsensusStatesRequest(): QueryConsensusStatesRequest { - return { - clientId: "", - pagination: undefined - }; -} - -export const QueryConsensusStatesRequest = { - encode(message: QueryConsensusStatesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.clientId !== "") { - writer.uint32(10).string(message.clientId); - } - - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConsensusStatesRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryConsensusStatesRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.clientId = reader.string(); - break; - - case 2: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryConsensusStatesRequest { - const message = createBaseQueryConsensusStatesRequest(); - message.clientId = object.clientId ?? ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryConsensusStatesResponse(): QueryConsensusStatesResponse { - return { - consensusStates: [], - pagination: undefined - }; -} - -export const QueryConsensusStatesResponse = { - encode(message: QueryConsensusStatesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.consensusStates) { - ConsensusStateWithHeight.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConsensusStatesResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryConsensusStatesResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.consensusStates.push(ConsensusStateWithHeight.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryConsensusStatesResponse { - const message = createBaseQueryConsensusStatesResponse(); - message.consensusStates = object.consensusStates?.map(e => ConsensusStateWithHeight.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryClientStatusRequest(): QueryClientStatusRequest { - return { - clientId: "" - }; -} - -export const QueryClientStatusRequest = { - encode(message: QueryClientStatusRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.clientId !== "") { - writer.uint32(10).string(message.clientId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClientStatusRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryClientStatusRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.clientId = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryClientStatusRequest { - const message = createBaseQueryClientStatusRequest(); - message.clientId = object.clientId ?? ""; - return message; - } - -}; - -function createBaseQueryClientStatusResponse(): QueryClientStatusResponse { - return { - status: "" - }; -} - -export const QueryClientStatusResponse = { - encode(message: QueryClientStatusResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.status !== "") { - writer.uint32(10).string(message.status); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClientStatusResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryClientStatusResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.status = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryClientStatusResponse { - const message = createBaseQueryClientStatusResponse(); - message.status = object.status ?? ""; - return message; - } - -}; - -function createBaseQueryClientParamsRequest(): QueryClientParamsRequest { - return {}; -} - -export const QueryClientParamsRequest = { - encode(_: QueryClientParamsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClientParamsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryClientParamsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): QueryClientParamsRequest { - const message = createBaseQueryClientParamsRequest(); - return message; - } - -}; - -function createBaseQueryClientParamsResponse(): QueryClientParamsResponse { - return { - params: undefined - }; -} - -export const QueryClientParamsResponse = { - encode(message: QueryClientParamsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.params !== undefined) { - Params.encode(message.params, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClientParamsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryClientParamsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.params = Params.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryClientParamsResponse { - const message = createBaseQueryClientParamsResponse(); - message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined; - return message; - } - -}; - -function createBaseQueryUpgradedClientStateRequest(): QueryUpgradedClientStateRequest { - return {}; -} - -export const QueryUpgradedClientStateRequest = { - encode(_: QueryUpgradedClientStateRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryUpgradedClientStateRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryUpgradedClientStateRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): QueryUpgradedClientStateRequest { - const message = createBaseQueryUpgradedClientStateRequest(); - return message; - } - -}; - -function createBaseQueryUpgradedClientStateResponse(): QueryUpgradedClientStateResponse { - return { - upgradedClientState: undefined - }; -} - -export const QueryUpgradedClientStateResponse = { - encode(message: QueryUpgradedClientStateResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.upgradedClientState !== undefined) { - Any.encode(message.upgradedClientState, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryUpgradedClientStateResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryUpgradedClientStateResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.upgradedClientState = Any.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryUpgradedClientStateResponse { - const message = createBaseQueryUpgradedClientStateResponse(); - message.upgradedClientState = object.upgradedClientState !== undefined && object.upgradedClientState !== null ? Any.fromPartial(object.upgradedClientState) : undefined; - return message; - } - -}; - -function createBaseQueryUpgradedConsensusStateRequest(): QueryUpgradedConsensusStateRequest { - return {}; -} - -export const QueryUpgradedConsensusStateRequest = { - encode(_: QueryUpgradedConsensusStateRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryUpgradedConsensusStateRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryUpgradedConsensusStateRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): QueryUpgradedConsensusStateRequest { - const message = createBaseQueryUpgradedConsensusStateRequest(); - return message; - } - -}; - -function createBaseQueryUpgradedConsensusStateResponse(): QueryUpgradedConsensusStateResponse { - return { - upgradedConsensusState: undefined - }; -} - -export const QueryUpgradedConsensusStateResponse = { - encode(message: QueryUpgradedConsensusStateResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.upgradedConsensusState !== undefined) { - Any.encode(message.upgradedConsensusState, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryUpgradedConsensusStateResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryUpgradedConsensusStateResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.upgradedConsensusState = Any.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryUpgradedConsensusStateResponse { - const message = createBaseQueryUpgradedConsensusStateResponse(); - message.upgradedConsensusState = object.upgradedConsensusState !== undefined && object.upgradedConsensusState !== null ? Any.fromPartial(object.upgradedConsensusState) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/client/v1/tx.rpc.msg.ts b/packages/codegen/src/ibc/core/client/v1/tx.rpc.msg.ts deleted file mode 100644 index 3197da3f..00000000 --- a/packages/codegen/src/ibc/core/client/v1/tx.rpc.msg.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { Rpc } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { MsgCreateClient, MsgCreateClientResponse, MsgUpdateClient, MsgUpdateClientResponse, MsgUpgradeClient, MsgUpgradeClientResponse, MsgSubmitMisbehaviour, MsgSubmitMisbehaviourResponse } from "./tx"; -/** Msg defines the ibc/client Msg service. */ - -export interface Msg { - /** CreateClient defines a rpc handler method for MsgCreateClient. */ - createClient(request: MsgCreateClient): Promise; - /** UpdateClient defines a rpc handler method for MsgUpdateClient. */ - - updateClient(request: MsgUpdateClient): Promise; - /** UpgradeClient defines a rpc handler method for MsgUpgradeClient. */ - - upgradeClient(request: MsgUpgradeClient): Promise; - /** SubmitMisbehaviour defines a rpc handler method for MsgSubmitMisbehaviour. */ - - submitMisbehaviour(request: MsgSubmitMisbehaviour): Promise; -} -export class MsgClientImpl implements Msg { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.createClient = this.createClient.bind(this); - this.updateClient = this.updateClient.bind(this); - this.upgradeClient = this.upgradeClient.bind(this); - this.submitMisbehaviour = this.submitMisbehaviour.bind(this); - } - - createClient(request: MsgCreateClient): Promise { - const data = MsgCreateClient.encode(request).finish(); - const promise = this.rpc.request("ibc.core.client.v1.Msg", "CreateClient", data); - return promise.then(data => MsgCreateClientResponse.decode(new _m0.Reader(data))); - } - - updateClient(request: MsgUpdateClient): Promise { - const data = MsgUpdateClient.encode(request).finish(); - const promise = this.rpc.request("ibc.core.client.v1.Msg", "UpdateClient", data); - return promise.then(data => MsgUpdateClientResponse.decode(new _m0.Reader(data))); - } - - upgradeClient(request: MsgUpgradeClient): Promise { - const data = MsgUpgradeClient.encode(request).finish(); - const promise = this.rpc.request("ibc.core.client.v1.Msg", "UpgradeClient", data); - return promise.then(data => MsgUpgradeClientResponse.decode(new _m0.Reader(data))); - } - - submitMisbehaviour(request: MsgSubmitMisbehaviour): Promise { - const data = MsgSubmitMisbehaviour.encode(request).finish(); - const promise = this.rpc.request("ibc.core.client.v1.Msg", "SubmitMisbehaviour", data); - return promise.then(data => MsgSubmitMisbehaviourResponse.decode(new _m0.Reader(data))); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/client/v1/tx.ts b/packages/codegen/src/ibc/core/client/v1/tx.ts deleted file mode 100644 index 5eba0744..00000000 --- a/packages/codegen/src/ibc/core/client/v1/tx.ts +++ /dev/null @@ -1,571 +0,0 @@ -import { Any, AnySDKType } from "../../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** MsgCreateClient defines a message to create an IBC client */ - -export interface MsgCreateClient { - /** light client state */ - clientState?: Any; - /** - * consensus state associated with the client that corresponds to a given - * height. - */ - - consensusState?: Any; - /** signer address */ - - signer: string; -} -/** MsgCreateClient defines a message to create an IBC client */ - -export interface MsgCreateClientSDKType { - client_state?: AnySDKType; - consensus_state?: AnySDKType; - signer: string; -} -/** MsgCreateClientResponse defines the Msg/CreateClient response type. */ - -export interface MsgCreateClientResponse {} -/** MsgCreateClientResponse defines the Msg/CreateClient response type. */ - -export interface MsgCreateClientResponseSDKType {} -/** - * MsgUpdateClient defines an sdk.Msg to update a IBC client state using - * the given header. - */ - -export interface MsgUpdateClient { - /** client unique identifier */ - clientId: string; - /** header to update the light client */ - - header?: Any; - /** signer address */ - - signer: string; -} -/** - * MsgUpdateClient defines an sdk.Msg to update a IBC client state using - * the given header. - */ - -export interface MsgUpdateClientSDKType { - client_id: string; - header?: AnySDKType; - signer: string; -} -/** MsgUpdateClientResponse defines the Msg/UpdateClient response type. */ - -export interface MsgUpdateClientResponse {} -/** MsgUpdateClientResponse defines the Msg/UpdateClient response type. */ - -export interface MsgUpdateClientResponseSDKType {} -/** - * MsgUpgradeClient defines an sdk.Msg to upgrade an IBC client to a new client - * state - */ - -export interface MsgUpgradeClient { - /** client unique identifier */ - clientId: string; - /** upgraded client state */ - - clientState?: Any; - /** - * upgraded consensus state, only contains enough information to serve as a - * basis of trust in update logic - */ - - consensusState?: Any; - /** proof that old chain committed to new client */ - - proofUpgradeClient: Uint8Array; - /** proof that old chain committed to new consensus state */ - - proofUpgradeConsensusState: Uint8Array; - /** signer address */ - - signer: string; -} -/** - * MsgUpgradeClient defines an sdk.Msg to upgrade an IBC client to a new client - * state - */ - -export interface MsgUpgradeClientSDKType { - client_id: string; - client_state?: AnySDKType; - consensus_state?: AnySDKType; - proof_upgrade_client: Uint8Array; - proof_upgrade_consensus_state: Uint8Array; - signer: string; -} -/** MsgUpgradeClientResponse defines the Msg/UpgradeClient response type. */ - -export interface MsgUpgradeClientResponse {} -/** MsgUpgradeClientResponse defines the Msg/UpgradeClient response type. */ - -export interface MsgUpgradeClientResponseSDKType {} -/** - * MsgSubmitMisbehaviour defines an sdk.Msg type that submits Evidence for - * light client misbehaviour. - */ - -export interface MsgSubmitMisbehaviour { - /** client unique identifier */ - clientId: string; - /** misbehaviour used for freezing the light client */ - - misbehaviour?: Any; - /** signer address */ - - signer: string; -} -/** - * MsgSubmitMisbehaviour defines an sdk.Msg type that submits Evidence for - * light client misbehaviour. - */ - -export interface MsgSubmitMisbehaviourSDKType { - client_id: string; - misbehaviour?: AnySDKType; - signer: string; -} -/** - * MsgSubmitMisbehaviourResponse defines the Msg/SubmitMisbehaviour response - * type. - */ - -export interface MsgSubmitMisbehaviourResponse {} -/** - * MsgSubmitMisbehaviourResponse defines the Msg/SubmitMisbehaviour response - * type. - */ - -export interface MsgSubmitMisbehaviourResponseSDKType {} - -function createBaseMsgCreateClient(): MsgCreateClient { - return { - clientState: undefined, - consensusState: undefined, - signer: "" - }; -} - -export const MsgCreateClient = { - encode(message: MsgCreateClient, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.clientState !== undefined) { - Any.encode(message.clientState, writer.uint32(10).fork()).ldelim(); - } - - if (message.consensusState !== undefined) { - Any.encode(message.consensusState, writer.uint32(18).fork()).ldelim(); - } - - if (message.signer !== "") { - writer.uint32(26).string(message.signer); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateClient { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgCreateClient(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.clientState = Any.decode(reader, reader.uint32()); - break; - - case 2: - message.consensusState = Any.decode(reader, reader.uint32()); - break; - - case 3: - message.signer = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgCreateClient { - const message = createBaseMsgCreateClient(); - message.clientState = object.clientState !== undefined && object.clientState !== null ? Any.fromPartial(object.clientState) : undefined; - message.consensusState = object.consensusState !== undefined && object.consensusState !== null ? Any.fromPartial(object.consensusState) : undefined; - message.signer = object.signer ?? ""; - return message; - } - -}; - -function createBaseMsgCreateClientResponse(): MsgCreateClientResponse { - return {}; -} - -export const MsgCreateClientResponse = { - encode(_: MsgCreateClientResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateClientResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgCreateClientResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgCreateClientResponse { - const message = createBaseMsgCreateClientResponse(); - return message; - } - -}; - -function createBaseMsgUpdateClient(): MsgUpdateClient { - return { - clientId: "", - header: undefined, - signer: "" - }; -} - -export const MsgUpdateClient = { - encode(message: MsgUpdateClient, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.clientId !== "") { - writer.uint32(10).string(message.clientId); - } - - if (message.header !== undefined) { - Any.encode(message.header, writer.uint32(18).fork()).ldelim(); - } - - if (message.signer !== "") { - writer.uint32(26).string(message.signer); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateClient { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateClient(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.clientId = reader.string(); - break; - - case 2: - message.header = Any.decode(reader, reader.uint32()); - break; - - case 3: - message.signer = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgUpdateClient { - const message = createBaseMsgUpdateClient(); - message.clientId = object.clientId ?? ""; - message.header = object.header !== undefined && object.header !== null ? Any.fromPartial(object.header) : undefined; - message.signer = object.signer ?? ""; - return message; - } - -}; - -function createBaseMsgUpdateClientResponse(): MsgUpdateClientResponse { - return {}; -} - -export const MsgUpdateClientResponse = { - encode(_: MsgUpdateClientResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateClientResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateClientResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgUpdateClientResponse { - const message = createBaseMsgUpdateClientResponse(); - return message; - } - -}; - -function createBaseMsgUpgradeClient(): MsgUpgradeClient { - return { - clientId: "", - clientState: undefined, - consensusState: undefined, - proofUpgradeClient: new Uint8Array(), - proofUpgradeConsensusState: new Uint8Array(), - signer: "" - }; -} - -export const MsgUpgradeClient = { - encode(message: MsgUpgradeClient, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.clientId !== "") { - writer.uint32(10).string(message.clientId); - } - - if (message.clientState !== undefined) { - Any.encode(message.clientState, writer.uint32(18).fork()).ldelim(); - } - - if (message.consensusState !== undefined) { - Any.encode(message.consensusState, writer.uint32(26).fork()).ldelim(); - } - - if (message.proofUpgradeClient.length !== 0) { - writer.uint32(34).bytes(message.proofUpgradeClient); - } - - if (message.proofUpgradeConsensusState.length !== 0) { - writer.uint32(42).bytes(message.proofUpgradeConsensusState); - } - - if (message.signer !== "") { - writer.uint32(50).string(message.signer); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpgradeClient { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpgradeClient(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.clientId = reader.string(); - break; - - case 2: - message.clientState = Any.decode(reader, reader.uint32()); - break; - - case 3: - message.consensusState = Any.decode(reader, reader.uint32()); - break; - - case 4: - message.proofUpgradeClient = reader.bytes(); - break; - - case 5: - message.proofUpgradeConsensusState = reader.bytes(); - break; - - case 6: - message.signer = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgUpgradeClient { - const message = createBaseMsgUpgradeClient(); - message.clientId = object.clientId ?? ""; - message.clientState = object.clientState !== undefined && object.clientState !== null ? Any.fromPartial(object.clientState) : undefined; - message.consensusState = object.consensusState !== undefined && object.consensusState !== null ? Any.fromPartial(object.consensusState) : undefined; - message.proofUpgradeClient = object.proofUpgradeClient ?? new Uint8Array(); - message.proofUpgradeConsensusState = object.proofUpgradeConsensusState ?? new Uint8Array(); - message.signer = object.signer ?? ""; - return message; - } - -}; - -function createBaseMsgUpgradeClientResponse(): MsgUpgradeClientResponse { - return {}; -} - -export const MsgUpgradeClientResponse = { - encode(_: MsgUpgradeClientResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpgradeClientResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpgradeClientResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgUpgradeClientResponse { - const message = createBaseMsgUpgradeClientResponse(); - return message; - } - -}; - -function createBaseMsgSubmitMisbehaviour(): MsgSubmitMisbehaviour { - return { - clientId: "", - misbehaviour: undefined, - signer: "" - }; -} - -export const MsgSubmitMisbehaviour = { - encode(message: MsgSubmitMisbehaviour, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.clientId !== "") { - writer.uint32(10).string(message.clientId); - } - - if (message.misbehaviour !== undefined) { - Any.encode(message.misbehaviour, writer.uint32(18).fork()).ldelim(); - } - - if (message.signer !== "") { - writer.uint32(26).string(message.signer); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSubmitMisbehaviour { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgSubmitMisbehaviour(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.clientId = reader.string(); - break; - - case 2: - message.misbehaviour = Any.decode(reader, reader.uint32()); - break; - - case 3: - message.signer = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgSubmitMisbehaviour { - const message = createBaseMsgSubmitMisbehaviour(); - message.clientId = object.clientId ?? ""; - message.misbehaviour = object.misbehaviour !== undefined && object.misbehaviour !== null ? Any.fromPartial(object.misbehaviour) : undefined; - message.signer = object.signer ?? ""; - return message; - } - -}; - -function createBaseMsgSubmitMisbehaviourResponse(): MsgSubmitMisbehaviourResponse { - return {}; -} - -export const MsgSubmitMisbehaviourResponse = { - encode(_: MsgSubmitMisbehaviourResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgSubmitMisbehaviourResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgSubmitMisbehaviourResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgSubmitMisbehaviourResponse { - const message = createBaseMsgSubmitMisbehaviourResponse(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/commitment/v1/commitment.ts b/packages/codegen/src/ibc/core/commitment/v1/commitment.ts deleted file mode 100644 index 72d8725d..00000000 --- a/packages/codegen/src/ibc/core/commitment/v1/commitment.ts +++ /dev/null @@ -1,257 +0,0 @@ -import { CommitmentProof, CommitmentProofSDKType } from "../../../../confio/proofs"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** - * MerkleRoot defines a merkle root hash. - * In the Cosmos SDK, the AppHash of a block header becomes the root. - */ - -export interface MerkleRoot { - hash: Uint8Array; -} -/** - * MerkleRoot defines a merkle root hash. - * In the Cosmos SDK, the AppHash of a block header becomes the root. - */ - -export interface MerkleRootSDKType { - hash: Uint8Array; -} -/** - * 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...)) - */ - -export interface MerklePrefix { - keyPrefix: Uint8Array; -} -/** - * 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...)) - */ - -export interface MerklePrefixSDKType { - key_prefix: Uint8Array; -} -/** - * 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 - */ - -export interface MerklePath { - keyPath: string[]; -} -/** - * 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 - */ - -export interface MerklePathSDKType { - key_path: string[]; -} -/** - * 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 - */ - -export interface MerkleProof { - proofs: CommitmentProof[]; -} -/** - * 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 - */ - -export interface MerkleProofSDKType { - proofs: CommitmentProofSDKType[]; -} - -function createBaseMerkleRoot(): MerkleRoot { - return { - hash: new Uint8Array() - }; -} - -export const MerkleRoot = { - encode(message: MerkleRoot, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.hash.length !== 0) { - writer.uint32(10).bytes(message.hash); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MerkleRoot { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMerkleRoot(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.hash = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MerkleRoot { - const message = createBaseMerkleRoot(); - message.hash = object.hash ?? new Uint8Array(); - return message; - } - -}; - -function createBaseMerklePrefix(): MerklePrefix { - return { - keyPrefix: new Uint8Array() - }; -} - -export const MerklePrefix = { - encode(message: MerklePrefix, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.keyPrefix.length !== 0) { - writer.uint32(10).bytes(message.keyPrefix); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MerklePrefix { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMerklePrefix(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.keyPrefix = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MerklePrefix { - const message = createBaseMerklePrefix(); - message.keyPrefix = object.keyPrefix ?? new Uint8Array(); - return message; - } - -}; - -function createBaseMerklePath(): MerklePath { - return { - keyPath: [] - }; -} - -export const MerklePath = { - encode(message: MerklePath, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.keyPath) { - writer.uint32(10).string(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MerklePath { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMerklePath(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.keyPath.push(reader.string()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MerklePath { - const message = createBaseMerklePath(); - message.keyPath = object.keyPath?.map(e => e) || []; - return message; - } - -}; - -function createBaseMerkleProof(): MerkleProof { - return { - proofs: [] - }; -} - -export const MerkleProof = { - encode(message: MerkleProof, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.proofs) { - CommitmentProof.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MerkleProof { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMerkleProof(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.proofs.push(CommitmentProof.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MerkleProof { - const message = createBaseMerkleProof(); - message.proofs = object.proofs?.map(e => CommitmentProof.fromPartial(e)) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/connection/v1/connection.ts b/packages/codegen/src/ibc/core/connection/v1/connection.ts deleted file mode 100644 index 1c834d59..00000000 --- a/packages/codegen/src/ibc/core/connection/v1/connection.ts +++ /dev/null @@ -1,685 +0,0 @@ -import { MerklePrefix, MerklePrefixSDKType } from "../../commitment/v1/commitment"; -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * State defines if a connection is in one of the following states: - * INIT, TRYOPEN, OPEN or UNINITIALIZED. - */ - -export enum State { - /** STATE_UNINITIALIZED_UNSPECIFIED - Default State */ - STATE_UNINITIALIZED_UNSPECIFIED = 0, - - /** STATE_INIT - A connection end has just started the opening handshake. */ - STATE_INIT = 1, - - /** - * STATE_TRYOPEN - A connection end has acknowledged the handshake step on the counterparty - * chain. - */ - STATE_TRYOPEN = 2, - - /** STATE_OPEN - A connection end has completed the handshake. */ - STATE_OPEN = 3, - UNRECOGNIZED = -1, -} -export const StateSDKType = State; -export function stateFromJSON(object: any): State { - switch (object) { - case 0: - case "STATE_UNINITIALIZED_UNSPECIFIED": - return State.STATE_UNINITIALIZED_UNSPECIFIED; - - case 1: - case "STATE_INIT": - return State.STATE_INIT; - - case 2: - case "STATE_TRYOPEN": - return State.STATE_TRYOPEN; - - case 3: - case "STATE_OPEN": - return State.STATE_OPEN; - - case -1: - case "UNRECOGNIZED": - default: - return State.UNRECOGNIZED; - } -} -export function stateToJSON(object: State): string { - switch (object) { - case State.STATE_UNINITIALIZED_UNSPECIFIED: - return "STATE_UNINITIALIZED_UNSPECIFIED"; - - case State.STATE_INIT: - return "STATE_INIT"; - - case State.STATE_TRYOPEN: - return "STATE_TRYOPEN"; - - case State.STATE_OPEN: - return "STATE_OPEN"; - - case State.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** - * 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. - */ - -export interface ConnectionEnd { - /** client associated with this connection. */ - clientId: string; - /** - * IBC version which can be utilised to determine encodings or protocols for - * channels or packets utilising this connection. - */ - - versions: Version[]; - /** current state of the connection end. */ - - state: State; - /** counterparty chain associated with this connection. */ - - 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. - */ - - delayPeriod: Long; -} -/** - * 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. - */ - -export interface ConnectionEndSDKType { - client_id: string; - versions: VersionSDKType[]; - state: State; - counterparty?: CounterpartySDKType; - delay_period: Long; -} -/** - * IdentifiedConnection defines a connection with additional connection - * identifier field. - */ - -export interface IdentifiedConnection { - /** connection identifier. */ - id: string; - /** client associated with this connection. */ - - clientId: string; - /** - * IBC version which can be utilised to determine encodings or protocols for - * channels or packets utilising this connection - */ - - versions: Version[]; - /** current state of the connection end. */ - - state: State; - /** counterparty chain associated with this connection. */ - - counterparty?: Counterparty; - /** delay period associated with this connection. */ - - delayPeriod: Long; -} -/** - * IdentifiedConnection defines a connection with additional connection - * identifier field. - */ - -export interface IdentifiedConnectionSDKType { - id: string; - client_id: string; - versions: VersionSDKType[]; - state: State; - counterparty?: CounterpartySDKType; - delay_period: Long; -} -/** Counterparty defines the counterparty chain associated with a connection end. */ - -export interface Counterparty { - /** - * identifies the client on the counterparty chain associated with a given - * connection. - */ - clientId: string; - /** - * identifies the connection end on the counterparty chain associated with a - * given connection. - */ - - connectionId: string; - /** commitment merkle prefix of the counterparty chain. */ - - prefix?: MerklePrefix; -} -/** Counterparty defines the counterparty chain associated with a connection end. */ - -export interface CounterpartySDKType { - client_id: string; - connection_id: string; - prefix?: MerklePrefixSDKType; -} -/** ClientPaths define all the connection paths for a client state. */ - -export interface ClientPaths { - /** list of connection paths */ - paths: string[]; -} -/** ClientPaths define all the connection paths for a client state. */ - -export interface ClientPathsSDKType { - paths: string[]; -} -/** ConnectionPaths define all the connection paths for a given client state. */ - -export interface ConnectionPaths { - /** client state unique identifier */ - clientId: string; - /** list of connection paths */ - - paths: string[]; -} -/** ConnectionPaths define all the connection paths for a given client state. */ - -export interface ConnectionPathsSDKType { - client_id: string; - paths: string[]; -} -/** - * Version defines the versioning scheme used to negotiate the IBC verison in - * the connection handshake. - */ - -export interface Version { - /** unique version identifier */ - identifier: string; - /** list of features compatible with the specified identifier */ - - features: string[]; -} -/** - * Version defines the versioning scheme used to negotiate the IBC verison in - * the connection handshake. - */ - -export interface VersionSDKType { - identifier: string; - features: string[]; -} -/** Params defines the set of Connection parameters. */ - -export interface 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. - */ - maxExpectedTimePerBlock: Long; -} -/** Params defines the set of Connection parameters. */ - -export interface ParamsSDKType { - max_expected_time_per_block: Long; -} - -function createBaseConnectionEnd(): ConnectionEnd { - return { - clientId: "", - versions: [], - state: 0, - counterparty: undefined, - delayPeriod: Long.UZERO - }; -} - -export const ConnectionEnd = { - encode(message: ConnectionEnd, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.clientId !== "") { - writer.uint32(10).string(message.clientId); - } - - for (const v of message.versions) { - Version.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - if (message.state !== 0) { - writer.uint32(24).int32(message.state); - } - - if (message.counterparty !== undefined) { - Counterparty.encode(message.counterparty, writer.uint32(34).fork()).ldelim(); - } - - if (!message.delayPeriod.isZero()) { - writer.uint32(40).uint64(message.delayPeriod); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ConnectionEnd { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseConnectionEnd(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.clientId = reader.string(); - break; - - case 2: - message.versions.push(Version.decode(reader, reader.uint32())); - break; - - case 3: - message.state = (reader.int32() as any); - break; - - case 4: - message.counterparty = Counterparty.decode(reader, reader.uint32()); - break; - - case 5: - message.delayPeriod = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ConnectionEnd { - const message = createBaseConnectionEnd(); - message.clientId = object.clientId ?? ""; - message.versions = object.versions?.map(e => Version.fromPartial(e)) || []; - message.state = object.state ?? 0; - message.counterparty = object.counterparty !== undefined && object.counterparty !== null ? Counterparty.fromPartial(object.counterparty) : undefined; - message.delayPeriod = object.delayPeriod !== undefined && object.delayPeriod !== null ? Long.fromValue(object.delayPeriod) : Long.UZERO; - return message; - } - -}; - -function createBaseIdentifiedConnection(): IdentifiedConnection { - return { - id: "", - clientId: "", - versions: [], - state: 0, - counterparty: undefined, - delayPeriod: Long.UZERO - }; -} - -export const IdentifiedConnection = { - encode(message: IdentifiedConnection, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.id !== "") { - writer.uint32(10).string(message.id); - } - - if (message.clientId !== "") { - writer.uint32(18).string(message.clientId); - } - - for (const v of message.versions) { - Version.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - if (message.state !== 0) { - writer.uint32(32).int32(message.state); - } - - if (message.counterparty !== undefined) { - Counterparty.encode(message.counterparty, writer.uint32(42).fork()).ldelim(); - } - - if (!message.delayPeriod.isZero()) { - writer.uint32(48).uint64(message.delayPeriod); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): IdentifiedConnection { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseIdentifiedConnection(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.id = reader.string(); - break; - - case 2: - message.clientId = reader.string(); - break; - - case 3: - message.versions.push(Version.decode(reader, reader.uint32())); - break; - - case 4: - message.state = (reader.int32() as any); - break; - - case 5: - message.counterparty = Counterparty.decode(reader, reader.uint32()); - break; - - case 6: - message.delayPeriod = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): IdentifiedConnection { - const message = createBaseIdentifiedConnection(); - message.id = object.id ?? ""; - message.clientId = object.clientId ?? ""; - message.versions = object.versions?.map(e => Version.fromPartial(e)) || []; - message.state = object.state ?? 0; - message.counterparty = object.counterparty !== undefined && object.counterparty !== null ? Counterparty.fromPartial(object.counterparty) : undefined; - message.delayPeriod = object.delayPeriod !== undefined && object.delayPeriod !== null ? Long.fromValue(object.delayPeriod) : Long.UZERO; - return message; - } - -}; - -function createBaseCounterparty(): Counterparty { - return { - clientId: "", - connectionId: "", - prefix: undefined - }; -} - -export const Counterparty = { - encode(message: Counterparty, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.clientId !== "") { - writer.uint32(10).string(message.clientId); - } - - if (message.connectionId !== "") { - writer.uint32(18).string(message.connectionId); - } - - if (message.prefix !== undefined) { - MerklePrefix.encode(message.prefix, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Counterparty { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCounterparty(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.clientId = reader.string(); - break; - - case 2: - message.connectionId = reader.string(); - break; - - case 3: - message.prefix = MerklePrefix.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Counterparty { - const message = createBaseCounterparty(); - message.clientId = object.clientId ?? ""; - message.connectionId = object.connectionId ?? ""; - message.prefix = object.prefix !== undefined && object.prefix !== null ? MerklePrefix.fromPartial(object.prefix) : undefined; - return message; - } - -}; - -function createBaseClientPaths(): ClientPaths { - return { - paths: [] - }; -} - -export const ClientPaths = { - encode(message: ClientPaths, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.paths) { - writer.uint32(10).string(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ClientPaths { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseClientPaths(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.paths.push(reader.string()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ClientPaths { - const message = createBaseClientPaths(); - message.paths = object.paths?.map(e => e) || []; - return message; - } - -}; - -function createBaseConnectionPaths(): ConnectionPaths { - return { - clientId: "", - paths: [] - }; -} - -export const ConnectionPaths = { - encode(message: ConnectionPaths, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.clientId !== "") { - writer.uint32(10).string(message.clientId); - } - - for (const v of message.paths) { - writer.uint32(18).string(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ConnectionPaths { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseConnectionPaths(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.clientId = reader.string(); - break; - - case 2: - message.paths.push(reader.string()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ConnectionPaths { - const message = createBaseConnectionPaths(); - message.clientId = object.clientId ?? ""; - message.paths = object.paths?.map(e => e) || []; - return message; - } - -}; - -function createBaseVersion(): Version { - return { - identifier: "", - features: [] - }; -} - -export const Version = { - encode(message: Version, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.identifier !== "") { - writer.uint32(10).string(message.identifier); - } - - for (const v of message.features) { - writer.uint32(18).string(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Version { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseVersion(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.identifier = reader.string(); - break; - - case 2: - message.features.push(reader.string()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Version { - const message = createBaseVersion(); - message.identifier = object.identifier ?? ""; - message.features = object.features?.map(e => e) || []; - return message; - } - -}; - -function createBaseParams(): Params { - return { - maxExpectedTimePerBlock: Long.UZERO - }; -} - -export const Params = { - encode(message: Params, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.maxExpectedTimePerBlock.isZero()) { - writer.uint32(8).uint64(message.maxExpectedTimePerBlock); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Params { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseParams(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.maxExpectedTimePerBlock = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Params { - const message = createBaseParams(); - message.maxExpectedTimePerBlock = object.maxExpectedTimePerBlock !== undefined && object.maxExpectedTimePerBlock !== null ? Long.fromValue(object.maxExpectedTimePerBlock) : Long.UZERO; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/connection/v1/genesis.ts b/packages/codegen/src/ibc/core/connection/v1/genesis.ts deleted file mode 100644 index eb9701e6..00000000 --- a/packages/codegen/src/ibc/core/connection/v1/genesis.ts +++ /dev/null @@ -1,96 +0,0 @@ -import { IdentifiedConnection, IdentifiedConnectionSDKType, ConnectionPaths, ConnectionPathsSDKType, Params, ParamsSDKType } from "./connection"; -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** GenesisState defines the ibc connection submodule's genesis state. */ - -export interface GenesisState { - connections: IdentifiedConnection[]; - clientConnectionPaths: ConnectionPaths[]; - /** the sequence for the next generated connection identifier */ - - nextConnectionSequence: Long; - params?: Params; -} -/** GenesisState defines the ibc connection submodule's genesis state. */ - -export interface GenesisStateSDKType { - connections: IdentifiedConnectionSDKType[]; - client_connection_paths: ConnectionPathsSDKType[]; - next_connection_sequence: Long; - params?: ParamsSDKType; -} - -function createBaseGenesisState(): GenesisState { - return { - connections: [], - clientConnectionPaths: [], - nextConnectionSequence: Long.UZERO, - params: undefined - }; -} - -export const GenesisState = { - encode(message: GenesisState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.connections) { - IdentifiedConnection.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - for (const v of message.clientConnectionPaths) { - ConnectionPaths.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - if (!message.nextConnectionSequence.isZero()) { - writer.uint32(24).uint64(message.nextConnectionSequence); - } - - if (message.params !== undefined) { - Params.encode(message.params, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.connections.push(IdentifiedConnection.decode(reader, reader.uint32())); - break; - - case 2: - message.clientConnectionPaths.push(ConnectionPaths.decode(reader, reader.uint32())); - break; - - case 3: - message.nextConnectionSequence = (reader.uint64() as Long); - break; - - case 4: - message.params = Params.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenesisState { - const message = createBaseGenesisState(); - message.connections = object.connections?.map(e => IdentifiedConnection.fromPartial(e)) || []; - message.clientConnectionPaths = object.clientConnectionPaths?.map(e => ConnectionPaths.fromPartial(e)) || []; - message.nextConnectionSequence = object.nextConnectionSequence !== undefined && object.nextConnectionSequence !== null ? Long.fromValue(object.nextConnectionSequence) : Long.UZERO; - message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/connection/v1/query.lcd.ts b/packages/codegen/src/ibc/core/connection/v1/query.lcd.ts deleted file mode 100644 index 3f979295..00000000 --- a/packages/codegen/src/ibc/core/connection/v1/query.lcd.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { setPaginationParams } from "../../../../helpers"; -import { LCDClient } from "@osmonauts/lcd"; -import { QueryConnectionRequest, QueryConnectionResponseSDKType, QueryConnectionsRequest, QueryConnectionsResponseSDKType, QueryClientConnectionsRequest, QueryClientConnectionsResponseSDKType, QueryConnectionClientStateRequest, QueryConnectionClientStateResponseSDKType, QueryConnectionConsensusStateRequest, QueryConnectionConsensusStateResponseSDKType } from "./query"; -export class LCDQueryClient { - req: LCDClient; - - constructor({ - requestClient - }: { - requestClient: LCDClient; - }) { - this.req = requestClient; - this.connection = this.connection.bind(this); - this.connections = this.connections.bind(this); - this.clientConnections = this.clientConnections.bind(this); - this.connectionClientState = this.connectionClientState.bind(this); - this.connectionConsensusState = this.connectionConsensusState.bind(this); - } - /* Connection queries an IBC connection end. */ - - - async connection(params: QueryConnectionRequest): Promise { - const endpoint = `ibc/core/connection/v1/connections/${params.connectionId}`; - return await this.req.get(endpoint); - } - /* Connections queries all the IBC connections of a chain. */ - - - async connections(params: QueryConnectionsRequest = { - pagination: undefined - }): Promise { - const options: any = { - params: {} - }; - - if (typeof params?.pagination !== "undefined") { - setPaginationParams(options, params.pagination); - } - - const endpoint = `ibc/core/connection/v1/connections`; - return await this.req.get(endpoint, options); - } - /* ClientConnections queries the connection paths associated with a client - state. */ - - - async clientConnections(params: QueryClientConnectionsRequest): Promise { - const endpoint = `ibc/core/connection/v1/client_connections/${params.clientId}`; - return await this.req.get(endpoint); - } - /* ConnectionClientState queries the client state associated with the - connection. */ - - - async connectionClientState(params: QueryConnectionClientStateRequest): Promise { - const endpoint = `ibc/core/connection/v1/connections/${params.connectionId}/client_state`; - return await this.req.get(endpoint); - } - /* ConnectionConsensusState queries the consensus state associated with the - connection. */ - - - async connectionConsensusState(params: QueryConnectionConsensusStateRequest): Promise { - const endpoint = `ibc/core/connection/v1/connections/${params.connectionId}/consensus_state/revision/${params.revisionNumber}/height/${params.revisionHeight}`; - return await this.req.get(endpoint); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/connection/v1/query.rpc.Query.ts b/packages/codegen/src/ibc/core/connection/v1/query.rpc.Query.ts deleted file mode 100644 index e3af26e1..00000000 --- a/packages/codegen/src/ibc/core/connection/v1/query.rpc.Query.ts +++ /dev/null @@ -1,102 +0,0 @@ -import { Rpc } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { QueryConnectionRequest, QueryConnectionResponse, QueryConnectionsRequest, QueryConnectionsResponse, QueryClientConnectionsRequest, QueryClientConnectionsResponse, QueryConnectionClientStateRequest, QueryConnectionClientStateResponse, QueryConnectionConsensusStateRequest, QueryConnectionConsensusStateResponse } from "./query"; -/** Query provides defines the gRPC querier service */ - -export interface Query { - /** Connection queries an IBC connection end. */ - connection(request: QueryConnectionRequest): Promise; - /** Connections queries all the IBC connections of a chain. */ - - connections(request?: QueryConnectionsRequest): Promise; - /** - * ClientConnections queries the connection paths associated with a client - * state. - */ - - clientConnections(request: QueryClientConnectionsRequest): Promise; - /** - * ConnectionClientState queries the client state associated with the - * connection. - */ - - connectionClientState(request: QueryConnectionClientStateRequest): Promise; - /** - * ConnectionConsensusState queries the consensus state associated with the - * connection. - */ - - connectionConsensusState(request: QueryConnectionConsensusStateRequest): Promise; -} -export class QueryClientImpl implements Query { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.connection = this.connection.bind(this); - this.connections = this.connections.bind(this); - this.clientConnections = this.clientConnections.bind(this); - this.connectionClientState = this.connectionClientState.bind(this); - this.connectionConsensusState = this.connectionConsensusState.bind(this); - } - - connection(request: QueryConnectionRequest): Promise { - const data = QueryConnectionRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.connection.v1.Query", "Connection", data); - return promise.then(data => QueryConnectionResponse.decode(new _m0.Reader(data))); - } - - connections(request: QueryConnectionsRequest = { - pagination: undefined - }): Promise { - const data = QueryConnectionsRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.connection.v1.Query", "Connections", data); - return promise.then(data => QueryConnectionsResponse.decode(new _m0.Reader(data))); - } - - clientConnections(request: QueryClientConnectionsRequest): Promise { - const data = QueryClientConnectionsRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.connection.v1.Query", "ClientConnections", data); - return promise.then(data => QueryClientConnectionsResponse.decode(new _m0.Reader(data))); - } - - connectionClientState(request: QueryConnectionClientStateRequest): Promise { - const data = QueryConnectionClientStateRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.connection.v1.Query", "ConnectionClientState", data); - return promise.then(data => QueryConnectionClientStateResponse.decode(new _m0.Reader(data))); - } - - connectionConsensusState(request: QueryConnectionConsensusStateRequest): Promise { - const data = QueryConnectionConsensusStateRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.connection.v1.Query", "ConnectionConsensusState", data); - return promise.then(data => QueryConnectionConsensusStateResponse.decode(new _m0.Reader(data))); - } - -} -export const createRpcQueryExtension = (base: QueryClient) => { - const rpc = createProtobufRpcClient(base); - const queryService = new QueryClientImpl(rpc); - return { - connection(request: QueryConnectionRequest): Promise { - return queryService.connection(request); - }, - - connections(request?: QueryConnectionsRequest): Promise { - return queryService.connections(request); - }, - - clientConnections(request: QueryClientConnectionsRequest): Promise { - return queryService.clientConnections(request); - }, - - connectionClientState(request: QueryConnectionClientStateRequest): Promise { - return queryService.connectionClientState(request); - }, - - connectionConsensusState(request: QueryConnectionConsensusStateRequest): Promise { - return queryService.connectionConsensusState(request); - } - - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/connection/v1/query.ts b/packages/codegen/src/ibc/core/connection/v1/query.ts deleted file mode 100644 index 857da006..00000000 --- a/packages/codegen/src/ibc/core/connection/v1/query.ts +++ /dev/null @@ -1,805 +0,0 @@ -import { PageRequest, PageRequestSDKType, PageResponse, PageResponseSDKType } from "../../../../cosmos/base/query/v1beta1/pagination"; -import { ConnectionEnd, ConnectionEndSDKType, IdentifiedConnection, IdentifiedConnectionSDKType } from "./connection"; -import { Height, HeightSDKType, IdentifiedClientState, IdentifiedClientStateSDKType } from "../../client/v1/client"; -import { Any, AnySDKType } from "../../../../google/protobuf/any"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../../../helpers"; -/** - * QueryConnectionRequest is the request type for the Query/Connection RPC - * method - */ - -export interface QueryConnectionRequest { - /** connection unique identifier */ - connectionId: string; -} -/** - * QueryConnectionRequest is the request type for the Query/Connection RPC - * method - */ - -export interface QueryConnectionRequestSDKType { - connection_id: string; -} -/** - * 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. - */ - -export interface QueryConnectionResponse { - /** connection associated with the request identifier */ - connection?: ConnectionEnd; - /** merkle proof of existence */ - - proof: Uint8Array; - /** height at which the proof was retrieved */ - - proofHeight?: Height; -} -/** - * 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. - */ - -export interface QueryConnectionResponseSDKType { - connection?: ConnectionEndSDKType; - proof: Uint8Array; - proof_height?: HeightSDKType; -} -/** - * QueryConnectionsRequest is the request type for the Query/Connections RPC - * method - */ - -export interface QueryConnectionsRequest { - pagination?: PageRequest; -} -/** - * QueryConnectionsRequest is the request type for the Query/Connections RPC - * method - */ - -export interface QueryConnectionsRequestSDKType { - pagination?: PageRequestSDKType; -} -/** - * QueryConnectionsResponse is the response type for the Query/Connections RPC - * method. - */ - -export interface QueryConnectionsResponse { - /** list of stored connections of the chain. */ - connections: IdentifiedConnection[]; - /** pagination response */ - - pagination?: PageResponse; - /** query block height */ - - height?: Height; -} -/** - * QueryConnectionsResponse is the response type for the Query/Connections RPC - * method. - */ - -export interface QueryConnectionsResponseSDKType { - connections: IdentifiedConnectionSDKType[]; - pagination?: PageResponseSDKType; - height?: HeightSDKType; -} -/** - * QueryClientConnectionsRequest is the request type for the - * Query/ClientConnections RPC method - */ - -export interface QueryClientConnectionsRequest { - /** client identifier associated with a connection */ - clientId: string; -} -/** - * QueryClientConnectionsRequest is the request type for the - * Query/ClientConnections RPC method - */ - -export interface QueryClientConnectionsRequestSDKType { - client_id: string; -} -/** - * QueryClientConnectionsResponse is the response type for the - * Query/ClientConnections RPC method - */ - -export interface QueryClientConnectionsResponse { - /** slice of all the connection paths associated with a client. */ - connectionPaths: string[]; - /** merkle proof of existence */ - - proof: Uint8Array; - /** height at which the proof was generated */ - - proofHeight?: Height; -} -/** - * QueryClientConnectionsResponse is the response type for the - * Query/ClientConnections RPC method - */ - -export interface QueryClientConnectionsResponseSDKType { - connection_paths: string[]; - proof: Uint8Array; - proof_height?: HeightSDKType; -} -/** - * QueryConnectionClientStateRequest is the request type for the - * Query/ConnectionClientState RPC method - */ - -export interface QueryConnectionClientStateRequest { - /** connection identifier */ - connectionId: string; -} -/** - * QueryConnectionClientStateRequest is the request type for the - * Query/ConnectionClientState RPC method - */ - -export interface QueryConnectionClientStateRequestSDKType { - connection_id: string; -} -/** - * QueryConnectionClientStateResponse is the response type for the - * Query/ConnectionClientState RPC method - */ - -export interface QueryConnectionClientStateResponse { - /** client state associated with the channel */ - identifiedClientState?: IdentifiedClientState; - /** merkle proof of existence */ - - proof: Uint8Array; - /** height at which the proof was retrieved */ - - proofHeight?: Height; -} -/** - * QueryConnectionClientStateResponse is the response type for the - * Query/ConnectionClientState RPC method - */ - -export interface QueryConnectionClientStateResponseSDKType { - identified_client_state?: IdentifiedClientStateSDKType; - proof: Uint8Array; - proof_height?: HeightSDKType; -} -/** - * QueryConnectionConsensusStateRequest is the request type for the - * Query/ConnectionConsensusState RPC method - */ - -export interface QueryConnectionConsensusStateRequest { - /** connection identifier */ - connectionId: string; - revisionNumber: Long; - revisionHeight: Long; -} -/** - * QueryConnectionConsensusStateRequest is the request type for the - * Query/ConnectionConsensusState RPC method - */ - -export interface QueryConnectionConsensusStateRequestSDKType { - connection_id: string; - revision_number: Long; - revision_height: Long; -} -/** - * QueryConnectionConsensusStateResponse is the response type for the - * Query/ConnectionConsensusState RPC method - */ - -export interface QueryConnectionConsensusStateResponse { - /** consensus state associated with the channel */ - consensusState?: Any; - /** client ID associated with the consensus state */ - - clientId: string; - /** merkle proof of existence */ - - proof: Uint8Array; - /** height at which the proof was retrieved */ - - proofHeight?: Height; -} -/** - * QueryConnectionConsensusStateResponse is the response type for the - * Query/ConnectionConsensusState RPC method - */ - -export interface QueryConnectionConsensusStateResponseSDKType { - consensus_state?: AnySDKType; - client_id: string; - proof: Uint8Array; - proof_height?: HeightSDKType; -} - -function createBaseQueryConnectionRequest(): QueryConnectionRequest { - return { - connectionId: "" - }; -} - -export const QueryConnectionRequest = { - encode(message: QueryConnectionRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.connectionId !== "") { - writer.uint32(10).string(message.connectionId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConnectionRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryConnectionRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.connectionId = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryConnectionRequest { - const message = createBaseQueryConnectionRequest(); - message.connectionId = object.connectionId ?? ""; - return message; - } - -}; - -function createBaseQueryConnectionResponse(): QueryConnectionResponse { - return { - connection: undefined, - proof: new Uint8Array(), - proofHeight: undefined - }; -} - -export const QueryConnectionResponse = { - encode(message: QueryConnectionResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.connection !== undefined) { - ConnectionEnd.encode(message.connection, writer.uint32(10).fork()).ldelim(); - } - - if (message.proof.length !== 0) { - writer.uint32(18).bytes(message.proof); - } - - if (message.proofHeight !== undefined) { - Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConnectionResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryConnectionResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.connection = ConnectionEnd.decode(reader, reader.uint32()); - break; - - case 2: - message.proof = reader.bytes(); - break; - - case 3: - message.proofHeight = Height.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryConnectionResponse { - const message = createBaseQueryConnectionResponse(); - message.connection = object.connection !== undefined && object.connection !== null ? ConnectionEnd.fromPartial(object.connection) : undefined; - message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined; - return message; - } - -}; - -function createBaseQueryConnectionsRequest(): QueryConnectionsRequest { - return { - pagination: undefined - }; -} - -export const QueryConnectionsRequest = { - encode(message: QueryConnectionsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.pagination !== undefined) { - PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConnectionsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryConnectionsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.pagination = PageRequest.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryConnectionsRequest { - const message = createBaseQueryConnectionsRequest(); - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageRequest.fromPartial(object.pagination) : undefined; - return message; - } - -}; - -function createBaseQueryConnectionsResponse(): QueryConnectionsResponse { - return { - connections: [], - pagination: undefined, - height: undefined - }; -} - -export const QueryConnectionsResponse = { - encode(message: QueryConnectionsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.connections) { - IdentifiedConnection.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.pagination !== undefined) { - PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } - - if (message.height !== undefined) { - Height.encode(message.height, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConnectionsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryConnectionsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.connections.push(IdentifiedConnection.decode(reader, reader.uint32())); - break; - - case 2: - message.pagination = PageResponse.decode(reader, reader.uint32()); - break; - - case 3: - message.height = Height.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryConnectionsResponse { - const message = createBaseQueryConnectionsResponse(); - message.connections = object.connections?.map(e => IdentifiedConnection.fromPartial(e)) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? PageResponse.fromPartial(object.pagination) : undefined; - message.height = object.height !== undefined && object.height !== null ? Height.fromPartial(object.height) : undefined; - return message; - } - -}; - -function createBaseQueryClientConnectionsRequest(): QueryClientConnectionsRequest { - return { - clientId: "" - }; -} - -export const QueryClientConnectionsRequest = { - encode(message: QueryClientConnectionsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.clientId !== "") { - writer.uint32(10).string(message.clientId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClientConnectionsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryClientConnectionsRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.clientId = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryClientConnectionsRequest { - const message = createBaseQueryClientConnectionsRequest(); - message.clientId = object.clientId ?? ""; - return message; - } - -}; - -function createBaseQueryClientConnectionsResponse(): QueryClientConnectionsResponse { - return { - connectionPaths: [], - proof: new Uint8Array(), - proofHeight: undefined - }; -} - -export const QueryClientConnectionsResponse = { - encode(message: QueryClientConnectionsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.connectionPaths) { - writer.uint32(10).string(v!); - } - - if (message.proof.length !== 0) { - writer.uint32(18).bytes(message.proof); - } - - if (message.proofHeight !== undefined) { - Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryClientConnectionsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryClientConnectionsResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.connectionPaths.push(reader.string()); - break; - - case 2: - message.proof = reader.bytes(); - break; - - case 3: - message.proofHeight = Height.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryClientConnectionsResponse { - const message = createBaseQueryClientConnectionsResponse(); - message.connectionPaths = object.connectionPaths?.map(e => e) || []; - message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined; - return message; - } - -}; - -function createBaseQueryConnectionClientStateRequest(): QueryConnectionClientStateRequest { - return { - connectionId: "" - }; -} - -export const QueryConnectionClientStateRequest = { - encode(message: QueryConnectionClientStateRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.connectionId !== "") { - writer.uint32(10).string(message.connectionId); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConnectionClientStateRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryConnectionClientStateRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.connectionId = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryConnectionClientStateRequest { - const message = createBaseQueryConnectionClientStateRequest(); - message.connectionId = object.connectionId ?? ""; - return message; - } - -}; - -function createBaseQueryConnectionClientStateResponse(): QueryConnectionClientStateResponse { - return { - identifiedClientState: undefined, - proof: new Uint8Array(), - proofHeight: undefined - }; -} - -export const QueryConnectionClientStateResponse = { - encode(message: QueryConnectionClientStateResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.identifiedClientState !== undefined) { - IdentifiedClientState.encode(message.identifiedClientState, writer.uint32(10).fork()).ldelim(); - } - - if (message.proof.length !== 0) { - writer.uint32(18).bytes(message.proof); - } - - if (message.proofHeight !== undefined) { - Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConnectionClientStateResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryConnectionClientStateResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.identifiedClientState = IdentifiedClientState.decode(reader, reader.uint32()); - break; - - case 2: - message.proof = reader.bytes(); - break; - - case 3: - message.proofHeight = Height.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryConnectionClientStateResponse { - const message = createBaseQueryConnectionClientStateResponse(); - message.identifiedClientState = object.identifiedClientState !== undefined && object.identifiedClientState !== null ? IdentifiedClientState.fromPartial(object.identifiedClientState) : undefined; - message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined; - return message; - } - -}; - -function createBaseQueryConnectionConsensusStateRequest(): QueryConnectionConsensusStateRequest { - return { - connectionId: "", - revisionNumber: Long.UZERO, - revisionHeight: Long.UZERO - }; -} - -export const QueryConnectionConsensusStateRequest = { - encode(message: QueryConnectionConsensusStateRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.connectionId !== "") { - writer.uint32(10).string(message.connectionId); - } - - if (!message.revisionNumber.isZero()) { - writer.uint32(16).uint64(message.revisionNumber); - } - - if (!message.revisionHeight.isZero()) { - writer.uint32(24).uint64(message.revisionHeight); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConnectionConsensusStateRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryConnectionConsensusStateRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.connectionId = reader.string(); - break; - - case 2: - message.revisionNumber = (reader.uint64() as Long); - break; - - case 3: - message.revisionHeight = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryConnectionConsensusStateRequest { - const message = createBaseQueryConnectionConsensusStateRequest(); - message.connectionId = object.connectionId ?? ""; - message.revisionNumber = object.revisionNumber !== undefined && object.revisionNumber !== null ? Long.fromValue(object.revisionNumber) : Long.UZERO; - message.revisionHeight = object.revisionHeight !== undefined && object.revisionHeight !== null ? Long.fromValue(object.revisionHeight) : Long.UZERO; - return message; - } - -}; - -function createBaseQueryConnectionConsensusStateResponse(): QueryConnectionConsensusStateResponse { - return { - consensusState: undefined, - clientId: "", - proof: new Uint8Array(), - proofHeight: undefined - }; -} - -export const QueryConnectionConsensusStateResponse = { - encode(message: QueryConnectionConsensusStateResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.consensusState !== undefined) { - Any.encode(message.consensusState, writer.uint32(10).fork()).ldelim(); - } - - if (message.clientId !== "") { - writer.uint32(18).string(message.clientId); - } - - if (message.proof.length !== 0) { - writer.uint32(26).bytes(message.proof); - } - - if (message.proofHeight !== undefined) { - Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryConnectionConsensusStateResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryConnectionConsensusStateResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.consensusState = Any.decode(reader, reader.uint32()); - break; - - case 2: - message.clientId = reader.string(); - break; - - case 3: - message.proof = reader.bytes(); - break; - - case 4: - message.proofHeight = Height.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryConnectionConsensusStateResponse { - const message = createBaseQueryConnectionConsensusStateResponse(); - message.consensusState = object.consensusState !== undefined && object.consensusState !== null ? Any.fromPartial(object.consensusState) : undefined; - message.clientId = object.clientId ?? ""; - message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/connection/v1/tx.rpc.msg.ts b/packages/codegen/src/ibc/core/connection/v1/tx.rpc.msg.ts deleted file mode 100644 index bfda3f8c..00000000 --- a/packages/codegen/src/ibc/core/connection/v1/tx.rpc.msg.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { Rpc } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { MsgConnectionOpenInit, MsgConnectionOpenInitResponse, MsgConnectionOpenTry, MsgConnectionOpenTryResponse, MsgConnectionOpenAck, MsgConnectionOpenAckResponse, MsgConnectionOpenConfirm, MsgConnectionOpenConfirmResponse } from "./tx"; -/** Msg defines the ibc/connection Msg service. */ - -export interface Msg { - /** ConnectionOpenInit defines a rpc handler method for MsgConnectionOpenInit. */ - connectionOpenInit(request: MsgConnectionOpenInit): Promise; - /** ConnectionOpenTry defines a rpc handler method for MsgConnectionOpenTry. */ - - connectionOpenTry(request: MsgConnectionOpenTry): Promise; - /** ConnectionOpenAck defines a rpc handler method for MsgConnectionOpenAck. */ - - connectionOpenAck(request: MsgConnectionOpenAck): Promise; - /** - * ConnectionOpenConfirm defines a rpc handler method for - * MsgConnectionOpenConfirm. - */ - - connectionOpenConfirm(request: MsgConnectionOpenConfirm): Promise; -} -export class MsgClientImpl implements Msg { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.connectionOpenInit = this.connectionOpenInit.bind(this); - this.connectionOpenTry = this.connectionOpenTry.bind(this); - this.connectionOpenAck = this.connectionOpenAck.bind(this); - this.connectionOpenConfirm = this.connectionOpenConfirm.bind(this); - } - - connectionOpenInit(request: MsgConnectionOpenInit): Promise { - const data = MsgConnectionOpenInit.encode(request).finish(); - const promise = this.rpc.request("ibc.core.connection.v1.Msg", "ConnectionOpenInit", data); - return promise.then(data => MsgConnectionOpenInitResponse.decode(new _m0.Reader(data))); - } - - connectionOpenTry(request: MsgConnectionOpenTry): Promise { - const data = MsgConnectionOpenTry.encode(request).finish(); - const promise = this.rpc.request("ibc.core.connection.v1.Msg", "ConnectionOpenTry", data); - return promise.then(data => MsgConnectionOpenTryResponse.decode(new _m0.Reader(data))); - } - - connectionOpenAck(request: MsgConnectionOpenAck): Promise { - const data = MsgConnectionOpenAck.encode(request).finish(); - const promise = this.rpc.request("ibc.core.connection.v1.Msg", "ConnectionOpenAck", data); - return promise.then(data => MsgConnectionOpenAckResponse.decode(new _m0.Reader(data))); - } - - connectionOpenConfirm(request: MsgConnectionOpenConfirm): Promise { - const data = MsgConnectionOpenConfirm.encode(request).finish(); - const promise = this.rpc.request("ibc.core.connection.v1.Msg", "ConnectionOpenConfirm", data); - return promise.then(data => MsgConnectionOpenConfirmResponse.decode(new _m0.Reader(data))); - } - -} \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/connection/v1/tx.ts b/packages/codegen/src/ibc/core/connection/v1/tx.ts deleted file mode 100644 index de5aea04..00000000 --- a/packages/codegen/src/ibc/core/connection/v1/tx.ts +++ /dev/null @@ -1,770 +0,0 @@ -import { Counterparty, CounterpartySDKType, Version, VersionSDKType } from "./connection"; -import { Any, AnySDKType } from "../../../../google/protobuf/any"; -import { Height, HeightSDKType } from "../../client/v1/client"; -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * MsgConnectionOpenInit defines the msg sent by an account on Chain A to - * initialize a connection with Chain B. - */ - -export interface MsgConnectionOpenInit { - clientId: string; - counterparty?: Counterparty; - version?: Version; - delayPeriod: Long; - signer: string; -} -/** - * MsgConnectionOpenInit defines the msg sent by an account on Chain A to - * initialize a connection with Chain B. - */ - -export interface MsgConnectionOpenInitSDKType { - client_id: string; - counterparty?: CounterpartySDKType; - version?: VersionSDKType; - delay_period: Long; - signer: string; -} -/** - * MsgConnectionOpenInitResponse defines the Msg/ConnectionOpenInit response - * type. - */ - -export interface MsgConnectionOpenInitResponse {} -/** - * MsgConnectionOpenInitResponse defines the Msg/ConnectionOpenInit response - * type. - */ - -export interface MsgConnectionOpenInitResponseSDKType {} -/** - * MsgConnectionOpenTry defines a msg sent by a Relayer to try to open a - * connection on Chain B. - */ - -export interface MsgConnectionOpenTry { - clientId: string; - /** - * in the case of crossing hello's, when both chains call OpenInit, we need - * the connection identifier of the previous connection in state INIT - */ - - previousConnectionId: string; - clientState?: Any; - counterparty?: Counterparty; - delayPeriod: Long; - counterpartyVersions: Version[]; - proofHeight?: Height; - /** - * proof of the initialization the connection on Chain A: `UNITIALIZED -> - * INIT` - */ - - proofInit: Uint8Array; - /** proof of client state included in message */ - - proofClient: Uint8Array; - /** proof of client consensus state */ - - proofConsensus: Uint8Array; - consensusHeight?: Height; - signer: string; -} -/** - * MsgConnectionOpenTry defines a msg sent by a Relayer to try to open a - * connection on Chain B. - */ - -export interface MsgConnectionOpenTrySDKType { - client_id: string; - previous_connection_id: string; - client_state?: AnySDKType; - counterparty?: CounterpartySDKType; - delay_period: Long; - counterparty_versions: VersionSDKType[]; - proof_height?: HeightSDKType; - proof_init: Uint8Array; - proof_client: Uint8Array; - proof_consensus: Uint8Array; - consensus_height?: HeightSDKType; - signer: string; -} -/** MsgConnectionOpenTryResponse defines the Msg/ConnectionOpenTry response type. */ - -export interface MsgConnectionOpenTryResponse {} -/** MsgConnectionOpenTryResponse defines the Msg/ConnectionOpenTry response type. */ - -export interface MsgConnectionOpenTryResponseSDKType {} -/** - * MsgConnectionOpenAck defines a msg sent by a Relayer to Chain A to - * acknowledge the change of connection state to TRYOPEN on Chain B. - */ - -export interface MsgConnectionOpenAck { - connectionId: string; - counterpartyConnectionId: string; - version?: Version; - clientState?: Any; - proofHeight?: Height; - /** - * proof of the initialization the connection on Chain B: `UNITIALIZED -> - * TRYOPEN` - */ - - proofTry: Uint8Array; - /** proof of client state included in message */ - - proofClient: Uint8Array; - /** proof of client consensus state */ - - proofConsensus: Uint8Array; - consensusHeight?: Height; - signer: string; -} -/** - * MsgConnectionOpenAck defines a msg sent by a Relayer to Chain A to - * acknowledge the change of connection state to TRYOPEN on Chain B. - */ - -export interface MsgConnectionOpenAckSDKType { - connection_id: string; - counterparty_connection_id: string; - version?: VersionSDKType; - client_state?: AnySDKType; - proof_height?: HeightSDKType; - proof_try: Uint8Array; - proof_client: Uint8Array; - proof_consensus: Uint8Array; - consensus_height?: HeightSDKType; - signer: string; -} -/** MsgConnectionOpenAckResponse defines the Msg/ConnectionOpenAck response type. */ - -export interface MsgConnectionOpenAckResponse {} -/** MsgConnectionOpenAckResponse defines the Msg/ConnectionOpenAck response type. */ - -export interface MsgConnectionOpenAckResponseSDKType {} -/** - * MsgConnectionOpenConfirm defines a msg sent by a Relayer to Chain B to - * acknowledge the change of connection state to OPEN on Chain A. - */ - -export interface MsgConnectionOpenConfirm { - connectionId: string; - /** proof for the change of the connection state on Chain A: `INIT -> OPEN` */ - - proofAck: Uint8Array; - proofHeight?: Height; - signer: string; -} -/** - * MsgConnectionOpenConfirm defines a msg sent by a Relayer to Chain B to - * acknowledge the change of connection state to OPEN on Chain A. - */ - -export interface MsgConnectionOpenConfirmSDKType { - connection_id: string; - proof_ack: Uint8Array; - proof_height?: HeightSDKType; - signer: string; -} -/** - * MsgConnectionOpenConfirmResponse defines the Msg/ConnectionOpenConfirm - * response type. - */ - -export interface MsgConnectionOpenConfirmResponse {} -/** - * MsgConnectionOpenConfirmResponse defines the Msg/ConnectionOpenConfirm - * response type. - */ - -export interface MsgConnectionOpenConfirmResponseSDKType {} - -function createBaseMsgConnectionOpenInit(): MsgConnectionOpenInit { - return { - clientId: "", - counterparty: undefined, - version: undefined, - delayPeriod: Long.UZERO, - signer: "" - }; -} - -export const MsgConnectionOpenInit = { - encode(message: MsgConnectionOpenInit, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.clientId !== "") { - writer.uint32(10).string(message.clientId); - } - - if (message.counterparty !== undefined) { - Counterparty.encode(message.counterparty, writer.uint32(18).fork()).ldelim(); - } - - if (message.version !== undefined) { - Version.encode(message.version, writer.uint32(26).fork()).ldelim(); - } - - if (!message.delayPeriod.isZero()) { - writer.uint32(32).uint64(message.delayPeriod); - } - - if (message.signer !== "") { - writer.uint32(42).string(message.signer); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgConnectionOpenInit { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgConnectionOpenInit(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.clientId = reader.string(); - break; - - case 2: - message.counterparty = Counterparty.decode(reader, reader.uint32()); - break; - - case 3: - message.version = Version.decode(reader, reader.uint32()); - break; - - case 4: - message.delayPeriod = (reader.uint64() as Long); - break; - - case 5: - message.signer = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgConnectionOpenInit { - const message = createBaseMsgConnectionOpenInit(); - message.clientId = object.clientId ?? ""; - message.counterparty = object.counterparty !== undefined && object.counterparty !== null ? Counterparty.fromPartial(object.counterparty) : undefined; - message.version = object.version !== undefined && object.version !== null ? Version.fromPartial(object.version) : undefined; - message.delayPeriod = object.delayPeriod !== undefined && object.delayPeriod !== null ? Long.fromValue(object.delayPeriod) : Long.UZERO; - message.signer = object.signer ?? ""; - return message; - } - -}; - -function createBaseMsgConnectionOpenInitResponse(): MsgConnectionOpenInitResponse { - return {}; -} - -export const MsgConnectionOpenInitResponse = { - encode(_: MsgConnectionOpenInitResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgConnectionOpenInitResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgConnectionOpenInitResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgConnectionOpenInitResponse { - const message = createBaseMsgConnectionOpenInitResponse(); - return message; - } - -}; - -function createBaseMsgConnectionOpenTry(): MsgConnectionOpenTry { - return { - clientId: "", - previousConnectionId: "", - clientState: undefined, - counterparty: undefined, - delayPeriod: Long.UZERO, - counterpartyVersions: [], - proofHeight: undefined, - proofInit: new Uint8Array(), - proofClient: new Uint8Array(), - proofConsensus: new Uint8Array(), - consensusHeight: undefined, - signer: "" - }; -} - -export const MsgConnectionOpenTry = { - encode(message: MsgConnectionOpenTry, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.clientId !== "") { - writer.uint32(10).string(message.clientId); - } - - if (message.previousConnectionId !== "") { - writer.uint32(18).string(message.previousConnectionId); - } - - if (message.clientState !== undefined) { - Any.encode(message.clientState, writer.uint32(26).fork()).ldelim(); - } - - if (message.counterparty !== undefined) { - Counterparty.encode(message.counterparty, writer.uint32(34).fork()).ldelim(); - } - - if (!message.delayPeriod.isZero()) { - writer.uint32(40).uint64(message.delayPeriod); - } - - for (const v of message.counterpartyVersions) { - Version.encode(v!, writer.uint32(50).fork()).ldelim(); - } - - if (message.proofHeight !== undefined) { - Height.encode(message.proofHeight, writer.uint32(58).fork()).ldelim(); - } - - if (message.proofInit.length !== 0) { - writer.uint32(66).bytes(message.proofInit); - } - - if (message.proofClient.length !== 0) { - writer.uint32(74).bytes(message.proofClient); - } - - if (message.proofConsensus.length !== 0) { - writer.uint32(82).bytes(message.proofConsensus); - } - - if (message.consensusHeight !== undefined) { - Height.encode(message.consensusHeight, writer.uint32(90).fork()).ldelim(); - } - - if (message.signer !== "") { - writer.uint32(98).string(message.signer); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgConnectionOpenTry { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgConnectionOpenTry(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.clientId = reader.string(); - break; - - case 2: - message.previousConnectionId = reader.string(); - break; - - case 3: - message.clientState = Any.decode(reader, reader.uint32()); - break; - - case 4: - message.counterparty = Counterparty.decode(reader, reader.uint32()); - break; - - case 5: - message.delayPeriod = (reader.uint64() as Long); - break; - - case 6: - message.counterpartyVersions.push(Version.decode(reader, reader.uint32())); - break; - - case 7: - message.proofHeight = Height.decode(reader, reader.uint32()); - break; - - case 8: - message.proofInit = reader.bytes(); - break; - - case 9: - message.proofClient = reader.bytes(); - break; - - case 10: - message.proofConsensus = reader.bytes(); - break; - - case 11: - message.consensusHeight = Height.decode(reader, reader.uint32()); - break; - - case 12: - message.signer = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgConnectionOpenTry { - const message = createBaseMsgConnectionOpenTry(); - message.clientId = object.clientId ?? ""; - message.previousConnectionId = object.previousConnectionId ?? ""; - message.clientState = object.clientState !== undefined && object.clientState !== null ? Any.fromPartial(object.clientState) : undefined; - message.counterparty = object.counterparty !== undefined && object.counterparty !== null ? Counterparty.fromPartial(object.counterparty) : undefined; - message.delayPeriod = object.delayPeriod !== undefined && object.delayPeriod !== null ? Long.fromValue(object.delayPeriod) : Long.UZERO; - message.counterpartyVersions = object.counterpartyVersions?.map(e => Version.fromPartial(e)) || []; - message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined; - message.proofInit = object.proofInit ?? new Uint8Array(); - message.proofClient = object.proofClient ?? new Uint8Array(); - message.proofConsensus = object.proofConsensus ?? new Uint8Array(); - message.consensusHeight = object.consensusHeight !== undefined && object.consensusHeight !== null ? Height.fromPartial(object.consensusHeight) : undefined; - message.signer = object.signer ?? ""; - return message; - } - -}; - -function createBaseMsgConnectionOpenTryResponse(): MsgConnectionOpenTryResponse { - return {}; -} - -export const MsgConnectionOpenTryResponse = { - encode(_: MsgConnectionOpenTryResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgConnectionOpenTryResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgConnectionOpenTryResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgConnectionOpenTryResponse { - const message = createBaseMsgConnectionOpenTryResponse(); - return message; - } - -}; - -function createBaseMsgConnectionOpenAck(): MsgConnectionOpenAck { - return { - connectionId: "", - counterpartyConnectionId: "", - version: undefined, - clientState: undefined, - proofHeight: undefined, - proofTry: new Uint8Array(), - proofClient: new Uint8Array(), - proofConsensus: new Uint8Array(), - consensusHeight: undefined, - signer: "" - }; -} - -export const MsgConnectionOpenAck = { - encode(message: MsgConnectionOpenAck, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.connectionId !== "") { - writer.uint32(10).string(message.connectionId); - } - - if (message.counterpartyConnectionId !== "") { - writer.uint32(18).string(message.counterpartyConnectionId); - } - - if (message.version !== undefined) { - Version.encode(message.version, writer.uint32(26).fork()).ldelim(); - } - - if (message.clientState !== undefined) { - Any.encode(message.clientState, writer.uint32(34).fork()).ldelim(); - } - - if (message.proofHeight !== undefined) { - Height.encode(message.proofHeight, writer.uint32(42).fork()).ldelim(); - } - - if (message.proofTry.length !== 0) { - writer.uint32(50).bytes(message.proofTry); - } - - if (message.proofClient.length !== 0) { - writer.uint32(58).bytes(message.proofClient); - } - - if (message.proofConsensus.length !== 0) { - writer.uint32(66).bytes(message.proofConsensus); - } - - if (message.consensusHeight !== undefined) { - Height.encode(message.consensusHeight, writer.uint32(74).fork()).ldelim(); - } - - if (message.signer !== "") { - writer.uint32(82).string(message.signer); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgConnectionOpenAck { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgConnectionOpenAck(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.connectionId = reader.string(); - break; - - case 2: - message.counterpartyConnectionId = reader.string(); - break; - - case 3: - message.version = Version.decode(reader, reader.uint32()); - break; - - case 4: - message.clientState = Any.decode(reader, reader.uint32()); - break; - - case 5: - message.proofHeight = Height.decode(reader, reader.uint32()); - break; - - case 6: - message.proofTry = reader.bytes(); - break; - - case 7: - message.proofClient = reader.bytes(); - break; - - case 8: - message.proofConsensus = reader.bytes(); - break; - - case 9: - message.consensusHeight = Height.decode(reader, reader.uint32()); - break; - - case 10: - message.signer = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgConnectionOpenAck { - const message = createBaseMsgConnectionOpenAck(); - message.connectionId = object.connectionId ?? ""; - message.counterpartyConnectionId = object.counterpartyConnectionId ?? ""; - message.version = object.version !== undefined && object.version !== null ? Version.fromPartial(object.version) : undefined; - message.clientState = object.clientState !== undefined && object.clientState !== null ? Any.fromPartial(object.clientState) : undefined; - message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined; - message.proofTry = object.proofTry ?? new Uint8Array(); - message.proofClient = object.proofClient ?? new Uint8Array(); - message.proofConsensus = object.proofConsensus ?? new Uint8Array(); - message.consensusHeight = object.consensusHeight !== undefined && object.consensusHeight !== null ? Height.fromPartial(object.consensusHeight) : undefined; - message.signer = object.signer ?? ""; - return message; - } - -}; - -function createBaseMsgConnectionOpenAckResponse(): MsgConnectionOpenAckResponse { - return {}; -} - -export const MsgConnectionOpenAckResponse = { - encode(_: MsgConnectionOpenAckResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgConnectionOpenAckResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgConnectionOpenAckResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgConnectionOpenAckResponse { - const message = createBaseMsgConnectionOpenAckResponse(); - return message; - } - -}; - -function createBaseMsgConnectionOpenConfirm(): MsgConnectionOpenConfirm { - return { - connectionId: "", - proofAck: new Uint8Array(), - proofHeight: undefined, - signer: "" - }; -} - -export const MsgConnectionOpenConfirm = { - encode(message: MsgConnectionOpenConfirm, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.connectionId !== "") { - writer.uint32(10).string(message.connectionId); - } - - if (message.proofAck.length !== 0) { - writer.uint32(18).bytes(message.proofAck); - } - - if (message.proofHeight !== undefined) { - Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim(); - } - - if (message.signer !== "") { - writer.uint32(34).string(message.signer); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgConnectionOpenConfirm { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgConnectionOpenConfirm(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.connectionId = reader.string(); - break; - - case 2: - message.proofAck = reader.bytes(); - break; - - case 3: - message.proofHeight = Height.decode(reader, reader.uint32()); - break; - - case 4: - message.signer = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): MsgConnectionOpenConfirm { - const message = createBaseMsgConnectionOpenConfirm(); - message.connectionId = object.connectionId ?? ""; - message.proofAck = object.proofAck ?? new Uint8Array(); - message.proofHeight = object.proofHeight !== undefined && object.proofHeight !== null ? Height.fromPartial(object.proofHeight) : undefined; - message.signer = object.signer ?? ""; - return message; - } - -}; - -function createBaseMsgConnectionOpenConfirmResponse(): MsgConnectionOpenConfirmResponse { - return {}; -} - -export const MsgConnectionOpenConfirmResponse = { - encode(_: MsgConnectionOpenConfirmResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgConnectionOpenConfirmResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgConnectionOpenConfirmResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): MsgConnectionOpenConfirmResponse { - const message = createBaseMsgConnectionOpenConfirmResponse(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/port/v1/query.rpc.Query.ts b/packages/codegen/src/ibc/core/port/v1/query.rpc.Query.ts deleted file mode 100644 index df3c124c..00000000 --- a/packages/codegen/src/ibc/core/port/v1/query.rpc.Query.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Rpc } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { QueryAppVersionRequest, QueryAppVersionResponse } from "./query"; -/** Query defines the gRPC querier service */ - -export interface Query { - /** AppVersion queries an IBC Port and determines the appropriate application version to be used */ - appVersion(request: QueryAppVersionRequest): Promise; -} -export class QueryClientImpl implements Query { - private readonly rpc: Rpc; - - constructor(rpc: Rpc) { - this.rpc = rpc; - this.appVersion = this.appVersion.bind(this); - } - - appVersion(request: QueryAppVersionRequest): Promise { - const data = QueryAppVersionRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.port.v1.Query", "AppVersion", data); - return promise.then(data => QueryAppVersionResponse.decode(new _m0.Reader(data))); - } - -} -export const createRpcQueryExtension = (base: QueryClient) => { - const rpc = createProtobufRpcClient(base); - const queryService = new QueryClientImpl(rpc); - return { - appVersion(request: QueryAppVersionRequest): Promise { - return queryService.appVersion(request); - } - - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/port/v1/query.ts b/packages/codegen/src/ibc/core/port/v1/query.ts deleted file mode 100644 index 3f3a0e4a..00000000 --- a/packages/codegen/src/ibc/core/port/v1/query.ts +++ /dev/null @@ -1,185 +0,0 @@ -import { Order, Counterparty, CounterpartySDKType } from "../../channel/v1/channel"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** QueryAppVersionRequest is the request type for the Query/AppVersion RPC method */ - -export interface QueryAppVersionRequest { - /** port unique identifier */ - portId: string; - /** connection unique identifier */ - - connectionId: string; - /** whether the channel is ordered or unordered */ - - ordering: Order; - /** counterparty channel end */ - - counterparty?: Counterparty; - /** proposed version */ - - proposedVersion: string; -} -/** QueryAppVersionRequest is the request type for the Query/AppVersion RPC method */ - -export interface QueryAppVersionRequestSDKType { - port_id: string; - connection_id: string; - ordering: Order; - counterparty?: CounterpartySDKType; - proposed_version: string; -} -/** QueryAppVersionResponse is the response type for the Query/AppVersion RPC method. */ - -export interface QueryAppVersionResponse { - /** port id associated with the request identifiers */ - portId: string; - /** supported app version */ - - version: string; -} -/** QueryAppVersionResponse is the response type for the Query/AppVersion RPC method. */ - -export interface QueryAppVersionResponseSDKType { - port_id: string; - version: string; -} - -function createBaseQueryAppVersionRequest(): QueryAppVersionRequest { - return { - portId: "", - connectionId: "", - ordering: 0, - counterparty: undefined, - proposedVersion: "" - }; -} - -export const QueryAppVersionRequest = { - encode(message: QueryAppVersionRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.portId !== "") { - writer.uint32(10).string(message.portId); - } - - if (message.connectionId !== "") { - writer.uint32(18).string(message.connectionId); - } - - if (message.ordering !== 0) { - writer.uint32(24).int32(message.ordering); - } - - if (message.counterparty !== undefined) { - Counterparty.encode(message.counterparty, writer.uint32(34).fork()).ldelim(); - } - - if (message.proposedVersion !== "") { - writer.uint32(42).string(message.proposedVersion); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAppVersionRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAppVersionRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.portId = reader.string(); - break; - - case 2: - message.connectionId = reader.string(); - break; - - case 3: - message.ordering = (reader.int32() as any); - break; - - case 4: - message.counterparty = Counterparty.decode(reader, reader.uint32()); - break; - - case 5: - message.proposedVersion = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryAppVersionRequest { - const message = createBaseQueryAppVersionRequest(); - message.portId = object.portId ?? ""; - message.connectionId = object.connectionId ?? ""; - message.ordering = object.ordering ?? 0; - message.counterparty = object.counterparty !== undefined && object.counterparty !== null ? Counterparty.fromPartial(object.counterparty) : undefined; - message.proposedVersion = object.proposedVersion ?? ""; - return message; - } - -}; - -function createBaseQueryAppVersionResponse(): QueryAppVersionResponse { - return { - portId: "", - version: "" - }; -} - -export const QueryAppVersionResponse = { - encode(message: QueryAppVersionResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.portId !== "") { - writer.uint32(10).string(message.portId); - } - - if (message.version !== "") { - writer.uint32(18).string(message.version); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): QueryAppVersionResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAppVersionResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.portId = reader.string(); - break; - - case 2: - message.version = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): QueryAppVersionResponse { - const message = createBaseQueryAppVersionResponse(); - message.portId = object.portId ?? ""; - message.version = object.version ?? ""; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/core/types/v1/genesis.ts b/packages/codegen/src/ibc/core/types/v1/genesis.ts deleted file mode 100644 index 8e01c49f..00000000 --- a/packages/codegen/src/ibc/core/types/v1/genesis.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { GenesisState as GenesisState1 } from "../../client/v1/genesis"; -import { GenesisStateSDKType as GenesisState1SDKType } from "../../client/v1/genesis"; -import { GenesisState as GenesisState2 } from "../../connection/v1/genesis"; -import { GenesisStateSDKType as GenesisState2SDKType } from "../../connection/v1/genesis"; -import { GenesisState as GenesisState3 } from "../../channel/v1/genesis"; -import { GenesisStateSDKType as GenesisState3SDKType } from "../../channel/v1/genesis"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** GenesisState defines the ibc module's genesis state. */ - -export interface GenesisState { - /** ICS002 - Clients genesis state */ - clientGenesis?: GenesisState1; - /** ICS003 - Connections genesis state */ - - connectionGenesis?: GenesisState2; - /** ICS004 - Channel genesis state */ - - channelGenesis?: GenesisState3; -} -/** GenesisState defines the ibc module's genesis state. */ - -export interface GenesisStateSDKType { - client_genesis?: GenesisState1SDKType; - connection_genesis?: GenesisState2SDKType; - channel_genesis?: GenesisState3SDKType; -} - -function createBaseGenesisState(): GenesisState { - return { - clientGenesis: undefined, - connectionGenesis: undefined, - channelGenesis: undefined - }; -} - -export const GenesisState = { - encode(message: GenesisState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.clientGenesis !== undefined) { - GenesisState1.encode(message.clientGenesis, writer.uint32(10).fork()).ldelim(); - } - - if (message.connectionGenesis !== undefined) { - GenesisState2.encode(message.connectionGenesis, writer.uint32(18).fork()).ldelim(); - } - - if (message.channelGenesis !== undefined) { - GenesisState3.encode(message.channelGenesis, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.clientGenesis = GenesisState1.decode(reader, reader.uint32()); - break; - - case 2: - message.connectionGenesis = GenesisState2.decode(reader, reader.uint32()); - break; - - case 3: - message.channelGenesis = GenesisState3.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): GenesisState { - const message = createBaseGenesisState(); - message.clientGenesis = object.clientGenesis !== undefined && object.clientGenesis !== null ? GenesisState1.fromPartial(object.clientGenesis) : undefined; - message.connectionGenesis = object.connectionGenesis !== undefined && object.connectionGenesis !== null ? GenesisState2.fromPartial(object.connectionGenesis) : undefined; - message.channelGenesis = object.channelGenesis !== undefined && object.channelGenesis !== null ? GenesisState3.fromPartial(object.channelGenesis) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/lcd.ts b/packages/codegen/src/ibc/lcd.ts deleted file mode 100644 index 100c9f9c..00000000 --- a/packages/codegen/src/ibc/lcd.ts +++ /dev/null @@ -1,125 +0,0 @@ -import { LCDClient } from "@osmonauts/lcd"; -export const createLCDClient = async ({ - restEndpoint -}: { - restEndpoint: string; -}) => { - const requestClient = new LCDClient({ - restEndpoint - }); - return { - cosmos: { - auth: { - v1beta1: new (await import("../cosmos/auth/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - authz: { - v1beta1: new (await import("../cosmos/authz/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - bank: { - v1beta1: new (await import("../cosmos/bank/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - base: { - tendermint: { - v1beta1: new (await import("../cosmos/base/tendermint/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - } - }, - distribution: { - v1beta1: new (await import("../cosmos/distribution/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - evidence: { - v1beta1: new (await import("../cosmos/evidence/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - feegrant: { - v1beta1: new (await import("../cosmos/feegrant/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - gov: { - v1: new (await import("../cosmos/gov/v1/query.lcd")).LCDQueryClient({ - requestClient - }), - v1beta1: new (await import("../cosmos/gov/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - group: { - v1: new (await import("../cosmos/group/v1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - mint: { - v1beta1: new (await import("../cosmos/mint/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - nft: { - v1beta1: new (await import("../cosmos/nft/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - params: { - v1beta1: new (await import("../cosmos/params/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - slashing: { - v1beta1: new (await import("../cosmos/slashing/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - staking: { - v1beta1: new (await import("../cosmos/staking/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - tx: { - v1beta1: new (await import("../cosmos/tx/v1beta1/service.lcd")).LCDQueryClient({ - requestClient - }) - }, - upgrade: { - v1beta1: new (await import("../cosmos/upgrade/v1beta1/query.lcd")).LCDQueryClient({ - requestClient - }) - } - }, - ibc: { - applications: { - transfer: { - v1: new (await import("./applications/transfer/v1/query.lcd")).LCDQueryClient({ - requestClient - }) - } - }, - core: { - channel: { - v1: new (await import("./core/channel/v1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - client: { - v1: new (await import("./core/client/v1/query.lcd")).LCDQueryClient({ - requestClient - }) - }, - connection: { - v1: new (await import("./core/connection/v1/query.lcd")).LCDQueryClient({ - requestClient - }) - } - } - } - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/lightclients/localhost/v1/localhost.ts b/packages/codegen/src/ibc/lightclients/localhost/v1/localhost.ts deleted file mode 100644 index 65e9e11d..00000000 --- a/packages/codegen/src/ibc/lightclients/localhost/v1/localhost.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { Height, HeightSDKType } from "../../../core/client/v1/client"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../../../helpers"; -/** - * ClientState defines a loopback (localhost) client. It requires (read-only) - * access to keys outside the client prefix. - */ - -export interface ClientState { - /** self chain ID */ - chainId: string; - /** self latest block height */ - - height?: Height; -} -/** - * ClientState defines a loopback (localhost) client. It requires (read-only) - * access to keys outside the client prefix. - */ - -export interface ClientStateSDKType { - chain_id: string; - height?: HeightSDKType; -} - -function createBaseClientState(): ClientState { - return { - chainId: "", - height: undefined - }; -} - -export const ClientState = { - encode(message: ClientState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.chainId !== "") { - writer.uint32(10).string(message.chainId); - } - - if (message.height !== undefined) { - Height.encode(message.height, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ClientState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseClientState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.chainId = reader.string(); - break; - - case 2: - message.height = Height.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ClientState { - const message = createBaseClientState(); - message.chainId = object.chainId ?? ""; - message.height = object.height !== undefined && object.height !== null ? Height.fromPartial(object.height) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/lightclients/solomachine/v1/solomachine.ts b/packages/codegen/src/ibc/lightclients/solomachine/v1/solomachine.ts deleted file mode 100644 index 1ba467ce..00000000 --- a/packages/codegen/src/ibc/lightclients/solomachine/v1/solomachine.ts +++ /dev/null @@ -1,1441 +0,0 @@ -import { Any, AnySDKType } from "../../../../google/protobuf/any"; -import { ConnectionEnd, ConnectionEndSDKType } from "../../../core/connection/v1/connection"; -import { Channel, ChannelSDKType } from "../../../core/channel/v1/channel"; -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * DataType defines the type of solo machine proof being created. This is done - * to preserve uniqueness of different data sign byte encodings. - */ - -export enum DataType { - /** DATA_TYPE_UNINITIALIZED_UNSPECIFIED - Default State */ - DATA_TYPE_UNINITIALIZED_UNSPECIFIED = 0, - - /** DATA_TYPE_CLIENT_STATE - Data type for client state verification */ - DATA_TYPE_CLIENT_STATE = 1, - - /** DATA_TYPE_CONSENSUS_STATE - Data type for consensus state verification */ - DATA_TYPE_CONSENSUS_STATE = 2, - - /** DATA_TYPE_CONNECTION_STATE - Data type for connection state verification */ - DATA_TYPE_CONNECTION_STATE = 3, - - /** DATA_TYPE_CHANNEL_STATE - Data type for channel state verification */ - DATA_TYPE_CHANNEL_STATE = 4, - - /** DATA_TYPE_PACKET_COMMITMENT - Data type for packet commitment verification */ - DATA_TYPE_PACKET_COMMITMENT = 5, - - /** DATA_TYPE_PACKET_ACKNOWLEDGEMENT - Data type for packet acknowledgement verification */ - DATA_TYPE_PACKET_ACKNOWLEDGEMENT = 6, - - /** DATA_TYPE_PACKET_RECEIPT_ABSENCE - Data type for packet receipt absence verification */ - DATA_TYPE_PACKET_RECEIPT_ABSENCE = 7, - - /** DATA_TYPE_NEXT_SEQUENCE_RECV - Data type for next sequence recv verification */ - DATA_TYPE_NEXT_SEQUENCE_RECV = 8, - - /** DATA_TYPE_HEADER - Data type for header verification */ - DATA_TYPE_HEADER = 9, - UNRECOGNIZED = -1, -} -export const DataTypeSDKType = DataType; -export function dataTypeFromJSON(object: any): DataType { - switch (object) { - case 0: - case "DATA_TYPE_UNINITIALIZED_UNSPECIFIED": - return DataType.DATA_TYPE_UNINITIALIZED_UNSPECIFIED; - - case 1: - case "DATA_TYPE_CLIENT_STATE": - return DataType.DATA_TYPE_CLIENT_STATE; - - case 2: - case "DATA_TYPE_CONSENSUS_STATE": - return DataType.DATA_TYPE_CONSENSUS_STATE; - - case 3: - case "DATA_TYPE_CONNECTION_STATE": - return DataType.DATA_TYPE_CONNECTION_STATE; - - case 4: - case "DATA_TYPE_CHANNEL_STATE": - return DataType.DATA_TYPE_CHANNEL_STATE; - - case 5: - case "DATA_TYPE_PACKET_COMMITMENT": - return DataType.DATA_TYPE_PACKET_COMMITMENT; - - case 6: - case "DATA_TYPE_PACKET_ACKNOWLEDGEMENT": - return DataType.DATA_TYPE_PACKET_ACKNOWLEDGEMENT; - - case 7: - case "DATA_TYPE_PACKET_RECEIPT_ABSENCE": - return DataType.DATA_TYPE_PACKET_RECEIPT_ABSENCE; - - case 8: - case "DATA_TYPE_NEXT_SEQUENCE_RECV": - return DataType.DATA_TYPE_NEXT_SEQUENCE_RECV; - - case 9: - case "DATA_TYPE_HEADER": - return DataType.DATA_TYPE_HEADER; - - case -1: - case "UNRECOGNIZED": - default: - return DataType.UNRECOGNIZED; - } -} -export function dataTypeToJSON(object: DataType): string { - switch (object) { - case DataType.DATA_TYPE_UNINITIALIZED_UNSPECIFIED: - return "DATA_TYPE_UNINITIALIZED_UNSPECIFIED"; - - case DataType.DATA_TYPE_CLIENT_STATE: - return "DATA_TYPE_CLIENT_STATE"; - - case DataType.DATA_TYPE_CONSENSUS_STATE: - return "DATA_TYPE_CONSENSUS_STATE"; - - case DataType.DATA_TYPE_CONNECTION_STATE: - return "DATA_TYPE_CONNECTION_STATE"; - - case DataType.DATA_TYPE_CHANNEL_STATE: - return "DATA_TYPE_CHANNEL_STATE"; - - case DataType.DATA_TYPE_PACKET_COMMITMENT: - return "DATA_TYPE_PACKET_COMMITMENT"; - - case DataType.DATA_TYPE_PACKET_ACKNOWLEDGEMENT: - return "DATA_TYPE_PACKET_ACKNOWLEDGEMENT"; - - case DataType.DATA_TYPE_PACKET_RECEIPT_ABSENCE: - return "DATA_TYPE_PACKET_RECEIPT_ABSENCE"; - - case DataType.DATA_TYPE_NEXT_SEQUENCE_RECV: - return "DATA_TYPE_NEXT_SEQUENCE_RECV"; - - case DataType.DATA_TYPE_HEADER: - return "DATA_TYPE_HEADER"; - - case DataType.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** - * ClientState defines a solo machine client that tracks the current consensus - * state and if the client is frozen. - */ - -export interface ClientState { - /** latest sequence of the client state */ - sequence: Long; - /** frozen sequence of the solo machine */ - - frozenSequence: Long; - consensusState?: ConsensusState; - /** - * when set to true, will allow governance to update a solo machine client. - * The client will be unfrozen if it is frozen. - */ - - allowUpdateAfterProposal: boolean; -} -/** - * ClientState defines a solo machine client that tracks the current consensus - * state and if the client is frozen. - */ - -export interface ClientStateSDKType { - sequence: Long; - frozen_sequence: Long; - consensus_state?: ConsensusStateSDKType; - allow_update_after_proposal: boolean; -} -/** - * 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. - */ - -export interface ConsensusState { - /** public key of the solo machine */ - publicKey?: Any; - /** - * diversifier allows the same public key to be re-used across different solo - * machine clients (potentially on different chains) without being considered - * misbehaviour. - */ - - diversifier: string; - timestamp: Long; -} -/** - * 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. - */ - -export interface ConsensusStateSDKType { - public_key?: AnySDKType; - diversifier: string; - timestamp: Long; -} -/** Header defines a solo machine consensus header */ - -export interface Header { - /** sequence to update solo machine public key at */ - sequence: Long; - timestamp: Long; - signature: Uint8Array; - newPublicKey?: Any; - newDiversifier: string; -} -/** Header defines a solo machine consensus header */ - -export interface HeaderSDKType { - sequence: Long; - timestamp: Long; - signature: Uint8Array; - new_public_key?: AnySDKType; - new_diversifier: string; -} -/** - * Misbehaviour defines misbehaviour for a solo machine which consists - * of a sequence and two signatures over different messages at that sequence. - */ - -export interface Misbehaviour { - clientId: string; - sequence: Long; - signatureOne?: SignatureAndData; - signatureTwo?: SignatureAndData; -} -/** - * Misbehaviour defines misbehaviour for a solo machine which consists - * of a sequence and two signatures over different messages at that sequence. - */ - -export interface MisbehaviourSDKType { - client_id: string; - sequence: Long; - signature_one?: SignatureAndDataSDKType; - signature_two?: SignatureAndDataSDKType; -} -/** - * SignatureAndData contains a signature and the data signed over to create that - * signature. - */ - -export interface SignatureAndData { - signature: Uint8Array; - dataType: DataType; - data: Uint8Array; - timestamp: Long; -} -/** - * SignatureAndData contains a signature and the data signed over to create that - * signature. - */ - -export interface SignatureAndDataSDKType { - signature: Uint8Array; - data_type: DataType; - data: Uint8Array; - timestamp: Long; -} -/** - * TimestampedSignatureData contains the signature data and the timestamp of the - * signature. - */ - -export interface TimestampedSignatureData { - signatureData: Uint8Array; - timestamp: Long; -} -/** - * TimestampedSignatureData contains the signature data and the timestamp of the - * signature. - */ - -export interface TimestampedSignatureDataSDKType { - signature_data: Uint8Array; - timestamp: Long; -} -/** SignBytes defines the signed bytes used for signature verification. */ - -export interface SignBytes { - sequence: Long; - timestamp: Long; - diversifier: string; - /** type of the data used */ - - dataType: DataType; - /** marshaled data */ - - data: Uint8Array; -} -/** SignBytes defines the signed bytes used for signature verification. */ - -export interface SignBytesSDKType { - sequence: Long; - timestamp: Long; - diversifier: string; - data_type: DataType; - data: Uint8Array; -} -/** HeaderData returns the SignBytes data for update verification. */ - -export interface HeaderData { - /** header public key */ - newPubKey?: Any; - /** header diversifier */ - - newDiversifier: string; -} -/** HeaderData returns the SignBytes data for update verification. */ - -export interface HeaderDataSDKType { - new_pub_key?: AnySDKType; - new_diversifier: string; -} -/** ClientStateData returns the SignBytes data for client state verification. */ - -export interface ClientStateData { - path: Uint8Array; - clientState?: Any; -} -/** ClientStateData returns the SignBytes data for client state verification. */ - -export interface ClientStateDataSDKType { - path: Uint8Array; - client_state?: AnySDKType; -} -/** - * ConsensusStateData returns the SignBytes data for consensus state - * verification. - */ - -export interface ConsensusStateData { - path: Uint8Array; - consensusState?: Any; -} -/** - * ConsensusStateData returns the SignBytes data for consensus state - * verification. - */ - -export interface ConsensusStateDataSDKType { - path: Uint8Array; - consensus_state?: AnySDKType; -} -/** - * ConnectionStateData returns the SignBytes data for connection state - * verification. - */ - -export interface ConnectionStateData { - path: Uint8Array; - connection?: ConnectionEnd; -} -/** - * ConnectionStateData returns the SignBytes data for connection state - * verification. - */ - -export interface ConnectionStateDataSDKType { - path: Uint8Array; - connection?: ConnectionEndSDKType; -} -/** - * ChannelStateData returns the SignBytes data for channel state - * verification. - */ - -export interface ChannelStateData { - path: Uint8Array; - channel?: Channel; -} -/** - * ChannelStateData returns the SignBytes data for channel state - * verification. - */ - -export interface ChannelStateDataSDKType { - path: Uint8Array; - channel?: ChannelSDKType; -} -/** - * PacketCommitmentData returns the SignBytes data for packet commitment - * verification. - */ - -export interface PacketCommitmentData { - path: Uint8Array; - commitment: Uint8Array; -} -/** - * PacketCommitmentData returns the SignBytes data for packet commitment - * verification. - */ - -export interface PacketCommitmentDataSDKType { - path: Uint8Array; - commitment: Uint8Array; -} -/** - * PacketAcknowledgementData returns the SignBytes data for acknowledgement - * verification. - */ - -export interface PacketAcknowledgementData { - path: Uint8Array; - acknowledgement: Uint8Array; -} -/** - * PacketAcknowledgementData returns the SignBytes data for acknowledgement - * verification. - */ - -export interface PacketAcknowledgementDataSDKType { - path: Uint8Array; - acknowledgement: Uint8Array; -} -/** - * PacketReceiptAbsenceData returns the SignBytes data for - * packet receipt absence verification. - */ - -export interface PacketReceiptAbsenceData { - path: Uint8Array; -} -/** - * PacketReceiptAbsenceData returns the SignBytes data for - * packet receipt absence verification. - */ - -export interface PacketReceiptAbsenceDataSDKType { - path: Uint8Array; -} -/** - * NextSequenceRecvData returns the SignBytes data for verification of the next - * sequence to be received. - */ - -export interface NextSequenceRecvData { - path: Uint8Array; - nextSeqRecv: Long; -} -/** - * NextSequenceRecvData returns the SignBytes data for verification of the next - * sequence to be received. - */ - -export interface NextSequenceRecvDataSDKType { - path: Uint8Array; - next_seq_recv: Long; -} - -function createBaseClientState(): ClientState { - return { - sequence: Long.UZERO, - frozenSequence: Long.UZERO, - consensusState: undefined, - allowUpdateAfterProposal: false - }; -} - -export const ClientState = { - encode(message: ClientState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.sequence.isZero()) { - writer.uint32(8).uint64(message.sequence); - } - - if (!message.frozenSequence.isZero()) { - writer.uint32(16).uint64(message.frozenSequence); - } - - if (message.consensusState !== undefined) { - ConsensusState.encode(message.consensusState, writer.uint32(26).fork()).ldelim(); - } - - if (message.allowUpdateAfterProposal === true) { - writer.uint32(32).bool(message.allowUpdateAfterProposal); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ClientState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseClientState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.sequence = (reader.uint64() as Long); - break; - - case 2: - message.frozenSequence = (reader.uint64() as Long); - break; - - case 3: - message.consensusState = ConsensusState.decode(reader, reader.uint32()); - break; - - case 4: - message.allowUpdateAfterProposal = reader.bool(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ClientState { - const message = createBaseClientState(); - message.sequence = object.sequence !== undefined && object.sequence !== null ? Long.fromValue(object.sequence) : Long.UZERO; - message.frozenSequence = object.frozenSequence !== undefined && object.frozenSequence !== null ? Long.fromValue(object.frozenSequence) : Long.UZERO; - message.consensusState = object.consensusState !== undefined && object.consensusState !== null ? ConsensusState.fromPartial(object.consensusState) : undefined; - message.allowUpdateAfterProposal = object.allowUpdateAfterProposal ?? false; - return message; - } - -}; - -function createBaseConsensusState(): ConsensusState { - return { - publicKey: undefined, - diversifier: "", - timestamp: Long.UZERO - }; -} - -export const ConsensusState = { - encode(message: ConsensusState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.publicKey !== undefined) { - Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim(); - } - - if (message.diversifier !== "") { - writer.uint32(18).string(message.diversifier); - } - - if (!message.timestamp.isZero()) { - writer.uint32(24).uint64(message.timestamp); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ConsensusState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseConsensusState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.publicKey = Any.decode(reader, reader.uint32()); - break; - - case 2: - message.diversifier = reader.string(); - break; - - case 3: - message.timestamp = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ConsensusState { - const message = createBaseConsensusState(); - message.publicKey = object.publicKey !== undefined && object.publicKey !== null ? Any.fromPartial(object.publicKey) : undefined; - message.diversifier = object.diversifier ?? ""; - message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? Long.fromValue(object.timestamp) : Long.UZERO; - return message; - } - -}; - -function createBaseHeader(): Header { - return { - sequence: Long.UZERO, - timestamp: Long.UZERO, - signature: new Uint8Array(), - newPublicKey: undefined, - newDiversifier: "" - }; -} - -export const Header = { - encode(message: Header, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.sequence.isZero()) { - writer.uint32(8).uint64(message.sequence); - } - - if (!message.timestamp.isZero()) { - writer.uint32(16).uint64(message.timestamp); - } - - if (message.signature.length !== 0) { - writer.uint32(26).bytes(message.signature); - } - - if (message.newPublicKey !== undefined) { - Any.encode(message.newPublicKey, writer.uint32(34).fork()).ldelim(); - } - - if (message.newDiversifier !== "") { - writer.uint32(42).string(message.newDiversifier); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Header { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseHeader(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.sequence = (reader.uint64() as Long); - break; - - case 2: - message.timestamp = (reader.uint64() as Long); - break; - - case 3: - message.signature = reader.bytes(); - break; - - case 4: - message.newPublicKey = Any.decode(reader, reader.uint32()); - break; - - case 5: - message.newDiversifier = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial
): Header { - const message = createBaseHeader(); - message.sequence = object.sequence !== undefined && object.sequence !== null ? Long.fromValue(object.sequence) : Long.UZERO; - message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? Long.fromValue(object.timestamp) : Long.UZERO; - message.signature = object.signature ?? new Uint8Array(); - message.newPublicKey = object.newPublicKey !== undefined && object.newPublicKey !== null ? Any.fromPartial(object.newPublicKey) : undefined; - message.newDiversifier = object.newDiversifier ?? ""; - return message; - } - -}; - -function createBaseMisbehaviour(): Misbehaviour { - return { - clientId: "", - sequence: Long.UZERO, - signatureOne: undefined, - signatureTwo: undefined - }; -} - -export const Misbehaviour = { - encode(message: Misbehaviour, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.clientId !== "") { - writer.uint32(10).string(message.clientId); - } - - if (!message.sequence.isZero()) { - writer.uint32(16).uint64(message.sequence); - } - - if (message.signatureOne !== undefined) { - SignatureAndData.encode(message.signatureOne, writer.uint32(26).fork()).ldelim(); - } - - if (message.signatureTwo !== undefined) { - SignatureAndData.encode(message.signatureTwo, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Misbehaviour { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMisbehaviour(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.clientId = reader.string(); - break; - - case 2: - message.sequence = (reader.uint64() as Long); - break; - - case 3: - message.signatureOne = SignatureAndData.decode(reader, reader.uint32()); - break; - - case 4: - message.signatureTwo = SignatureAndData.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Misbehaviour { - const message = createBaseMisbehaviour(); - message.clientId = object.clientId ?? ""; - message.sequence = object.sequence !== undefined && object.sequence !== null ? Long.fromValue(object.sequence) : Long.UZERO; - message.signatureOne = object.signatureOne !== undefined && object.signatureOne !== null ? SignatureAndData.fromPartial(object.signatureOne) : undefined; - message.signatureTwo = object.signatureTwo !== undefined && object.signatureTwo !== null ? SignatureAndData.fromPartial(object.signatureTwo) : undefined; - return message; - } - -}; - -function createBaseSignatureAndData(): SignatureAndData { - return { - signature: new Uint8Array(), - dataType: 0, - data: new Uint8Array(), - timestamp: Long.UZERO - }; -} - -export const SignatureAndData = { - encode(message: SignatureAndData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.signature.length !== 0) { - writer.uint32(10).bytes(message.signature); - } - - if (message.dataType !== 0) { - writer.uint32(16).int32(message.dataType); - } - - if (message.data.length !== 0) { - writer.uint32(26).bytes(message.data); - } - - if (!message.timestamp.isZero()) { - writer.uint32(32).uint64(message.timestamp); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SignatureAndData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSignatureAndData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.signature = reader.bytes(); - break; - - case 2: - message.dataType = (reader.int32() as any); - break; - - case 3: - message.data = reader.bytes(); - break; - - case 4: - message.timestamp = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SignatureAndData { - const message = createBaseSignatureAndData(); - message.signature = object.signature ?? new Uint8Array(); - message.dataType = object.dataType ?? 0; - message.data = object.data ?? new Uint8Array(); - message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? Long.fromValue(object.timestamp) : Long.UZERO; - return message; - } - -}; - -function createBaseTimestampedSignatureData(): TimestampedSignatureData { - return { - signatureData: new Uint8Array(), - timestamp: Long.UZERO - }; -} - -export const TimestampedSignatureData = { - encode(message: TimestampedSignatureData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.signatureData.length !== 0) { - writer.uint32(10).bytes(message.signatureData); - } - - if (!message.timestamp.isZero()) { - writer.uint32(16).uint64(message.timestamp); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): TimestampedSignatureData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTimestampedSignatureData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.signatureData = reader.bytes(); - break; - - case 2: - message.timestamp = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): TimestampedSignatureData { - const message = createBaseTimestampedSignatureData(); - message.signatureData = object.signatureData ?? new Uint8Array(); - message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? Long.fromValue(object.timestamp) : Long.UZERO; - return message; - } - -}; - -function createBaseSignBytes(): SignBytes { - return { - sequence: Long.UZERO, - timestamp: Long.UZERO, - diversifier: "", - dataType: 0, - data: new Uint8Array() - }; -} - -export const SignBytes = { - encode(message: SignBytes, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.sequence.isZero()) { - writer.uint32(8).uint64(message.sequence); - } - - if (!message.timestamp.isZero()) { - writer.uint32(16).uint64(message.timestamp); - } - - if (message.diversifier !== "") { - writer.uint32(26).string(message.diversifier); - } - - if (message.dataType !== 0) { - writer.uint32(32).int32(message.dataType); - } - - if (message.data.length !== 0) { - writer.uint32(42).bytes(message.data); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SignBytes { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSignBytes(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.sequence = (reader.uint64() as Long); - break; - - case 2: - message.timestamp = (reader.uint64() as Long); - break; - - case 3: - message.diversifier = reader.string(); - break; - - case 4: - message.dataType = (reader.int32() as any); - break; - - case 5: - message.data = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SignBytes { - const message = createBaseSignBytes(); - message.sequence = object.sequence !== undefined && object.sequence !== null ? Long.fromValue(object.sequence) : Long.UZERO; - message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? Long.fromValue(object.timestamp) : Long.UZERO; - message.diversifier = object.diversifier ?? ""; - message.dataType = object.dataType ?? 0; - message.data = object.data ?? new Uint8Array(); - return message; - } - -}; - -function createBaseHeaderData(): HeaderData { - return { - newPubKey: undefined, - newDiversifier: "" - }; -} - -export const HeaderData = { - encode(message: HeaderData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.newPubKey !== undefined) { - Any.encode(message.newPubKey, writer.uint32(10).fork()).ldelim(); - } - - if (message.newDiversifier !== "") { - writer.uint32(18).string(message.newDiversifier); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): HeaderData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseHeaderData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.newPubKey = Any.decode(reader, reader.uint32()); - break; - - case 2: - message.newDiversifier = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): HeaderData { - const message = createBaseHeaderData(); - message.newPubKey = object.newPubKey !== undefined && object.newPubKey !== null ? Any.fromPartial(object.newPubKey) : undefined; - message.newDiversifier = object.newDiversifier ?? ""; - return message; - } - -}; - -function createBaseClientStateData(): ClientStateData { - return { - path: new Uint8Array(), - clientState: undefined - }; -} - -export const ClientStateData = { - encode(message: ClientStateData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.path.length !== 0) { - writer.uint32(10).bytes(message.path); - } - - if (message.clientState !== undefined) { - Any.encode(message.clientState, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ClientStateData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseClientStateData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.path = reader.bytes(); - break; - - case 2: - message.clientState = Any.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ClientStateData { - const message = createBaseClientStateData(); - message.path = object.path ?? new Uint8Array(); - message.clientState = object.clientState !== undefined && object.clientState !== null ? Any.fromPartial(object.clientState) : undefined; - return message; - } - -}; - -function createBaseConsensusStateData(): ConsensusStateData { - return { - path: new Uint8Array(), - consensusState: undefined - }; -} - -export const ConsensusStateData = { - encode(message: ConsensusStateData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.path.length !== 0) { - writer.uint32(10).bytes(message.path); - } - - if (message.consensusState !== undefined) { - Any.encode(message.consensusState, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ConsensusStateData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseConsensusStateData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.path = reader.bytes(); - break; - - case 2: - message.consensusState = Any.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ConsensusStateData { - const message = createBaseConsensusStateData(); - message.path = object.path ?? new Uint8Array(); - message.consensusState = object.consensusState !== undefined && object.consensusState !== null ? Any.fromPartial(object.consensusState) : undefined; - return message; - } - -}; - -function createBaseConnectionStateData(): ConnectionStateData { - return { - path: new Uint8Array(), - connection: undefined - }; -} - -export const ConnectionStateData = { - encode(message: ConnectionStateData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.path.length !== 0) { - writer.uint32(10).bytes(message.path); - } - - if (message.connection !== undefined) { - ConnectionEnd.encode(message.connection, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ConnectionStateData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseConnectionStateData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.path = reader.bytes(); - break; - - case 2: - message.connection = ConnectionEnd.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ConnectionStateData { - const message = createBaseConnectionStateData(); - message.path = object.path ?? new Uint8Array(); - message.connection = object.connection !== undefined && object.connection !== null ? ConnectionEnd.fromPartial(object.connection) : undefined; - return message; - } - -}; - -function createBaseChannelStateData(): ChannelStateData { - return { - path: new Uint8Array(), - channel: undefined - }; -} - -export const ChannelStateData = { - encode(message: ChannelStateData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.path.length !== 0) { - writer.uint32(10).bytes(message.path); - } - - if (message.channel !== undefined) { - Channel.encode(message.channel, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ChannelStateData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseChannelStateData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.path = reader.bytes(); - break; - - case 2: - message.channel = Channel.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ChannelStateData { - const message = createBaseChannelStateData(); - message.path = object.path ?? new Uint8Array(); - message.channel = object.channel !== undefined && object.channel !== null ? Channel.fromPartial(object.channel) : undefined; - return message; - } - -}; - -function createBasePacketCommitmentData(): PacketCommitmentData { - return { - path: new Uint8Array(), - commitment: new Uint8Array() - }; -} - -export const PacketCommitmentData = { - encode(message: PacketCommitmentData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.path.length !== 0) { - writer.uint32(10).bytes(message.path); - } - - if (message.commitment.length !== 0) { - writer.uint32(18).bytes(message.commitment); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PacketCommitmentData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePacketCommitmentData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.path = reader.bytes(); - break; - - case 2: - message.commitment = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PacketCommitmentData { - const message = createBasePacketCommitmentData(); - message.path = object.path ?? new Uint8Array(); - message.commitment = object.commitment ?? new Uint8Array(); - return message; - } - -}; - -function createBasePacketAcknowledgementData(): PacketAcknowledgementData { - return { - path: new Uint8Array(), - acknowledgement: new Uint8Array() - }; -} - -export const PacketAcknowledgementData = { - encode(message: PacketAcknowledgementData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.path.length !== 0) { - writer.uint32(10).bytes(message.path); - } - - if (message.acknowledgement.length !== 0) { - writer.uint32(18).bytes(message.acknowledgement); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PacketAcknowledgementData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePacketAcknowledgementData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.path = reader.bytes(); - break; - - case 2: - message.acknowledgement = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PacketAcknowledgementData { - const message = createBasePacketAcknowledgementData(); - message.path = object.path ?? new Uint8Array(); - message.acknowledgement = object.acknowledgement ?? new Uint8Array(); - return message; - } - -}; - -function createBasePacketReceiptAbsenceData(): PacketReceiptAbsenceData { - return { - path: new Uint8Array() - }; -} - -export const PacketReceiptAbsenceData = { - encode(message: PacketReceiptAbsenceData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.path.length !== 0) { - writer.uint32(10).bytes(message.path); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PacketReceiptAbsenceData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePacketReceiptAbsenceData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.path = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PacketReceiptAbsenceData { - const message = createBasePacketReceiptAbsenceData(); - message.path = object.path ?? new Uint8Array(); - return message; - } - -}; - -function createBaseNextSequenceRecvData(): NextSequenceRecvData { - return { - path: new Uint8Array(), - nextSeqRecv: Long.UZERO - }; -} - -export const NextSequenceRecvData = { - encode(message: NextSequenceRecvData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.path.length !== 0) { - writer.uint32(10).bytes(message.path); - } - - if (!message.nextSeqRecv.isZero()) { - writer.uint32(16).uint64(message.nextSeqRecv); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): NextSequenceRecvData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseNextSequenceRecvData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.path = reader.bytes(); - break; - - case 2: - message.nextSeqRecv = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): NextSequenceRecvData { - const message = createBaseNextSequenceRecvData(); - message.path = object.path ?? new Uint8Array(); - message.nextSeqRecv = object.nextSeqRecv !== undefined && object.nextSeqRecv !== null ? Long.fromValue(object.nextSeqRecv) : Long.UZERO; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/lightclients/solomachine/v2/solomachine.ts b/packages/codegen/src/ibc/lightclients/solomachine/v2/solomachine.ts deleted file mode 100644 index 81fa2925..00000000 --- a/packages/codegen/src/ibc/lightclients/solomachine/v2/solomachine.ts +++ /dev/null @@ -1,1441 +0,0 @@ -import { Any, AnySDKType } from "../../../../google/protobuf/any"; -import { ConnectionEnd, ConnectionEndSDKType } from "../../../core/connection/v1/connection"; -import { Channel, ChannelSDKType } from "../../../core/channel/v1/channel"; -import { Long, DeepPartial } from "../../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * DataType defines the type of solo machine proof being created. This is done - * to preserve uniqueness of different data sign byte encodings. - */ - -export enum DataType { - /** DATA_TYPE_UNINITIALIZED_UNSPECIFIED - Default State */ - DATA_TYPE_UNINITIALIZED_UNSPECIFIED = 0, - - /** DATA_TYPE_CLIENT_STATE - Data type for client state verification */ - DATA_TYPE_CLIENT_STATE = 1, - - /** DATA_TYPE_CONSENSUS_STATE - Data type for consensus state verification */ - DATA_TYPE_CONSENSUS_STATE = 2, - - /** DATA_TYPE_CONNECTION_STATE - Data type for connection state verification */ - DATA_TYPE_CONNECTION_STATE = 3, - - /** DATA_TYPE_CHANNEL_STATE - Data type for channel state verification */ - DATA_TYPE_CHANNEL_STATE = 4, - - /** DATA_TYPE_PACKET_COMMITMENT - Data type for packet commitment verification */ - DATA_TYPE_PACKET_COMMITMENT = 5, - - /** DATA_TYPE_PACKET_ACKNOWLEDGEMENT - Data type for packet acknowledgement verification */ - DATA_TYPE_PACKET_ACKNOWLEDGEMENT = 6, - - /** DATA_TYPE_PACKET_RECEIPT_ABSENCE - Data type for packet receipt absence verification */ - DATA_TYPE_PACKET_RECEIPT_ABSENCE = 7, - - /** DATA_TYPE_NEXT_SEQUENCE_RECV - Data type for next sequence recv verification */ - DATA_TYPE_NEXT_SEQUENCE_RECV = 8, - - /** DATA_TYPE_HEADER - Data type for header verification */ - DATA_TYPE_HEADER = 9, - UNRECOGNIZED = -1, -} -export const DataTypeSDKType = DataType; -export function dataTypeFromJSON(object: any): DataType { - switch (object) { - case 0: - case "DATA_TYPE_UNINITIALIZED_UNSPECIFIED": - return DataType.DATA_TYPE_UNINITIALIZED_UNSPECIFIED; - - case 1: - case "DATA_TYPE_CLIENT_STATE": - return DataType.DATA_TYPE_CLIENT_STATE; - - case 2: - case "DATA_TYPE_CONSENSUS_STATE": - return DataType.DATA_TYPE_CONSENSUS_STATE; - - case 3: - case "DATA_TYPE_CONNECTION_STATE": - return DataType.DATA_TYPE_CONNECTION_STATE; - - case 4: - case "DATA_TYPE_CHANNEL_STATE": - return DataType.DATA_TYPE_CHANNEL_STATE; - - case 5: - case "DATA_TYPE_PACKET_COMMITMENT": - return DataType.DATA_TYPE_PACKET_COMMITMENT; - - case 6: - case "DATA_TYPE_PACKET_ACKNOWLEDGEMENT": - return DataType.DATA_TYPE_PACKET_ACKNOWLEDGEMENT; - - case 7: - case "DATA_TYPE_PACKET_RECEIPT_ABSENCE": - return DataType.DATA_TYPE_PACKET_RECEIPT_ABSENCE; - - case 8: - case "DATA_TYPE_NEXT_SEQUENCE_RECV": - return DataType.DATA_TYPE_NEXT_SEQUENCE_RECV; - - case 9: - case "DATA_TYPE_HEADER": - return DataType.DATA_TYPE_HEADER; - - case -1: - case "UNRECOGNIZED": - default: - return DataType.UNRECOGNIZED; - } -} -export function dataTypeToJSON(object: DataType): string { - switch (object) { - case DataType.DATA_TYPE_UNINITIALIZED_UNSPECIFIED: - return "DATA_TYPE_UNINITIALIZED_UNSPECIFIED"; - - case DataType.DATA_TYPE_CLIENT_STATE: - return "DATA_TYPE_CLIENT_STATE"; - - case DataType.DATA_TYPE_CONSENSUS_STATE: - return "DATA_TYPE_CONSENSUS_STATE"; - - case DataType.DATA_TYPE_CONNECTION_STATE: - return "DATA_TYPE_CONNECTION_STATE"; - - case DataType.DATA_TYPE_CHANNEL_STATE: - return "DATA_TYPE_CHANNEL_STATE"; - - case DataType.DATA_TYPE_PACKET_COMMITMENT: - return "DATA_TYPE_PACKET_COMMITMENT"; - - case DataType.DATA_TYPE_PACKET_ACKNOWLEDGEMENT: - return "DATA_TYPE_PACKET_ACKNOWLEDGEMENT"; - - case DataType.DATA_TYPE_PACKET_RECEIPT_ABSENCE: - return "DATA_TYPE_PACKET_RECEIPT_ABSENCE"; - - case DataType.DATA_TYPE_NEXT_SEQUENCE_RECV: - return "DATA_TYPE_NEXT_SEQUENCE_RECV"; - - case DataType.DATA_TYPE_HEADER: - return "DATA_TYPE_HEADER"; - - case DataType.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** - * ClientState defines a solo machine client that tracks the current consensus - * state and if the client is frozen. - */ - -export interface ClientState { - /** latest sequence of the client state */ - sequence: Long; - /** frozen sequence of the solo machine */ - - isFrozen: boolean; - consensusState?: ConsensusState; - /** - * when set to true, will allow governance to update a solo machine client. - * The client will be unfrozen if it is frozen. - */ - - allowUpdateAfterProposal: boolean; -} -/** - * ClientState defines a solo machine client that tracks the current consensus - * state and if the client is frozen. - */ - -export interface ClientStateSDKType { - sequence: Long; - is_frozen: boolean; - consensus_state?: ConsensusStateSDKType; - allow_update_after_proposal: boolean; -} -/** - * 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. - */ - -export interface ConsensusState { - /** public key of the solo machine */ - publicKey?: Any; - /** - * diversifier allows the same public key to be re-used across different solo - * machine clients (potentially on different chains) without being considered - * misbehaviour. - */ - - diversifier: string; - timestamp: Long; -} -/** - * 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. - */ - -export interface ConsensusStateSDKType { - public_key?: AnySDKType; - diversifier: string; - timestamp: Long; -} -/** Header defines a solo machine consensus header */ - -export interface Header { - /** sequence to update solo machine public key at */ - sequence: Long; - timestamp: Long; - signature: Uint8Array; - newPublicKey?: Any; - newDiversifier: string; -} -/** Header defines a solo machine consensus header */ - -export interface HeaderSDKType { - sequence: Long; - timestamp: Long; - signature: Uint8Array; - new_public_key?: AnySDKType; - new_diversifier: string; -} -/** - * Misbehaviour defines misbehaviour for a solo machine which consists - * of a sequence and two signatures over different messages at that sequence. - */ - -export interface Misbehaviour { - clientId: string; - sequence: Long; - signatureOne?: SignatureAndData; - signatureTwo?: SignatureAndData; -} -/** - * Misbehaviour defines misbehaviour for a solo machine which consists - * of a sequence and two signatures over different messages at that sequence. - */ - -export interface MisbehaviourSDKType { - client_id: string; - sequence: Long; - signature_one?: SignatureAndDataSDKType; - signature_two?: SignatureAndDataSDKType; -} -/** - * SignatureAndData contains a signature and the data signed over to create that - * signature. - */ - -export interface SignatureAndData { - signature: Uint8Array; - dataType: DataType; - data: Uint8Array; - timestamp: Long; -} -/** - * SignatureAndData contains a signature and the data signed over to create that - * signature. - */ - -export interface SignatureAndDataSDKType { - signature: Uint8Array; - data_type: DataType; - data: Uint8Array; - timestamp: Long; -} -/** - * TimestampedSignatureData contains the signature data and the timestamp of the - * signature. - */ - -export interface TimestampedSignatureData { - signatureData: Uint8Array; - timestamp: Long; -} -/** - * TimestampedSignatureData contains the signature data and the timestamp of the - * signature. - */ - -export interface TimestampedSignatureDataSDKType { - signature_data: Uint8Array; - timestamp: Long; -} -/** SignBytes defines the signed bytes used for signature verification. */ - -export interface SignBytes { - sequence: Long; - timestamp: Long; - diversifier: string; - /** type of the data used */ - - dataType: DataType; - /** marshaled data */ - - data: Uint8Array; -} -/** SignBytes defines the signed bytes used for signature verification. */ - -export interface SignBytesSDKType { - sequence: Long; - timestamp: Long; - diversifier: string; - data_type: DataType; - data: Uint8Array; -} -/** HeaderData returns the SignBytes data for update verification. */ - -export interface HeaderData { - /** header public key */ - newPubKey?: Any; - /** header diversifier */ - - newDiversifier: string; -} -/** HeaderData returns the SignBytes data for update verification. */ - -export interface HeaderDataSDKType { - new_pub_key?: AnySDKType; - new_diversifier: string; -} -/** ClientStateData returns the SignBytes data for client state verification. */ - -export interface ClientStateData { - path: Uint8Array; - clientState?: Any; -} -/** ClientStateData returns the SignBytes data for client state verification. */ - -export interface ClientStateDataSDKType { - path: Uint8Array; - client_state?: AnySDKType; -} -/** - * ConsensusStateData returns the SignBytes data for consensus state - * verification. - */ - -export interface ConsensusStateData { - path: Uint8Array; - consensusState?: Any; -} -/** - * ConsensusStateData returns the SignBytes data for consensus state - * verification. - */ - -export interface ConsensusStateDataSDKType { - path: Uint8Array; - consensus_state?: AnySDKType; -} -/** - * ConnectionStateData returns the SignBytes data for connection state - * verification. - */ - -export interface ConnectionStateData { - path: Uint8Array; - connection?: ConnectionEnd; -} -/** - * ConnectionStateData returns the SignBytes data for connection state - * verification. - */ - -export interface ConnectionStateDataSDKType { - path: Uint8Array; - connection?: ConnectionEndSDKType; -} -/** - * ChannelStateData returns the SignBytes data for channel state - * verification. - */ - -export interface ChannelStateData { - path: Uint8Array; - channel?: Channel; -} -/** - * ChannelStateData returns the SignBytes data for channel state - * verification. - */ - -export interface ChannelStateDataSDKType { - path: Uint8Array; - channel?: ChannelSDKType; -} -/** - * PacketCommitmentData returns the SignBytes data for packet commitment - * verification. - */ - -export interface PacketCommitmentData { - path: Uint8Array; - commitment: Uint8Array; -} -/** - * PacketCommitmentData returns the SignBytes data for packet commitment - * verification. - */ - -export interface PacketCommitmentDataSDKType { - path: Uint8Array; - commitment: Uint8Array; -} -/** - * PacketAcknowledgementData returns the SignBytes data for acknowledgement - * verification. - */ - -export interface PacketAcknowledgementData { - path: Uint8Array; - acknowledgement: Uint8Array; -} -/** - * PacketAcknowledgementData returns the SignBytes data for acknowledgement - * verification. - */ - -export interface PacketAcknowledgementDataSDKType { - path: Uint8Array; - acknowledgement: Uint8Array; -} -/** - * PacketReceiptAbsenceData returns the SignBytes data for - * packet receipt absence verification. - */ - -export interface PacketReceiptAbsenceData { - path: Uint8Array; -} -/** - * PacketReceiptAbsenceData returns the SignBytes data for - * packet receipt absence verification. - */ - -export interface PacketReceiptAbsenceDataSDKType { - path: Uint8Array; -} -/** - * NextSequenceRecvData returns the SignBytes data for verification of the next - * sequence to be received. - */ - -export interface NextSequenceRecvData { - path: Uint8Array; - nextSeqRecv: Long; -} -/** - * NextSequenceRecvData returns the SignBytes data for verification of the next - * sequence to be received. - */ - -export interface NextSequenceRecvDataSDKType { - path: Uint8Array; - next_seq_recv: Long; -} - -function createBaseClientState(): ClientState { - return { - sequence: Long.UZERO, - isFrozen: false, - consensusState: undefined, - allowUpdateAfterProposal: false - }; -} - -export const ClientState = { - encode(message: ClientState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.sequence.isZero()) { - writer.uint32(8).uint64(message.sequence); - } - - if (message.isFrozen === true) { - writer.uint32(16).bool(message.isFrozen); - } - - if (message.consensusState !== undefined) { - ConsensusState.encode(message.consensusState, writer.uint32(26).fork()).ldelim(); - } - - if (message.allowUpdateAfterProposal === true) { - writer.uint32(32).bool(message.allowUpdateAfterProposal); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ClientState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseClientState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.sequence = (reader.uint64() as Long); - break; - - case 2: - message.isFrozen = reader.bool(); - break; - - case 3: - message.consensusState = ConsensusState.decode(reader, reader.uint32()); - break; - - case 4: - message.allowUpdateAfterProposal = reader.bool(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ClientState { - const message = createBaseClientState(); - message.sequence = object.sequence !== undefined && object.sequence !== null ? Long.fromValue(object.sequence) : Long.UZERO; - message.isFrozen = object.isFrozen ?? false; - message.consensusState = object.consensusState !== undefined && object.consensusState !== null ? ConsensusState.fromPartial(object.consensusState) : undefined; - message.allowUpdateAfterProposal = object.allowUpdateAfterProposal ?? false; - return message; - } - -}; - -function createBaseConsensusState(): ConsensusState { - return { - publicKey: undefined, - diversifier: "", - timestamp: Long.UZERO - }; -} - -export const ConsensusState = { - encode(message: ConsensusState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.publicKey !== undefined) { - Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim(); - } - - if (message.diversifier !== "") { - writer.uint32(18).string(message.diversifier); - } - - if (!message.timestamp.isZero()) { - writer.uint32(24).uint64(message.timestamp); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ConsensusState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseConsensusState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.publicKey = Any.decode(reader, reader.uint32()); - break; - - case 2: - message.diversifier = reader.string(); - break; - - case 3: - message.timestamp = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ConsensusState { - const message = createBaseConsensusState(); - message.publicKey = object.publicKey !== undefined && object.publicKey !== null ? Any.fromPartial(object.publicKey) : undefined; - message.diversifier = object.diversifier ?? ""; - message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? Long.fromValue(object.timestamp) : Long.UZERO; - return message; - } - -}; - -function createBaseHeader(): Header { - return { - sequence: Long.UZERO, - timestamp: Long.UZERO, - signature: new Uint8Array(), - newPublicKey: undefined, - newDiversifier: "" - }; -} - -export const Header = { - encode(message: Header, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.sequence.isZero()) { - writer.uint32(8).uint64(message.sequence); - } - - if (!message.timestamp.isZero()) { - writer.uint32(16).uint64(message.timestamp); - } - - if (message.signature.length !== 0) { - writer.uint32(26).bytes(message.signature); - } - - if (message.newPublicKey !== undefined) { - Any.encode(message.newPublicKey, writer.uint32(34).fork()).ldelim(); - } - - if (message.newDiversifier !== "") { - writer.uint32(42).string(message.newDiversifier); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Header { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseHeader(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.sequence = (reader.uint64() as Long); - break; - - case 2: - message.timestamp = (reader.uint64() as Long); - break; - - case 3: - message.signature = reader.bytes(); - break; - - case 4: - message.newPublicKey = Any.decode(reader, reader.uint32()); - break; - - case 5: - message.newDiversifier = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial
): Header { - const message = createBaseHeader(); - message.sequence = object.sequence !== undefined && object.sequence !== null ? Long.fromValue(object.sequence) : Long.UZERO; - message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? Long.fromValue(object.timestamp) : Long.UZERO; - message.signature = object.signature ?? new Uint8Array(); - message.newPublicKey = object.newPublicKey !== undefined && object.newPublicKey !== null ? Any.fromPartial(object.newPublicKey) : undefined; - message.newDiversifier = object.newDiversifier ?? ""; - return message; - } - -}; - -function createBaseMisbehaviour(): Misbehaviour { - return { - clientId: "", - sequence: Long.UZERO, - signatureOne: undefined, - signatureTwo: undefined - }; -} - -export const Misbehaviour = { - encode(message: Misbehaviour, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.clientId !== "") { - writer.uint32(10).string(message.clientId); - } - - if (!message.sequence.isZero()) { - writer.uint32(16).uint64(message.sequence); - } - - if (message.signatureOne !== undefined) { - SignatureAndData.encode(message.signatureOne, writer.uint32(26).fork()).ldelim(); - } - - if (message.signatureTwo !== undefined) { - SignatureAndData.encode(message.signatureTwo, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Misbehaviour { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMisbehaviour(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.clientId = reader.string(); - break; - - case 2: - message.sequence = (reader.uint64() as Long); - break; - - case 3: - message.signatureOne = SignatureAndData.decode(reader, reader.uint32()); - break; - - case 4: - message.signatureTwo = SignatureAndData.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Misbehaviour { - const message = createBaseMisbehaviour(); - message.clientId = object.clientId ?? ""; - message.sequence = object.sequence !== undefined && object.sequence !== null ? Long.fromValue(object.sequence) : Long.UZERO; - message.signatureOne = object.signatureOne !== undefined && object.signatureOne !== null ? SignatureAndData.fromPartial(object.signatureOne) : undefined; - message.signatureTwo = object.signatureTwo !== undefined && object.signatureTwo !== null ? SignatureAndData.fromPartial(object.signatureTwo) : undefined; - return message; - } - -}; - -function createBaseSignatureAndData(): SignatureAndData { - return { - signature: new Uint8Array(), - dataType: 0, - data: new Uint8Array(), - timestamp: Long.UZERO - }; -} - -export const SignatureAndData = { - encode(message: SignatureAndData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.signature.length !== 0) { - writer.uint32(10).bytes(message.signature); - } - - if (message.dataType !== 0) { - writer.uint32(16).int32(message.dataType); - } - - if (message.data.length !== 0) { - writer.uint32(26).bytes(message.data); - } - - if (!message.timestamp.isZero()) { - writer.uint32(32).uint64(message.timestamp); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SignatureAndData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSignatureAndData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.signature = reader.bytes(); - break; - - case 2: - message.dataType = (reader.int32() as any); - break; - - case 3: - message.data = reader.bytes(); - break; - - case 4: - message.timestamp = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SignatureAndData { - const message = createBaseSignatureAndData(); - message.signature = object.signature ?? new Uint8Array(); - message.dataType = object.dataType ?? 0; - message.data = object.data ?? new Uint8Array(); - message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? Long.fromValue(object.timestamp) : Long.UZERO; - return message; - } - -}; - -function createBaseTimestampedSignatureData(): TimestampedSignatureData { - return { - signatureData: new Uint8Array(), - timestamp: Long.UZERO - }; -} - -export const TimestampedSignatureData = { - encode(message: TimestampedSignatureData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.signatureData.length !== 0) { - writer.uint32(10).bytes(message.signatureData); - } - - if (!message.timestamp.isZero()) { - writer.uint32(16).uint64(message.timestamp); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): TimestampedSignatureData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTimestampedSignatureData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.signatureData = reader.bytes(); - break; - - case 2: - message.timestamp = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): TimestampedSignatureData { - const message = createBaseTimestampedSignatureData(); - message.signatureData = object.signatureData ?? new Uint8Array(); - message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? Long.fromValue(object.timestamp) : Long.UZERO; - return message; - } - -}; - -function createBaseSignBytes(): SignBytes { - return { - sequence: Long.UZERO, - timestamp: Long.UZERO, - diversifier: "", - dataType: 0, - data: new Uint8Array() - }; -} - -export const SignBytes = { - encode(message: SignBytes, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.sequence.isZero()) { - writer.uint32(8).uint64(message.sequence); - } - - if (!message.timestamp.isZero()) { - writer.uint32(16).uint64(message.timestamp); - } - - if (message.diversifier !== "") { - writer.uint32(26).string(message.diversifier); - } - - if (message.dataType !== 0) { - writer.uint32(32).int32(message.dataType); - } - - if (message.data.length !== 0) { - writer.uint32(42).bytes(message.data); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SignBytes { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSignBytes(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.sequence = (reader.uint64() as Long); - break; - - case 2: - message.timestamp = (reader.uint64() as Long); - break; - - case 3: - message.diversifier = reader.string(); - break; - - case 4: - message.dataType = (reader.int32() as any); - break; - - case 5: - message.data = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SignBytes { - const message = createBaseSignBytes(); - message.sequence = object.sequence !== undefined && object.sequence !== null ? Long.fromValue(object.sequence) : Long.UZERO; - message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? Long.fromValue(object.timestamp) : Long.UZERO; - message.diversifier = object.diversifier ?? ""; - message.dataType = object.dataType ?? 0; - message.data = object.data ?? new Uint8Array(); - return message; - } - -}; - -function createBaseHeaderData(): HeaderData { - return { - newPubKey: undefined, - newDiversifier: "" - }; -} - -export const HeaderData = { - encode(message: HeaderData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.newPubKey !== undefined) { - Any.encode(message.newPubKey, writer.uint32(10).fork()).ldelim(); - } - - if (message.newDiversifier !== "") { - writer.uint32(18).string(message.newDiversifier); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): HeaderData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseHeaderData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.newPubKey = Any.decode(reader, reader.uint32()); - break; - - case 2: - message.newDiversifier = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): HeaderData { - const message = createBaseHeaderData(); - message.newPubKey = object.newPubKey !== undefined && object.newPubKey !== null ? Any.fromPartial(object.newPubKey) : undefined; - message.newDiversifier = object.newDiversifier ?? ""; - return message; - } - -}; - -function createBaseClientStateData(): ClientStateData { - return { - path: new Uint8Array(), - clientState: undefined - }; -} - -export const ClientStateData = { - encode(message: ClientStateData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.path.length !== 0) { - writer.uint32(10).bytes(message.path); - } - - if (message.clientState !== undefined) { - Any.encode(message.clientState, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ClientStateData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseClientStateData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.path = reader.bytes(); - break; - - case 2: - message.clientState = Any.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ClientStateData { - const message = createBaseClientStateData(); - message.path = object.path ?? new Uint8Array(); - message.clientState = object.clientState !== undefined && object.clientState !== null ? Any.fromPartial(object.clientState) : undefined; - return message; - } - -}; - -function createBaseConsensusStateData(): ConsensusStateData { - return { - path: new Uint8Array(), - consensusState: undefined - }; -} - -export const ConsensusStateData = { - encode(message: ConsensusStateData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.path.length !== 0) { - writer.uint32(10).bytes(message.path); - } - - if (message.consensusState !== undefined) { - Any.encode(message.consensusState, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ConsensusStateData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseConsensusStateData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.path = reader.bytes(); - break; - - case 2: - message.consensusState = Any.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ConsensusStateData { - const message = createBaseConsensusStateData(); - message.path = object.path ?? new Uint8Array(); - message.consensusState = object.consensusState !== undefined && object.consensusState !== null ? Any.fromPartial(object.consensusState) : undefined; - return message; - } - -}; - -function createBaseConnectionStateData(): ConnectionStateData { - return { - path: new Uint8Array(), - connection: undefined - }; -} - -export const ConnectionStateData = { - encode(message: ConnectionStateData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.path.length !== 0) { - writer.uint32(10).bytes(message.path); - } - - if (message.connection !== undefined) { - ConnectionEnd.encode(message.connection, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ConnectionStateData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseConnectionStateData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.path = reader.bytes(); - break; - - case 2: - message.connection = ConnectionEnd.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ConnectionStateData { - const message = createBaseConnectionStateData(); - message.path = object.path ?? new Uint8Array(); - message.connection = object.connection !== undefined && object.connection !== null ? ConnectionEnd.fromPartial(object.connection) : undefined; - return message; - } - -}; - -function createBaseChannelStateData(): ChannelStateData { - return { - path: new Uint8Array(), - channel: undefined - }; -} - -export const ChannelStateData = { - encode(message: ChannelStateData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.path.length !== 0) { - writer.uint32(10).bytes(message.path); - } - - if (message.channel !== undefined) { - Channel.encode(message.channel, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ChannelStateData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseChannelStateData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.path = reader.bytes(); - break; - - case 2: - message.channel = Channel.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ChannelStateData { - const message = createBaseChannelStateData(); - message.path = object.path ?? new Uint8Array(); - message.channel = object.channel !== undefined && object.channel !== null ? Channel.fromPartial(object.channel) : undefined; - return message; - } - -}; - -function createBasePacketCommitmentData(): PacketCommitmentData { - return { - path: new Uint8Array(), - commitment: new Uint8Array() - }; -} - -export const PacketCommitmentData = { - encode(message: PacketCommitmentData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.path.length !== 0) { - writer.uint32(10).bytes(message.path); - } - - if (message.commitment.length !== 0) { - writer.uint32(18).bytes(message.commitment); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PacketCommitmentData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePacketCommitmentData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.path = reader.bytes(); - break; - - case 2: - message.commitment = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PacketCommitmentData { - const message = createBasePacketCommitmentData(); - message.path = object.path ?? new Uint8Array(); - message.commitment = object.commitment ?? new Uint8Array(); - return message; - } - -}; - -function createBasePacketAcknowledgementData(): PacketAcknowledgementData { - return { - path: new Uint8Array(), - acknowledgement: new Uint8Array() - }; -} - -export const PacketAcknowledgementData = { - encode(message: PacketAcknowledgementData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.path.length !== 0) { - writer.uint32(10).bytes(message.path); - } - - if (message.acknowledgement.length !== 0) { - writer.uint32(18).bytes(message.acknowledgement); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PacketAcknowledgementData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePacketAcknowledgementData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.path = reader.bytes(); - break; - - case 2: - message.acknowledgement = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PacketAcknowledgementData { - const message = createBasePacketAcknowledgementData(); - message.path = object.path ?? new Uint8Array(); - message.acknowledgement = object.acknowledgement ?? new Uint8Array(); - return message; - } - -}; - -function createBasePacketReceiptAbsenceData(): PacketReceiptAbsenceData { - return { - path: new Uint8Array() - }; -} - -export const PacketReceiptAbsenceData = { - encode(message: PacketReceiptAbsenceData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.path.length !== 0) { - writer.uint32(10).bytes(message.path); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PacketReceiptAbsenceData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePacketReceiptAbsenceData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.path = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PacketReceiptAbsenceData { - const message = createBasePacketReceiptAbsenceData(); - message.path = object.path ?? new Uint8Array(); - return message; - } - -}; - -function createBaseNextSequenceRecvData(): NextSequenceRecvData { - return { - path: new Uint8Array(), - nextSeqRecv: Long.UZERO - }; -} - -export const NextSequenceRecvData = { - encode(message: NextSequenceRecvData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.path.length !== 0) { - writer.uint32(10).bytes(message.path); - } - - if (!message.nextSeqRecv.isZero()) { - writer.uint32(16).uint64(message.nextSeqRecv); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): NextSequenceRecvData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseNextSequenceRecvData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.path = reader.bytes(); - break; - - case 2: - message.nextSeqRecv = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): NextSequenceRecvData { - const message = createBaseNextSequenceRecvData(); - message.path = object.path ?? new Uint8Array(); - message.nextSeqRecv = object.nextSeqRecv !== undefined && object.nextSeqRecv !== null ? Long.fromValue(object.nextSeqRecv) : Long.UZERO; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/lightclients/tendermint/v1/tendermint.ts b/packages/codegen/src/ibc/lightclients/tendermint/v1/tendermint.ts deleted file mode 100644 index 28e6c0f7..00000000 --- a/packages/codegen/src/ibc/lightclients/tendermint/v1/tendermint.ts +++ /dev/null @@ -1,585 +0,0 @@ -import { Duration, DurationSDKType } from "../../../../google/protobuf/duration"; -import { Height, HeightSDKType } from "../../../core/client/v1/client"; -import { ProofSpec, ProofSpecSDKType } from "../../../../confio/proofs"; -import { Timestamp } from "../../../../google/protobuf/timestamp"; -import { MerkleRoot, MerkleRootSDKType } from "../../../core/commitment/v1/commitment"; -import { SignedHeader, SignedHeaderSDKType } from "../../../../tendermint/types/types"; -import { ValidatorSet, ValidatorSetSDKType } from "../../../../tendermint/types/validator"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, toTimestamp, fromTimestamp, Long } from "../../../../helpers"; -/** - * ClientState from Tendermint tracks the current validator set, latest height, - * and a possible frozen height. - */ - -export interface ClientState { - chainId: string; - trustLevel?: Fraction; - /** - * duration of the period since the LastestTimestamp during which the - * submitted headers are valid for upgrade - */ - - trustingPeriod?: Duration; - /** duration of the staking unbonding period */ - - unbondingPeriod?: Duration; - /** defines how much new (untrusted) header's Time can drift into the future. */ - - maxClockDrift?: Duration; - /** Block height when the client was frozen due to a misbehaviour */ - - frozenHeight?: Height; - /** Latest height the client was updated to */ - - latestHeight?: Height; - /** Proof specifications used in verifying counterparty state */ - - proofSpecs: ProofSpec[]; - /** - * 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"}` - */ - - upgradePath: string[]; - /** - * This flag, when set to true, will allow governance to recover a client - * which has expired - */ - - allowUpdateAfterExpiry: boolean; - /** - * This flag, when set to true, will allow governance to unfreeze a client - * whose chain has experienced a misbehaviour event - */ - - allowUpdateAfterMisbehaviour: boolean; -} -/** - * ClientState from Tendermint tracks the current validator set, latest height, - * and a possible frozen height. - */ - -export interface ClientStateSDKType { - chain_id: string; - trust_level?: FractionSDKType; - trusting_period?: DurationSDKType; - unbonding_period?: DurationSDKType; - max_clock_drift?: DurationSDKType; - frozen_height?: HeightSDKType; - latest_height?: HeightSDKType; - proof_specs: ProofSpecSDKType[]; - upgrade_path: string[]; - allow_update_after_expiry: boolean; - allow_update_after_misbehaviour: boolean; -} -/** ConsensusState defines the consensus state from Tendermint. */ - -export interface ConsensusState { - /** - * timestamp that corresponds to the block height in which the ConsensusState - * was stored. - */ - timestamp?: Date; - /** commitment root (i.e app hash) */ - - root?: MerkleRoot; - nextValidatorsHash: Uint8Array; -} -/** ConsensusState defines the consensus state from Tendermint. */ - -export interface ConsensusStateSDKType { - timestamp?: Date; - root?: MerkleRootSDKType; - next_validators_hash: Uint8Array; -} -/** - * Misbehaviour is a wrapper over two conflicting Headers - * that implements Misbehaviour interface expected by ICS-02 - */ - -export interface Misbehaviour { - clientId: string; - header1?: Header; - header2?: Header; -} -/** - * Misbehaviour is a wrapper over two conflicting Headers - * that implements Misbehaviour interface expected by ICS-02 - */ - -export interface MisbehaviourSDKType { - client_id: string; - header_1?: HeaderSDKType; - header_2?: HeaderSDKType; -} -/** - * 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. - */ - -export interface Header { - signedHeader?: SignedHeader; - validatorSet?: ValidatorSet; - trustedHeight?: Height; - trustedValidators?: ValidatorSet; -} -/** - * 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. - */ - -export interface HeaderSDKType { - signed_header?: SignedHeaderSDKType; - validator_set?: ValidatorSetSDKType; - trusted_height?: HeightSDKType; - trusted_validators?: ValidatorSetSDKType; -} -/** - * Fraction defines the protobuf message type for tmmath.Fraction that only - * supports positive values. - */ - -export interface Fraction { - numerator: Long; - denominator: Long; -} -/** - * Fraction defines the protobuf message type for tmmath.Fraction that only - * supports positive values. - */ - -export interface FractionSDKType { - numerator: Long; - denominator: Long; -} - -function createBaseClientState(): ClientState { - return { - chainId: "", - trustLevel: undefined, - trustingPeriod: undefined, - unbondingPeriod: undefined, - maxClockDrift: undefined, - frozenHeight: undefined, - latestHeight: undefined, - proofSpecs: [], - upgradePath: [], - allowUpdateAfterExpiry: false, - allowUpdateAfterMisbehaviour: false - }; -} - -export const ClientState = { - encode(message: ClientState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.chainId !== "") { - writer.uint32(10).string(message.chainId); - } - - if (message.trustLevel !== undefined) { - Fraction.encode(message.trustLevel, writer.uint32(18).fork()).ldelim(); - } - - if (message.trustingPeriod !== undefined) { - Duration.encode(message.trustingPeriod, writer.uint32(26).fork()).ldelim(); - } - - if (message.unbondingPeriod !== undefined) { - Duration.encode(message.unbondingPeriod, writer.uint32(34).fork()).ldelim(); - } - - if (message.maxClockDrift !== undefined) { - Duration.encode(message.maxClockDrift, writer.uint32(42).fork()).ldelim(); - } - - if (message.frozenHeight !== undefined) { - Height.encode(message.frozenHeight, writer.uint32(50).fork()).ldelim(); - } - - if (message.latestHeight !== undefined) { - Height.encode(message.latestHeight, writer.uint32(58).fork()).ldelim(); - } - - for (const v of message.proofSpecs) { - ProofSpec.encode(v!, writer.uint32(66).fork()).ldelim(); - } - - for (const v of message.upgradePath) { - writer.uint32(74).string(v!); - } - - if (message.allowUpdateAfterExpiry === true) { - writer.uint32(80).bool(message.allowUpdateAfterExpiry); - } - - if (message.allowUpdateAfterMisbehaviour === true) { - writer.uint32(88).bool(message.allowUpdateAfterMisbehaviour); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ClientState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseClientState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.chainId = reader.string(); - break; - - case 2: - message.trustLevel = Fraction.decode(reader, reader.uint32()); - break; - - case 3: - message.trustingPeriod = Duration.decode(reader, reader.uint32()); - break; - - case 4: - message.unbondingPeriod = Duration.decode(reader, reader.uint32()); - break; - - case 5: - message.maxClockDrift = Duration.decode(reader, reader.uint32()); - break; - - case 6: - message.frozenHeight = Height.decode(reader, reader.uint32()); - break; - - case 7: - message.latestHeight = Height.decode(reader, reader.uint32()); - break; - - case 8: - message.proofSpecs.push(ProofSpec.decode(reader, reader.uint32())); - break; - - case 9: - message.upgradePath.push(reader.string()); - break; - - case 10: - message.allowUpdateAfterExpiry = reader.bool(); - break; - - case 11: - message.allowUpdateAfterMisbehaviour = reader.bool(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ClientState { - const message = createBaseClientState(); - message.chainId = object.chainId ?? ""; - message.trustLevel = object.trustLevel !== undefined && object.trustLevel !== null ? Fraction.fromPartial(object.trustLevel) : undefined; - message.trustingPeriod = object.trustingPeriod !== undefined && object.trustingPeriod !== null ? Duration.fromPartial(object.trustingPeriod) : undefined; - message.unbondingPeriod = object.unbondingPeriod !== undefined && object.unbondingPeriod !== null ? Duration.fromPartial(object.unbondingPeriod) : undefined; - message.maxClockDrift = object.maxClockDrift !== undefined && object.maxClockDrift !== null ? Duration.fromPartial(object.maxClockDrift) : undefined; - message.frozenHeight = object.frozenHeight !== undefined && object.frozenHeight !== null ? Height.fromPartial(object.frozenHeight) : undefined; - message.latestHeight = object.latestHeight !== undefined && object.latestHeight !== null ? Height.fromPartial(object.latestHeight) : undefined; - message.proofSpecs = object.proofSpecs?.map(e => ProofSpec.fromPartial(e)) || []; - message.upgradePath = object.upgradePath?.map(e => e) || []; - message.allowUpdateAfterExpiry = object.allowUpdateAfterExpiry ?? false; - message.allowUpdateAfterMisbehaviour = object.allowUpdateAfterMisbehaviour ?? false; - return message; - } - -}; - -function createBaseConsensusState(): ConsensusState { - return { - timestamp: undefined, - root: undefined, - nextValidatorsHash: new Uint8Array() - }; -} - -export const ConsensusState = { - encode(message: ConsensusState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.timestamp !== undefined) { - Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(10).fork()).ldelim(); - } - - if (message.root !== undefined) { - MerkleRoot.encode(message.root, writer.uint32(18).fork()).ldelim(); - } - - if (message.nextValidatorsHash.length !== 0) { - writer.uint32(26).bytes(message.nextValidatorsHash); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ConsensusState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseConsensusState(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - case 2: - message.root = MerkleRoot.decode(reader, reader.uint32()); - break; - - case 3: - message.nextValidatorsHash = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ConsensusState { - const message = createBaseConsensusState(); - message.timestamp = object.timestamp ?? undefined; - message.root = object.root !== undefined && object.root !== null ? MerkleRoot.fromPartial(object.root) : undefined; - message.nextValidatorsHash = object.nextValidatorsHash ?? new Uint8Array(); - return message; - } - -}; - -function createBaseMisbehaviour(): Misbehaviour { - return { - clientId: "", - header1: undefined, - header2: undefined - }; -} - -export const Misbehaviour = { - encode(message: Misbehaviour, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.clientId !== "") { - writer.uint32(10).string(message.clientId); - } - - if (message.header1 !== undefined) { - Header.encode(message.header1, writer.uint32(18).fork()).ldelim(); - } - - if (message.header2 !== undefined) { - Header.encode(message.header2, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Misbehaviour { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMisbehaviour(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.clientId = reader.string(); - break; - - case 2: - message.header1 = Header.decode(reader, reader.uint32()); - break; - - case 3: - message.header2 = Header.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Misbehaviour { - const message = createBaseMisbehaviour(); - message.clientId = object.clientId ?? ""; - message.header1 = object.header1 !== undefined && object.header1 !== null ? Header.fromPartial(object.header1) : undefined; - message.header2 = object.header2 !== undefined && object.header2 !== null ? Header.fromPartial(object.header2) : undefined; - return message; - } - -}; - -function createBaseHeader(): Header { - return { - signedHeader: undefined, - validatorSet: undefined, - trustedHeight: undefined, - trustedValidators: undefined - }; -} - -export const Header = { - encode(message: Header, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.signedHeader !== undefined) { - SignedHeader.encode(message.signedHeader, writer.uint32(10).fork()).ldelim(); - } - - if (message.validatorSet !== undefined) { - ValidatorSet.encode(message.validatorSet, writer.uint32(18).fork()).ldelim(); - } - - if (message.trustedHeight !== undefined) { - Height.encode(message.trustedHeight, writer.uint32(26).fork()).ldelim(); - } - - if (message.trustedValidators !== undefined) { - ValidatorSet.encode(message.trustedValidators, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Header { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseHeader(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.signedHeader = SignedHeader.decode(reader, reader.uint32()); - break; - - case 2: - message.validatorSet = ValidatorSet.decode(reader, reader.uint32()); - break; - - case 3: - message.trustedHeight = Height.decode(reader, reader.uint32()); - break; - - case 4: - message.trustedValidators = ValidatorSet.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial
): Header { - const message = createBaseHeader(); - message.signedHeader = object.signedHeader !== undefined && object.signedHeader !== null ? SignedHeader.fromPartial(object.signedHeader) : undefined; - message.validatorSet = object.validatorSet !== undefined && object.validatorSet !== null ? ValidatorSet.fromPartial(object.validatorSet) : undefined; - message.trustedHeight = object.trustedHeight !== undefined && object.trustedHeight !== null ? Height.fromPartial(object.trustedHeight) : undefined; - message.trustedValidators = object.trustedValidators !== undefined && object.trustedValidators !== null ? ValidatorSet.fromPartial(object.trustedValidators) : undefined; - return message; - } - -}; - -function createBaseFraction(): Fraction { - return { - numerator: Long.UZERO, - denominator: Long.UZERO - }; -} - -export const Fraction = { - encode(message: Fraction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.numerator.isZero()) { - writer.uint32(8).uint64(message.numerator); - } - - if (!message.denominator.isZero()) { - writer.uint32(16).uint64(message.denominator); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Fraction { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseFraction(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.numerator = (reader.uint64() as Long); - break; - - case 2: - message.denominator = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Fraction { - const message = createBaseFraction(); - message.numerator = object.numerator !== undefined && object.numerator !== null ? Long.fromValue(object.numerator) : Long.UZERO; - message.denominator = object.denominator !== undefined && object.denominator !== null ? Long.fromValue(object.denominator) : Long.UZERO; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/rpc.query.ts b/packages/codegen/src/ibc/rpc.query.ts deleted file mode 100644 index 0d0dbcd9..00000000 --- a/packages/codegen/src/ibc/rpc.query.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { Tendermint34Client, HttpEndpoint } from "@cosmjs/tendermint-rpc"; -import { QueryClient } from "@cosmjs/stargate"; -export const createRPCQueryClient = async ({ - rpcEndpoint -}: { - rpcEndpoint: string | HttpEndpoint; -}) => { - const tmClient = await Tendermint34Client.connect(rpcEndpoint); - const client = new QueryClient(tmClient); - return { - cosmos: { - app: { - v1alpha1: (await import("../cosmos/app/v1alpha1/query.rpc.Query")).createRpcQueryExtension(client) - }, - auth: { - v1beta1: (await import("../cosmos/auth/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - authz: { - v1beta1: (await import("../cosmos/authz/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - bank: { - v1beta1: (await import("../cosmos/bank/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - base: { - tendermint: { - v1beta1: (await import("../cosmos/base/tendermint/v1beta1/query.rpc.Service")).createRpcQueryExtension(client) - } - }, - distribution: { - v1beta1: (await import("../cosmos/distribution/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - evidence: { - v1beta1: (await import("../cosmos/evidence/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - feegrant: { - v1beta1: (await import("../cosmos/feegrant/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - gov: { - v1: (await import("../cosmos/gov/v1/query.rpc.Query")).createRpcQueryExtension(client), - v1beta1: (await import("../cosmos/gov/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - group: { - v1: (await import("../cosmos/group/v1/query.rpc.Query")).createRpcQueryExtension(client) - }, - mint: { - v1beta1: (await import("../cosmos/mint/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - nft: { - v1beta1: (await import("../cosmos/nft/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - params: { - v1beta1: (await import("../cosmos/params/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - slashing: { - v1beta1: (await import("../cosmos/slashing/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - staking: { - v1beta1: (await import("../cosmos/staking/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - }, - tx: { - v1beta1: (await import("../cosmos/tx/v1beta1/service.rpc.Service")).createRpcQueryExtension(client) - }, - upgrade: { - v1beta1: (await import("../cosmos/upgrade/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) - } - }, - ibc: { - applications: { - transfer: { - v1: (await import("./applications/transfer/v1/query.rpc.Query")).createRpcQueryExtension(client) - } - }, - core: { - channel: { - v1: (await import("./core/channel/v1/query.rpc.Query")).createRpcQueryExtension(client) - }, - client: { - v1: (await import("./core/client/v1/query.rpc.Query")).createRpcQueryExtension(client) - }, - connection: { - v1: (await import("./core/connection/v1/query.rpc.Query")).createRpcQueryExtension(client) - }, - port: { - v1: (await import("./core/port/v1/query.rpc.Query")).createRpcQueryExtension(client) - } - } - } - }; -}; \ No newline at end of file diff --git a/packages/codegen/src/ibc/rpc.tx.ts b/packages/codegen/src/ibc/rpc.tx.ts deleted file mode 100644 index 62cb610c..00000000 --- a/packages/codegen/src/ibc/rpc.tx.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { Rpc } from "../helpers"; -export const createRPCMsgClient = async ({ - rpc -}: { - rpc: Rpc; -}) => ({ - cosmos: { - authz: { - v1beta1: new (await import("../cosmos/authz/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - bank: { - v1beta1: new (await import("../cosmos/bank/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - crisis: { - v1beta1: new (await import("../cosmos/crisis/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - distribution: { - v1beta1: new (await import("../cosmos/distribution/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - evidence: { - v1beta1: new (await import("../cosmos/evidence/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - feegrant: { - v1beta1: new (await import("../cosmos/feegrant/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - gov: { - v1: new (await import("../cosmos/gov/v1/tx.rpc.msg")).MsgClientImpl(rpc), - v1beta1: new (await import("../cosmos/gov/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - group: { - v1: new (await import("../cosmos/group/v1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - nft: { - v1beta1: new (await import("../cosmos/nft/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - slashing: { - v1beta1: new (await import("../cosmos/slashing/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - staking: { - v1beta1: new (await import("../cosmos/staking/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - upgrade: { - v1beta1: new (await import("../cosmos/upgrade/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - vesting: { - v1beta1: new (await import("../cosmos/vesting/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) - } - }, - ibc: { - applications: { - transfer: { - v1: new (await import("./applications/transfer/v1/tx.rpc.msg")).MsgClientImpl(rpc) - } - }, - core: { - channel: { - v1: new (await import("./core/channel/v1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - client: { - v1: new (await import("./core/client/v1/tx.rpc.msg")).MsgClientImpl(rpc) - }, - connection: { - v1: new (await import("./core/connection/v1/tx.rpc.msg")).MsgClientImpl(rpc) - } - } - } -}); \ No newline at end of file diff --git a/packages/codegen/src/ics23/bundle.ts b/packages/codegen/src/ics23/bundle.ts deleted file mode 100644 index 0a8f5bd2..00000000 --- a/packages/codegen/src/ics23/bundle.ts +++ /dev/null @@ -1,3 +0,0 @@ -import * as _1 from "../confio/proofs"; -export const ics23 = { ..._1 -}; \ No newline at end of file diff --git a/packages/codegen/src/index.ts b/packages/codegen/src/index.ts deleted file mode 100644 index 30d7b52e..00000000 --- a/packages/codegen/src/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * This file and any referenced files were automatically generated by @osmonauts/telescope@0.88.2 - * DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain - * and run the transpile command or yarn proto command to regenerate this bundle. - */ - -export * from "./amino/bundle"; -export * from "./ics23/bundle"; -export * from "./cosmos_proto/bundle"; -export * from "./cosmos/bundle"; -export * from "./cosmwasm/bundle"; -export * from "./gogoproto/bundle"; -export * from "./google/bundle"; -export * from "./ibc/bundle"; -export * from "./tendermint/bundle"; \ No newline at end of file diff --git a/packages/codegen/src/tendermint/abci/types.ts b/packages/codegen/src/tendermint/abci/types.ts deleted file mode 100644 index 2bc18c1a..00000000 --- a/packages/codegen/src/tendermint/abci/types.ts +++ /dev/null @@ -1,3846 +0,0 @@ -import { Timestamp } from "../../google/protobuf/timestamp"; -import { Header, HeaderSDKType } from "../types/types"; -import { ProofOps, ProofOpsSDKType } from "../crypto/proof"; -import { EvidenceParams, EvidenceParamsSDKType, ValidatorParams, ValidatorParamsSDKType, VersionParams, VersionParamsSDKType } from "../types/params"; -import { PublicKey, PublicKeySDKType } from "../crypto/keys"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long, toTimestamp, fromTimestamp } from "../../helpers"; -export enum CheckTxType { - NEW = 0, - RECHECK = 1, - UNRECOGNIZED = -1, -} -export const CheckTxTypeSDKType = CheckTxType; -export function checkTxTypeFromJSON(object: any): CheckTxType { - switch (object) { - case 0: - case "NEW": - return CheckTxType.NEW; - - case 1: - case "RECHECK": - return CheckTxType.RECHECK; - - case -1: - case "UNRECOGNIZED": - default: - return CheckTxType.UNRECOGNIZED; - } -} -export function checkTxTypeToJSON(object: CheckTxType): string { - switch (object) { - case CheckTxType.NEW: - return "NEW"; - - case CheckTxType.RECHECK: - return "RECHECK"; - - case CheckTxType.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -export enum ResponseOfferSnapshot_Result { - /** UNKNOWN - Unknown result, abort all snapshot restoration */ - UNKNOWN = 0, - - /** ACCEPT - Snapshot accepted, apply chunks */ - ACCEPT = 1, - - /** ABORT - Abort all snapshot restoration */ - ABORT = 2, - - /** REJECT - Reject this specific snapshot, try others */ - REJECT = 3, - - /** REJECT_FORMAT - Reject all snapshots of this format, try others */ - REJECT_FORMAT = 4, - - /** REJECT_SENDER - Reject all snapshots from the sender(s), try others */ - REJECT_SENDER = 5, - UNRECOGNIZED = -1, -} -export const ResponseOfferSnapshot_ResultSDKType = ResponseOfferSnapshot_Result; -export function responseOfferSnapshot_ResultFromJSON(object: any): ResponseOfferSnapshot_Result { - switch (object) { - case 0: - case "UNKNOWN": - return ResponseOfferSnapshot_Result.UNKNOWN; - - case 1: - case "ACCEPT": - return ResponseOfferSnapshot_Result.ACCEPT; - - case 2: - case "ABORT": - return ResponseOfferSnapshot_Result.ABORT; - - case 3: - case "REJECT": - return ResponseOfferSnapshot_Result.REJECT; - - case 4: - case "REJECT_FORMAT": - return ResponseOfferSnapshot_Result.REJECT_FORMAT; - - case 5: - case "REJECT_SENDER": - return ResponseOfferSnapshot_Result.REJECT_SENDER; - - case -1: - case "UNRECOGNIZED": - default: - return ResponseOfferSnapshot_Result.UNRECOGNIZED; - } -} -export function responseOfferSnapshot_ResultToJSON(object: ResponseOfferSnapshot_Result): string { - switch (object) { - case ResponseOfferSnapshot_Result.UNKNOWN: - return "UNKNOWN"; - - case ResponseOfferSnapshot_Result.ACCEPT: - return "ACCEPT"; - - case ResponseOfferSnapshot_Result.ABORT: - return "ABORT"; - - case ResponseOfferSnapshot_Result.REJECT: - return "REJECT"; - - case ResponseOfferSnapshot_Result.REJECT_FORMAT: - return "REJECT_FORMAT"; - - case ResponseOfferSnapshot_Result.REJECT_SENDER: - return "REJECT_SENDER"; - - case ResponseOfferSnapshot_Result.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -export enum ResponseApplySnapshotChunk_Result { - /** UNKNOWN - Unknown result, abort all snapshot restoration */ - UNKNOWN = 0, - - /** ACCEPT - Chunk successfully accepted */ - ACCEPT = 1, - - /** ABORT - Abort all snapshot restoration */ - ABORT = 2, - - /** RETRY - Retry chunk (combine with refetch and reject) */ - RETRY = 3, - - /** RETRY_SNAPSHOT - Retry snapshot (combine with refetch and reject) */ - RETRY_SNAPSHOT = 4, - - /** REJECT_SNAPSHOT - Reject this snapshot, try others */ - REJECT_SNAPSHOT = 5, - UNRECOGNIZED = -1, -} -export const ResponseApplySnapshotChunk_ResultSDKType = ResponseApplySnapshotChunk_Result; -export function responseApplySnapshotChunk_ResultFromJSON(object: any): ResponseApplySnapshotChunk_Result { - switch (object) { - case 0: - case "UNKNOWN": - return ResponseApplySnapshotChunk_Result.UNKNOWN; - - case 1: - case "ACCEPT": - return ResponseApplySnapshotChunk_Result.ACCEPT; - - case 2: - case "ABORT": - return ResponseApplySnapshotChunk_Result.ABORT; - - case 3: - case "RETRY": - return ResponseApplySnapshotChunk_Result.RETRY; - - case 4: - case "RETRY_SNAPSHOT": - return ResponseApplySnapshotChunk_Result.RETRY_SNAPSHOT; - - case 5: - case "REJECT_SNAPSHOT": - return ResponseApplySnapshotChunk_Result.REJECT_SNAPSHOT; - - case -1: - case "UNRECOGNIZED": - default: - return ResponseApplySnapshotChunk_Result.UNRECOGNIZED; - } -} -export function responseApplySnapshotChunk_ResultToJSON(object: ResponseApplySnapshotChunk_Result): string { - switch (object) { - case ResponseApplySnapshotChunk_Result.UNKNOWN: - return "UNKNOWN"; - - case ResponseApplySnapshotChunk_Result.ACCEPT: - return "ACCEPT"; - - case ResponseApplySnapshotChunk_Result.ABORT: - return "ABORT"; - - case ResponseApplySnapshotChunk_Result.RETRY: - return "RETRY"; - - case ResponseApplySnapshotChunk_Result.RETRY_SNAPSHOT: - return "RETRY_SNAPSHOT"; - - case ResponseApplySnapshotChunk_Result.REJECT_SNAPSHOT: - return "REJECT_SNAPSHOT"; - - case ResponseApplySnapshotChunk_Result.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -export enum EvidenceType { - UNKNOWN = 0, - DUPLICATE_VOTE = 1, - LIGHT_CLIENT_ATTACK = 2, - UNRECOGNIZED = -1, -} -export const EvidenceTypeSDKType = EvidenceType; -export function evidenceTypeFromJSON(object: any): EvidenceType { - switch (object) { - case 0: - case "UNKNOWN": - return EvidenceType.UNKNOWN; - - case 1: - case "DUPLICATE_VOTE": - return EvidenceType.DUPLICATE_VOTE; - - case 2: - case "LIGHT_CLIENT_ATTACK": - return EvidenceType.LIGHT_CLIENT_ATTACK; - - case -1: - case "UNRECOGNIZED": - default: - return EvidenceType.UNRECOGNIZED; - } -} -export function evidenceTypeToJSON(object: EvidenceType): string { - switch (object) { - case EvidenceType.UNKNOWN: - return "UNKNOWN"; - - case EvidenceType.DUPLICATE_VOTE: - return "DUPLICATE_VOTE"; - - case EvidenceType.LIGHT_CLIENT_ATTACK: - return "LIGHT_CLIENT_ATTACK"; - - case EvidenceType.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -export interface Request { - echo?: RequestEcho; - flush?: RequestFlush; - info?: RequestInfo; - setOption?: RequestSetOption; - initChain?: RequestInitChain; - query?: RequestQuery; - beginBlock?: RequestBeginBlock; - checkTx?: RequestCheckTx; - deliverTx?: RequestDeliverTx; - endBlock?: RequestEndBlock; - commit?: RequestCommit; - listSnapshots?: RequestListSnapshots; - offerSnapshot?: RequestOfferSnapshot; - loadSnapshotChunk?: RequestLoadSnapshotChunk; - applySnapshotChunk?: RequestApplySnapshotChunk; -} -export interface RequestSDKType { - echo?: RequestEchoSDKType; - flush?: RequestFlushSDKType; - info?: RequestInfoSDKType; - set_option?: RequestSetOptionSDKType; - init_chain?: RequestInitChainSDKType; - query?: RequestQuerySDKType; - begin_block?: RequestBeginBlockSDKType; - check_tx?: RequestCheckTxSDKType; - deliver_tx?: RequestDeliverTxSDKType; - end_block?: RequestEndBlockSDKType; - commit?: RequestCommitSDKType; - list_snapshots?: RequestListSnapshotsSDKType; - offer_snapshot?: RequestOfferSnapshotSDKType; - load_snapshot_chunk?: RequestLoadSnapshotChunkSDKType; - apply_snapshot_chunk?: RequestApplySnapshotChunkSDKType; -} -export interface RequestEcho { - message: string; -} -export interface RequestEchoSDKType { - message: string; -} -export interface RequestFlush {} -export interface RequestFlushSDKType {} -export interface RequestInfo { - version: string; - blockVersion: Long; - p2pVersion: Long; -} -export interface RequestInfoSDKType { - version: string; - block_version: Long; - p2p_version: Long; -} -/** nondeterministic */ - -export interface RequestSetOption { - key: string; - value: string; -} -/** nondeterministic */ - -export interface RequestSetOptionSDKType { - key: string; - value: string; -} -export interface RequestInitChain { - time?: Date; - chainId: string; - consensusParams?: ConsensusParams; - validators: ValidatorUpdate[]; - appStateBytes: Uint8Array; - initialHeight: Long; -} -export interface RequestInitChainSDKType { - time?: Date; - chain_id: string; - consensus_params?: ConsensusParamsSDKType; - validators: ValidatorUpdateSDKType[]; - app_state_bytes: Uint8Array; - initial_height: Long; -} -export interface RequestQuery { - data: Uint8Array; - path: string; - height: Long; - prove: boolean; -} -export interface RequestQuerySDKType { - data: Uint8Array; - path: string; - height: Long; - prove: boolean; -} -export interface RequestBeginBlock { - hash: Uint8Array; - header?: Header; - lastCommitInfo?: LastCommitInfo; - byzantineValidators: Evidence[]; -} -export interface RequestBeginBlockSDKType { - hash: Uint8Array; - header?: HeaderSDKType; - last_commit_info?: LastCommitInfoSDKType; - byzantine_validators: EvidenceSDKType[]; -} -export interface RequestCheckTx { - tx: Uint8Array; - type: CheckTxType; -} -export interface RequestCheckTxSDKType { - tx: Uint8Array; - type: CheckTxType; -} -export interface RequestDeliverTx { - tx: Uint8Array; -} -export interface RequestDeliverTxSDKType { - tx: Uint8Array; -} -export interface RequestEndBlock { - height: Long; -} -export interface RequestEndBlockSDKType { - height: Long; -} -export interface RequestCommit {} -export interface RequestCommitSDKType {} -/** lists available snapshots */ - -export interface RequestListSnapshots {} -/** lists available snapshots */ - -export interface RequestListSnapshotsSDKType {} -/** offers a snapshot to the application */ - -export interface RequestOfferSnapshot { - /** snapshot offered by peers */ - snapshot?: Snapshot; - /** light client-verified app hash for snapshot height */ - - appHash: Uint8Array; -} -/** offers a snapshot to the application */ - -export interface RequestOfferSnapshotSDKType { - snapshot?: SnapshotSDKType; - app_hash: Uint8Array; -} -/** loads a snapshot chunk */ - -export interface RequestLoadSnapshotChunk { - height: Long; - format: number; - chunk: number; -} -/** loads a snapshot chunk */ - -export interface RequestLoadSnapshotChunkSDKType { - height: Long; - format: number; - chunk: number; -} -/** Applies a snapshot chunk */ - -export interface RequestApplySnapshotChunk { - index: number; - chunk: Uint8Array; - sender: string; -} -/** Applies a snapshot chunk */ - -export interface RequestApplySnapshotChunkSDKType { - index: number; - chunk: Uint8Array; - sender: string; -} -export interface Response { - exception?: ResponseException; - echo?: ResponseEcho; - flush?: ResponseFlush; - info?: ResponseInfo; - setOption?: ResponseSetOption; - initChain?: ResponseInitChain; - query?: ResponseQuery; - beginBlock?: ResponseBeginBlock; - checkTx?: ResponseCheckTx; - deliverTx?: ResponseDeliverTx; - endBlock?: ResponseEndBlock; - commit?: ResponseCommit; - listSnapshots?: ResponseListSnapshots; - offerSnapshot?: ResponseOfferSnapshot; - loadSnapshotChunk?: ResponseLoadSnapshotChunk; - applySnapshotChunk?: ResponseApplySnapshotChunk; -} -export interface ResponseSDKType { - exception?: ResponseExceptionSDKType; - echo?: ResponseEchoSDKType; - flush?: ResponseFlushSDKType; - info?: ResponseInfoSDKType; - set_option?: ResponseSetOptionSDKType; - init_chain?: ResponseInitChainSDKType; - query?: ResponseQuerySDKType; - begin_block?: ResponseBeginBlockSDKType; - check_tx?: ResponseCheckTxSDKType; - deliver_tx?: ResponseDeliverTxSDKType; - end_block?: ResponseEndBlockSDKType; - commit?: ResponseCommitSDKType; - list_snapshots?: ResponseListSnapshotsSDKType; - offer_snapshot?: ResponseOfferSnapshotSDKType; - load_snapshot_chunk?: ResponseLoadSnapshotChunkSDKType; - apply_snapshot_chunk?: ResponseApplySnapshotChunkSDKType; -} -/** nondeterministic */ - -export interface ResponseException { - error: string; -} -/** nondeterministic */ - -export interface ResponseExceptionSDKType { - error: string; -} -export interface ResponseEcho { - message: string; -} -export interface ResponseEchoSDKType { - message: string; -} -export interface ResponseFlush {} -export interface ResponseFlushSDKType {} -export interface ResponseInfo { - data: string; - version: string; - appVersion: Long; - lastBlockHeight: Long; - lastBlockAppHash: Uint8Array; -} -export interface ResponseInfoSDKType { - data: string; - version: string; - app_version: Long; - last_block_height: Long; - last_block_app_hash: Uint8Array; -} -/** nondeterministic */ - -export interface ResponseSetOption { - code: number; - /** bytes data = 2; */ - - log: string; - info: string; -} -/** nondeterministic */ - -export interface ResponseSetOptionSDKType { - code: number; - log: string; - info: string; -} -export interface ResponseInitChain { - consensusParams?: ConsensusParams; - validators: ValidatorUpdate[]; - appHash: Uint8Array; -} -export interface ResponseInitChainSDKType { - consensus_params?: ConsensusParamsSDKType; - validators: ValidatorUpdateSDKType[]; - app_hash: Uint8Array; -} -export interface ResponseQuery { - code: number; - /** bytes data = 2; // use "value" instead. */ - - log: string; - /** nondeterministic */ - - info: string; - index: Long; - key: Uint8Array; - value: Uint8Array; - proofOps?: ProofOps; - height: Long; - codespace: string; -} -export interface ResponseQuerySDKType { - code: number; - log: string; - info: string; - index: Long; - key: Uint8Array; - value: Uint8Array; - proof_ops?: ProofOpsSDKType; - height: Long; - codespace: string; -} -export interface ResponseBeginBlock { - events: Event[]; -} -export interface ResponseBeginBlockSDKType { - events: EventSDKType[]; -} -export interface ResponseCheckTx { - code: number; - data: Uint8Array; - /** nondeterministic */ - - log: string; - /** nondeterministic */ - - info: string; - gasWanted: Long; - gasUsed: Long; - events: Event[]; - codespace: string; -} -export interface ResponseCheckTxSDKType { - code: number; - data: Uint8Array; - log: string; - info: string; - gas_wanted: Long; - gas_used: Long; - events: EventSDKType[]; - codespace: string; -} -export interface ResponseDeliverTx { - code: number; - data: Uint8Array; - /** nondeterministic */ - - log: string; - /** nondeterministic */ - - info: string; - gasWanted: Long; - gasUsed: Long; - events: Event[]; - codespace: string; -} -export interface ResponseDeliverTxSDKType { - code: number; - data: Uint8Array; - log: string; - info: string; - gas_wanted: Long; - gas_used: Long; - events: EventSDKType[]; - codespace: string; -} -export interface ResponseEndBlock { - validatorUpdates: ValidatorUpdate[]; - consensusParamUpdates?: ConsensusParams; - events: Event[]; -} -export interface ResponseEndBlockSDKType { - validator_updates: ValidatorUpdateSDKType[]; - consensus_param_updates?: ConsensusParamsSDKType; - events: EventSDKType[]; -} -export interface ResponseCommit { - /** reserve 1 */ - data: Uint8Array; - retainHeight: Long; -} -export interface ResponseCommitSDKType { - data: Uint8Array; - retain_height: Long; -} -export interface ResponseListSnapshots { - snapshots: Snapshot[]; -} -export interface ResponseListSnapshotsSDKType { - snapshots: SnapshotSDKType[]; -} -export interface ResponseOfferSnapshot { - result: ResponseOfferSnapshot_Result; -} -export interface ResponseOfferSnapshotSDKType { - result: ResponseOfferSnapshot_Result; -} -export interface ResponseLoadSnapshotChunk { - chunk: Uint8Array; -} -export interface ResponseLoadSnapshotChunkSDKType { - chunk: Uint8Array; -} -export interface ResponseApplySnapshotChunk { - result: ResponseApplySnapshotChunk_Result; - /** Chunks to refetch and reapply */ - - refetchChunks: number[]; - /** Chunk senders to reject and ban */ - - rejectSenders: string[]; -} -export interface ResponseApplySnapshotChunkSDKType { - result: ResponseApplySnapshotChunk_Result; - refetch_chunks: number[]; - reject_senders: string[]; -} -/** - * ConsensusParams contains all consensus-relevant parameters - * that can be adjusted by the abci app - */ - -export interface ConsensusParams { - block?: BlockParams; - evidence?: EvidenceParams; - validator?: ValidatorParams; - version?: VersionParams; -} -/** - * ConsensusParams contains all consensus-relevant parameters - * that can be adjusted by the abci app - */ - -export interface ConsensusParamsSDKType { - block?: BlockParamsSDKType; - evidence?: EvidenceParamsSDKType; - validator?: ValidatorParamsSDKType; - version?: VersionParamsSDKType; -} -/** BlockParams contains limits on the block size. */ - -export interface BlockParams { - /** Note: must be greater than 0 */ - maxBytes: Long; - /** Note: must be greater or equal to -1 */ - - maxGas: Long; -} -/** BlockParams contains limits on the block size. */ - -export interface BlockParamsSDKType { - max_bytes: Long; - max_gas: Long; -} -export interface LastCommitInfo { - round: number; - votes: VoteInfo[]; -} -export interface LastCommitInfoSDKType { - round: number; - votes: VoteInfoSDKType[]; -} -/** - * Event allows application developers to attach additional information to - * ResponseBeginBlock, ResponseEndBlock, ResponseCheckTx and ResponseDeliverTx. - * Later, transactions may be queried using these events. - */ - -export interface Event { - type: string; - attributes: EventAttribute[]; -} -/** - * Event allows application developers to attach additional information to - * ResponseBeginBlock, ResponseEndBlock, ResponseCheckTx and ResponseDeliverTx. - * Later, transactions may be queried using these events. - */ - -export interface EventSDKType { - type: string; - attributes: EventAttributeSDKType[]; -} -/** EventAttribute is a single key-value pair, associated with an event. */ - -export interface EventAttribute { - key: Uint8Array; - value: Uint8Array; - /** nondeterministic */ - - index: boolean; -} -/** EventAttribute is a single key-value pair, associated with an event. */ - -export interface EventAttributeSDKType { - key: Uint8Array; - value: Uint8Array; - index: boolean; -} -/** - * TxResult contains results of executing the transaction. - * - * One usage is indexing transaction results. - */ - -export interface TxResult { - height: Long; - index: number; - tx: Uint8Array; - result?: ResponseDeliverTx; -} -/** - * TxResult contains results of executing the transaction. - * - * One usage is indexing transaction results. - */ - -export interface TxResultSDKType { - height: Long; - index: number; - tx: Uint8Array; - result?: ResponseDeliverTxSDKType; -} -/** Validator */ - -export interface Validator { - /** - * The first 20 bytes of SHA256(public key) - * PubKey pub_key = 2 [(gogoproto.nullable)=false]; - */ - address: Uint8Array; - /** The voting power */ - - power: Long; -} -/** Validator */ - -export interface ValidatorSDKType { - address: Uint8Array; - power: Long; -} -/** ValidatorUpdate */ - -export interface ValidatorUpdate { - pubKey?: PublicKey; - power: Long; -} -/** ValidatorUpdate */ - -export interface ValidatorUpdateSDKType { - pub_key?: PublicKeySDKType; - power: Long; -} -/** VoteInfo */ - -export interface VoteInfo { - validator?: Validator; - signedLastBlock: boolean; -} -/** VoteInfo */ - -export interface VoteInfoSDKType { - validator?: ValidatorSDKType; - signed_last_block: boolean; -} -export interface Evidence { - type: EvidenceType; - /** The offending validator */ - - validator?: Validator; - /** The height when the offense occurred */ - - height: Long; - /** The corresponding time where the offense occurred */ - - time?: Date; - /** - * Total voting power of the validator set in case the ABCI application does - * not store historical validators. - * https://github.com/tendermint/tendermint/issues/4581 - */ - - totalVotingPower: Long; -} -export interface EvidenceSDKType { - type: EvidenceType; - validator?: ValidatorSDKType; - height: Long; - time?: Date; - total_voting_power: Long; -} -export interface Snapshot { - /** The height at which the snapshot was taken */ - height: Long; - /** The application-specific snapshot format */ - - format: number; - /** Number of chunks in the snapshot */ - - chunks: number; - /** Arbitrary snapshot hash, equal only if identical */ - - hash: Uint8Array; - /** Arbitrary application metadata */ - - metadata: Uint8Array; -} -export interface SnapshotSDKType { - height: Long; - format: number; - chunks: number; - hash: Uint8Array; - metadata: Uint8Array; -} - -function createBaseRequest(): Request { - return { - echo: undefined, - flush: undefined, - info: undefined, - setOption: undefined, - initChain: undefined, - query: undefined, - beginBlock: undefined, - checkTx: undefined, - deliverTx: undefined, - endBlock: undefined, - commit: undefined, - listSnapshots: undefined, - offerSnapshot: undefined, - loadSnapshotChunk: undefined, - applySnapshotChunk: undefined - }; -} - -export const Request = { - encode(message: Request, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.echo !== undefined) { - RequestEcho.encode(message.echo, writer.uint32(10).fork()).ldelim(); - } - - if (message.flush !== undefined) { - RequestFlush.encode(message.flush, writer.uint32(18).fork()).ldelim(); - } - - if (message.info !== undefined) { - RequestInfo.encode(message.info, writer.uint32(26).fork()).ldelim(); - } - - if (message.setOption !== undefined) { - RequestSetOption.encode(message.setOption, writer.uint32(34).fork()).ldelim(); - } - - if (message.initChain !== undefined) { - RequestInitChain.encode(message.initChain, writer.uint32(42).fork()).ldelim(); - } - - if (message.query !== undefined) { - RequestQuery.encode(message.query, writer.uint32(50).fork()).ldelim(); - } - - if (message.beginBlock !== undefined) { - RequestBeginBlock.encode(message.beginBlock, writer.uint32(58).fork()).ldelim(); - } - - if (message.checkTx !== undefined) { - RequestCheckTx.encode(message.checkTx, writer.uint32(66).fork()).ldelim(); - } - - if (message.deliverTx !== undefined) { - RequestDeliverTx.encode(message.deliverTx, writer.uint32(74).fork()).ldelim(); - } - - if (message.endBlock !== undefined) { - RequestEndBlock.encode(message.endBlock, writer.uint32(82).fork()).ldelim(); - } - - if (message.commit !== undefined) { - RequestCommit.encode(message.commit, writer.uint32(90).fork()).ldelim(); - } - - if (message.listSnapshots !== undefined) { - RequestListSnapshots.encode(message.listSnapshots, writer.uint32(98).fork()).ldelim(); - } - - if (message.offerSnapshot !== undefined) { - RequestOfferSnapshot.encode(message.offerSnapshot, writer.uint32(106).fork()).ldelim(); - } - - if (message.loadSnapshotChunk !== undefined) { - RequestLoadSnapshotChunk.encode(message.loadSnapshotChunk, writer.uint32(114).fork()).ldelim(); - } - - if (message.applySnapshotChunk !== undefined) { - RequestApplySnapshotChunk.encode(message.applySnapshotChunk, writer.uint32(122).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Request { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRequest(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.echo = RequestEcho.decode(reader, reader.uint32()); - break; - - case 2: - message.flush = RequestFlush.decode(reader, reader.uint32()); - break; - - case 3: - message.info = RequestInfo.decode(reader, reader.uint32()); - break; - - case 4: - message.setOption = RequestSetOption.decode(reader, reader.uint32()); - break; - - case 5: - message.initChain = RequestInitChain.decode(reader, reader.uint32()); - break; - - case 6: - message.query = RequestQuery.decode(reader, reader.uint32()); - break; - - case 7: - message.beginBlock = RequestBeginBlock.decode(reader, reader.uint32()); - break; - - case 8: - message.checkTx = RequestCheckTx.decode(reader, reader.uint32()); - break; - - case 9: - message.deliverTx = RequestDeliverTx.decode(reader, reader.uint32()); - break; - - case 10: - message.endBlock = RequestEndBlock.decode(reader, reader.uint32()); - break; - - case 11: - message.commit = RequestCommit.decode(reader, reader.uint32()); - break; - - case 12: - message.listSnapshots = RequestListSnapshots.decode(reader, reader.uint32()); - break; - - case 13: - message.offerSnapshot = RequestOfferSnapshot.decode(reader, reader.uint32()); - break; - - case 14: - message.loadSnapshotChunk = RequestLoadSnapshotChunk.decode(reader, reader.uint32()); - break; - - case 15: - message.applySnapshotChunk = RequestApplySnapshotChunk.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Request { - const message = createBaseRequest(); - message.echo = object.echo !== undefined && object.echo !== null ? RequestEcho.fromPartial(object.echo) : undefined; - message.flush = object.flush !== undefined && object.flush !== null ? RequestFlush.fromPartial(object.flush) : undefined; - message.info = object.info !== undefined && object.info !== null ? RequestInfo.fromPartial(object.info) : undefined; - message.setOption = object.setOption !== undefined && object.setOption !== null ? RequestSetOption.fromPartial(object.setOption) : undefined; - message.initChain = object.initChain !== undefined && object.initChain !== null ? RequestInitChain.fromPartial(object.initChain) : undefined; - message.query = object.query !== undefined && object.query !== null ? RequestQuery.fromPartial(object.query) : undefined; - message.beginBlock = object.beginBlock !== undefined && object.beginBlock !== null ? RequestBeginBlock.fromPartial(object.beginBlock) : undefined; - message.checkTx = object.checkTx !== undefined && object.checkTx !== null ? RequestCheckTx.fromPartial(object.checkTx) : undefined; - message.deliverTx = object.deliverTx !== undefined && object.deliverTx !== null ? RequestDeliverTx.fromPartial(object.deliverTx) : undefined; - message.endBlock = object.endBlock !== undefined && object.endBlock !== null ? RequestEndBlock.fromPartial(object.endBlock) : undefined; - message.commit = object.commit !== undefined && object.commit !== null ? RequestCommit.fromPartial(object.commit) : undefined; - message.listSnapshots = object.listSnapshots !== undefined && object.listSnapshots !== null ? RequestListSnapshots.fromPartial(object.listSnapshots) : undefined; - message.offerSnapshot = object.offerSnapshot !== undefined && object.offerSnapshot !== null ? RequestOfferSnapshot.fromPartial(object.offerSnapshot) : undefined; - message.loadSnapshotChunk = object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null ? RequestLoadSnapshotChunk.fromPartial(object.loadSnapshotChunk) : undefined; - message.applySnapshotChunk = object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null ? RequestApplySnapshotChunk.fromPartial(object.applySnapshotChunk) : undefined; - return message; - } - -}; - -function createBaseRequestEcho(): RequestEcho { - return { - message: "" - }; -} - -export const RequestEcho = { - encode(message: RequestEcho, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.message !== "") { - writer.uint32(10).string(message.message); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): RequestEcho { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRequestEcho(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.message = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): RequestEcho { - const message = createBaseRequestEcho(); - message.message = object.message ?? ""; - return message; - } - -}; - -function createBaseRequestFlush(): RequestFlush { - return {}; -} - -export const RequestFlush = { - encode(_: RequestFlush, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): RequestFlush { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRequestFlush(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): RequestFlush { - const message = createBaseRequestFlush(); - return message; - } - -}; - -function createBaseRequestInfo(): RequestInfo { - return { - version: "", - blockVersion: Long.UZERO, - p2pVersion: Long.UZERO - }; -} - -export const RequestInfo = { - encode(message: RequestInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.version !== "") { - writer.uint32(10).string(message.version); - } - - if (!message.blockVersion.isZero()) { - writer.uint32(16).uint64(message.blockVersion); - } - - if (!message.p2pVersion.isZero()) { - writer.uint32(24).uint64(message.p2pVersion); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): RequestInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRequestInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.version = reader.string(); - break; - - case 2: - message.blockVersion = (reader.uint64() as Long); - break; - - case 3: - message.p2pVersion = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): RequestInfo { - const message = createBaseRequestInfo(); - message.version = object.version ?? ""; - message.blockVersion = object.blockVersion !== undefined && object.blockVersion !== null ? Long.fromValue(object.blockVersion) : Long.UZERO; - message.p2pVersion = object.p2pVersion !== undefined && object.p2pVersion !== null ? Long.fromValue(object.p2pVersion) : Long.UZERO; - return message; - } - -}; - -function createBaseRequestSetOption(): RequestSetOption { - return { - key: "", - value: "" - }; -} - -export const RequestSetOption = { - encode(message: RequestSetOption, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key !== "") { - writer.uint32(10).string(message.key); - } - - if (message.value !== "") { - writer.uint32(18).string(message.value); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): RequestSetOption { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRequestSetOption(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.key = reader.string(); - break; - - case 2: - message.value = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): RequestSetOption { - const message = createBaseRequestSetOption(); - message.key = object.key ?? ""; - message.value = object.value ?? ""; - return message; - } - -}; - -function createBaseRequestInitChain(): RequestInitChain { - return { - time: undefined, - chainId: "", - consensusParams: undefined, - validators: [], - appStateBytes: new Uint8Array(), - initialHeight: Long.ZERO - }; -} - -export const RequestInitChain = { - encode(message: RequestInitChain, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.time !== undefined) { - Timestamp.encode(toTimestamp(message.time), writer.uint32(10).fork()).ldelim(); - } - - if (message.chainId !== "") { - writer.uint32(18).string(message.chainId); - } - - if (message.consensusParams !== undefined) { - ConsensusParams.encode(message.consensusParams, writer.uint32(26).fork()).ldelim(); - } - - for (const v of message.validators) { - ValidatorUpdate.encode(v!, writer.uint32(34).fork()).ldelim(); - } - - if (message.appStateBytes.length !== 0) { - writer.uint32(42).bytes(message.appStateBytes); - } - - if (!message.initialHeight.isZero()) { - writer.uint32(48).int64(message.initialHeight); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): RequestInitChain { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRequestInitChain(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.time = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - case 2: - message.chainId = reader.string(); - break; - - case 3: - message.consensusParams = ConsensusParams.decode(reader, reader.uint32()); - break; - - case 4: - message.validators.push(ValidatorUpdate.decode(reader, reader.uint32())); - break; - - case 5: - message.appStateBytes = reader.bytes(); - break; - - case 6: - message.initialHeight = (reader.int64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): RequestInitChain { - const message = createBaseRequestInitChain(); - message.time = object.time ?? undefined; - message.chainId = object.chainId ?? ""; - message.consensusParams = object.consensusParams !== undefined && object.consensusParams !== null ? ConsensusParams.fromPartial(object.consensusParams) : undefined; - message.validators = object.validators?.map(e => ValidatorUpdate.fromPartial(e)) || []; - message.appStateBytes = object.appStateBytes ?? new Uint8Array(); - message.initialHeight = object.initialHeight !== undefined && object.initialHeight !== null ? Long.fromValue(object.initialHeight) : Long.ZERO; - return message; - } - -}; - -function createBaseRequestQuery(): RequestQuery { - return { - data: new Uint8Array(), - path: "", - height: Long.ZERO, - prove: false - }; -} - -export const RequestQuery = { - encode(message: RequestQuery, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.data.length !== 0) { - writer.uint32(10).bytes(message.data); - } - - if (message.path !== "") { - writer.uint32(18).string(message.path); - } - - if (!message.height.isZero()) { - writer.uint32(24).int64(message.height); - } - - if (message.prove === true) { - writer.uint32(32).bool(message.prove); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): RequestQuery { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRequestQuery(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.data = reader.bytes(); - break; - - case 2: - message.path = reader.string(); - break; - - case 3: - message.height = (reader.int64() as Long); - break; - - case 4: - message.prove = reader.bool(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): RequestQuery { - const message = createBaseRequestQuery(); - message.data = object.data ?? new Uint8Array(); - message.path = object.path ?? ""; - message.height = object.height !== undefined && object.height !== null ? Long.fromValue(object.height) : Long.ZERO; - message.prove = object.prove ?? false; - return message; - } - -}; - -function createBaseRequestBeginBlock(): RequestBeginBlock { - return { - hash: new Uint8Array(), - header: undefined, - lastCommitInfo: undefined, - byzantineValidators: [] - }; -} - -export const RequestBeginBlock = { - encode(message: RequestBeginBlock, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.hash.length !== 0) { - writer.uint32(10).bytes(message.hash); - } - - if (message.header !== undefined) { - Header.encode(message.header, writer.uint32(18).fork()).ldelim(); - } - - if (message.lastCommitInfo !== undefined) { - LastCommitInfo.encode(message.lastCommitInfo, writer.uint32(26).fork()).ldelim(); - } - - for (const v of message.byzantineValidators) { - Evidence.encode(v!, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): RequestBeginBlock { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRequestBeginBlock(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.hash = reader.bytes(); - break; - - case 2: - message.header = Header.decode(reader, reader.uint32()); - break; - - case 3: - message.lastCommitInfo = LastCommitInfo.decode(reader, reader.uint32()); - break; - - case 4: - message.byzantineValidators.push(Evidence.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): RequestBeginBlock { - const message = createBaseRequestBeginBlock(); - message.hash = object.hash ?? new Uint8Array(); - message.header = object.header !== undefined && object.header !== null ? Header.fromPartial(object.header) : undefined; - message.lastCommitInfo = object.lastCommitInfo !== undefined && object.lastCommitInfo !== null ? LastCommitInfo.fromPartial(object.lastCommitInfo) : undefined; - message.byzantineValidators = object.byzantineValidators?.map(e => Evidence.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseRequestCheckTx(): RequestCheckTx { - return { - tx: new Uint8Array(), - type: 0 - }; -} - -export const RequestCheckTx = { - encode(message: RequestCheckTx, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.tx.length !== 0) { - writer.uint32(10).bytes(message.tx); - } - - if (message.type !== 0) { - writer.uint32(16).int32(message.type); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): RequestCheckTx { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRequestCheckTx(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.tx = reader.bytes(); - break; - - case 2: - message.type = (reader.int32() as any); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): RequestCheckTx { - const message = createBaseRequestCheckTx(); - message.tx = object.tx ?? new Uint8Array(); - message.type = object.type ?? 0; - return message; - } - -}; - -function createBaseRequestDeliverTx(): RequestDeliverTx { - return { - tx: new Uint8Array() - }; -} - -export const RequestDeliverTx = { - encode(message: RequestDeliverTx, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.tx.length !== 0) { - writer.uint32(10).bytes(message.tx); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): RequestDeliverTx { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRequestDeliverTx(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.tx = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): RequestDeliverTx { - const message = createBaseRequestDeliverTx(); - message.tx = object.tx ?? new Uint8Array(); - return message; - } - -}; - -function createBaseRequestEndBlock(): RequestEndBlock { - return { - height: Long.ZERO - }; -} - -export const RequestEndBlock = { - encode(message: RequestEndBlock, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.height.isZero()) { - writer.uint32(8).int64(message.height); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): RequestEndBlock { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRequestEndBlock(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.height = (reader.int64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): RequestEndBlock { - const message = createBaseRequestEndBlock(); - message.height = object.height !== undefined && object.height !== null ? Long.fromValue(object.height) : Long.ZERO; - return message; - } - -}; - -function createBaseRequestCommit(): RequestCommit { - return {}; -} - -export const RequestCommit = { - encode(_: RequestCommit, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): RequestCommit { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRequestCommit(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): RequestCommit { - const message = createBaseRequestCommit(); - return message; - } - -}; - -function createBaseRequestListSnapshots(): RequestListSnapshots { - return {}; -} - -export const RequestListSnapshots = { - encode(_: RequestListSnapshots, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): RequestListSnapshots { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRequestListSnapshots(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): RequestListSnapshots { - const message = createBaseRequestListSnapshots(); - return message; - } - -}; - -function createBaseRequestOfferSnapshot(): RequestOfferSnapshot { - return { - snapshot: undefined, - appHash: new Uint8Array() - }; -} - -export const RequestOfferSnapshot = { - encode(message: RequestOfferSnapshot, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.snapshot !== undefined) { - Snapshot.encode(message.snapshot, writer.uint32(10).fork()).ldelim(); - } - - if (message.appHash.length !== 0) { - writer.uint32(18).bytes(message.appHash); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): RequestOfferSnapshot { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRequestOfferSnapshot(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.snapshot = Snapshot.decode(reader, reader.uint32()); - break; - - case 2: - message.appHash = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): RequestOfferSnapshot { - const message = createBaseRequestOfferSnapshot(); - message.snapshot = object.snapshot !== undefined && object.snapshot !== null ? Snapshot.fromPartial(object.snapshot) : undefined; - message.appHash = object.appHash ?? new Uint8Array(); - return message; - } - -}; - -function createBaseRequestLoadSnapshotChunk(): RequestLoadSnapshotChunk { - return { - height: Long.UZERO, - format: 0, - chunk: 0 - }; -} - -export const RequestLoadSnapshotChunk = { - encode(message: RequestLoadSnapshotChunk, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.height.isZero()) { - writer.uint32(8).uint64(message.height); - } - - if (message.format !== 0) { - writer.uint32(16).uint32(message.format); - } - - if (message.chunk !== 0) { - writer.uint32(24).uint32(message.chunk); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): RequestLoadSnapshotChunk { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRequestLoadSnapshotChunk(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.height = (reader.uint64() as Long); - break; - - case 2: - message.format = reader.uint32(); - break; - - case 3: - message.chunk = reader.uint32(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): RequestLoadSnapshotChunk { - const message = createBaseRequestLoadSnapshotChunk(); - message.height = object.height !== undefined && object.height !== null ? Long.fromValue(object.height) : Long.UZERO; - message.format = object.format ?? 0; - message.chunk = object.chunk ?? 0; - return message; - } - -}; - -function createBaseRequestApplySnapshotChunk(): RequestApplySnapshotChunk { - return { - index: 0, - chunk: new Uint8Array(), - sender: "" - }; -} - -export const RequestApplySnapshotChunk = { - encode(message: RequestApplySnapshotChunk, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.index !== 0) { - writer.uint32(8).uint32(message.index); - } - - if (message.chunk.length !== 0) { - writer.uint32(18).bytes(message.chunk); - } - - if (message.sender !== "") { - writer.uint32(26).string(message.sender); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): RequestApplySnapshotChunk { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRequestApplySnapshotChunk(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.index = reader.uint32(); - break; - - case 2: - message.chunk = reader.bytes(); - break; - - case 3: - message.sender = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): RequestApplySnapshotChunk { - const message = createBaseRequestApplySnapshotChunk(); - message.index = object.index ?? 0; - message.chunk = object.chunk ?? new Uint8Array(); - message.sender = object.sender ?? ""; - return message; - } - -}; - -function createBaseResponse(): Response { - return { - exception: undefined, - echo: undefined, - flush: undefined, - info: undefined, - setOption: undefined, - initChain: undefined, - query: undefined, - beginBlock: undefined, - checkTx: undefined, - deliverTx: undefined, - endBlock: undefined, - commit: undefined, - listSnapshots: undefined, - offerSnapshot: undefined, - loadSnapshotChunk: undefined, - applySnapshotChunk: undefined - }; -} - -export const Response = { - encode(message: Response, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.exception !== undefined) { - ResponseException.encode(message.exception, writer.uint32(10).fork()).ldelim(); - } - - if (message.echo !== undefined) { - ResponseEcho.encode(message.echo, writer.uint32(18).fork()).ldelim(); - } - - if (message.flush !== undefined) { - ResponseFlush.encode(message.flush, writer.uint32(26).fork()).ldelim(); - } - - if (message.info !== undefined) { - ResponseInfo.encode(message.info, writer.uint32(34).fork()).ldelim(); - } - - if (message.setOption !== undefined) { - ResponseSetOption.encode(message.setOption, writer.uint32(42).fork()).ldelim(); - } - - if (message.initChain !== undefined) { - ResponseInitChain.encode(message.initChain, writer.uint32(50).fork()).ldelim(); - } - - if (message.query !== undefined) { - ResponseQuery.encode(message.query, writer.uint32(58).fork()).ldelim(); - } - - if (message.beginBlock !== undefined) { - ResponseBeginBlock.encode(message.beginBlock, writer.uint32(66).fork()).ldelim(); - } - - if (message.checkTx !== undefined) { - ResponseCheckTx.encode(message.checkTx, writer.uint32(74).fork()).ldelim(); - } - - if (message.deliverTx !== undefined) { - ResponseDeliverTx.encode(message.deliverTx, writer.uint32(82).fork()).ldelim(); - } - - if (message.endBlock !== undefined) { - ResponseEndBlock.encode(message.endBlock, writer.uint32(90).fork()).ldelim(); - } - - if (message.commit !== undefined) { - ResponseCommit.encode(message.commit, writer.uint32(98).fork()).ldelim(); - } - - if (message.listSnapshots !== undefined) { - ResponseListSnapshots.encode(message.listSnapshots, writer.uint32(106).fork()).ldelim(); - } - - if (message.offerSnapshot !== undefined) { - ResponseOfferSnapshot.encode(message.offerSnapshot, writer.uint32(114).fork()).ldelim(); - } - - if (message.loadSnapshotChunk !== undefined) { - ResponseLoadSnapshotChunk.encode(message.loadSnapshotChunk, writer.uint32(122).fork()).ldelim(); - } - - if (message.applySnapshotChunk !== undefined) { - ResponseApplySnapshotChunk.encode(message.applySnapshotChunk, writer.uint32(130).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Response { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseResponse(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.exception = ResponseException.decode(reader, reader.uint32()); - break; - - case 2: - message.echo = ResponseEcho.decode(reader, reader.uint32()); - break; - - case 3: - message.flush = ResponseFlush.decode(reader, reader.uint32()); - break; - - case 4: - message.info = ResponseInfo.decode(reader, reader.uint32()); - break; - - case 5: - message.setOption = ResponseSetOption.decode(reader, reader.uint32()); - break; - - case 6: - message.initChain = ResponseInitChain.decode(reader, reader.uint32()); - break; - - case 7: - message.query = ResponseQuery.decode(reader, reader.uint32()); - break; - - case 8: - message.beginBlock = ResponseBeginBlock.decode(reader, reader.uint32()); - break; - - case 9: - message.checkTx = ResponseCheckTx.decode(reader, reader.uint32()); - break; - - case 10: - message.deliverTx = ResponseDeliverTx.decode(reader, reader.uint32()); - break; - - case 11: - message.endBlock = ResponseEndBlock.decode(reader, reader.uint32()); - break; - - case 12: - message.commit = ResponseCommit.decode(reader, reader.uint32()); - break; - - case 13: - message.listSnapshots = ResponseListSnapshots.decode(reader, reader.uint32()); - break; - - case 14: - message.offerSnapshot = ResponseOfferSnapshot.decode(reader, reader.uint32()); - break; - - case 15: - message.loadSnapshotChunk = ResponseLoadSnapshotChunk.decode(reader, reader.uint32()); - break; - - case 16: - message.applySnapshotChunk = ResponseApplySnapshotChunk.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Response { - const message = createBaseResponse(); - message.exception = object.exception !== undefined && object.exception !== null ? ResponseException.fromPartial(object.exception) : undefined; - message.echo = object.echo !== undefined && object.echo !== null ? ResponseEcho.fromPartial(object.echo) : undefined; - message.flush = object.flush !== undefined && object.flush !== null ? ResponseFlush.fromPartial(object.flush) : undefined; - message.info = object.info !== undefined && object.info !== null ? ResponseInfo.fromPartial(object.info) : undefined; - message.setOption = object.setOption !== undefined && object.setOption !== null ? ResponseSetOption.fromPartial(object.setOption) : undefined; - message.initChain = object.initChain !== undefined && object.initChain !== null ? ResponseInitChain.fromPartial(object.initChain) : undefined; - message.query = object.query !== undefined && object.query !== null ? ResponseQuery.fromPartial(object.query) : undefined; - message.beginBlock = object.beginBlock !== undefined && object.beginBlock !== null ? ResponseBeginBlock.fromPartial(object.beginBlock) : undefined; - message.checkTx = object.checkTx !== undefined && object.checkTx !== null ? ResponseCheckTx.fromPartial(object.checkTx) : undefined; - message.deliverTx = object.deliverTx !== undefined && object.deliverTx !== null ? ResponseDeliverTx.fromPartial(object.deliverTx) : undefined; - message.endBlock = object.endBlock !== undefined && object.endBlock !== null ? ResponseEndBlock.fromPartial(object.endBlock) : undefined; - message.commit = object.commit !== undefined && object.commit !== null ? ResponseCommit.fromPartial(object.commit) : undefined; - message.listSnapshots = object.listSnapshots !== undefined && object.listSnapshots !== null ? ResponseListSnapshots.fromPartial(object.listSnapshots) : undefined; - message.offerSnapshot = object.offerSnapshot !== undefined && object.offerSnapshot !== null ? ResponseOfferSnapshot.fromPartial(object.offerSnapshot) : undefined; - message.loadSnapshotChunk = object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null ? ResponseLoadSnapshotChunk.fromPartial(object.loadSnapshotChunk) : undefined; - message.applySnapshotChunk = object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null ? ResponseApplySnapshotChunk.fromPartial(object.applySnapshotChunk) : undefined; - return message; - } - -}; - -function createBaseResponseException(): ResponseException { - return { - error: "" - }; -} - -export const ResponseException = { - encode(message: ResponseException, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.error !== "") { - writer.uint32(10).string(message.error); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseException { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseResponseException(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.error = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ResponseException { - const message = createBaseResponseException(); - message.error = object.error ?? ""; - return message; - } - -}; - -function createBaseResponseEcho(): ResponseEcho { - return { - message: "" - }; -} - -export const ResponseEcho = { - encode(message: ResponseEcho, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.message !== "") { - writer.uint32(10).string(message.message); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseEcho { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseResponseEcho(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.message = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ResponseEcho { - const message = createBaseResponseEcho(); - message.message = object.message ?? ""; - return message; - } - -}; - -function createBaseResponseFlush(): ResponseFlush { - return {}; -} - -export const ResponseFlush = { - encode(_: ResponseFlush, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseFlush { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseResponseFlush(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(_: DeepPartial): ResponseFlush { - const message = createBaseResponseFlush(); - return message; - } - -}; - -function createBaseResponseInfo(): ResponseInfo { - return { - data: "", - version: "", - appVersion: Long.UZERO, - lastBlockHeight: Long.ZERO, - lastBlockAppHash: new Uint8Array() - }; -} - -export const ResponseInfo = { - encode(message: ResponseInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.data !== "") { - writer.uint32(10).string(message.data); - } - - if (message.version !== "") { - writer.uint32(18).string(message.version); - } - - if (!message.appVersion.isZero()) { - writer.uint32(24).uint64(message.appVersion); - } - - if (!message.lastBlockHeight.isZero()) { - writer.uint32(32).int64(message.lastBlockHeight); - } - - if (message.lastBlockAppHash.length !== 0) { - writer.uint32(42).bytes(message.lastBlockAppHash); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseResponseInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.data = reader.string(); - break; - - case 2: - message.version = reader.string(); - break; - - case 3: - message.appVersion = (reader.uint64() as Long); - break; - - case 4: - message.lastBlockHeight = (reader.int64() as Long); - break; - - case 5: - message.lastBlockAppHash = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ResponseInfo { - const message = createBaseResponseInfo(); - message.data = object.data ?? ""; - message.version = object.version ?? ""; - message.appVersion = object.appVersion !== undefined && object.appVersion !== null ? Long.fromValue(object.appVersion) : Long.UZERO; - message.lastBlockHeight = object.lastBlockHeight !== undefined && object.lastBlockHeight !== null ? Long.fromValue(object.lastBlockHeight) : Long.ZERO; - message.lastBlockAppHash = object.lastBlockAppHash ?? new Uint8Array(); - return message; - } - -}; - -function createBaseResponseSetOption(): ResponseSetOption { - return { - code: 0, - log: "", - info: "" - }; -} - -export const ResponseSetOption = { - encode(message: ResponseSetOption, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.code !== 0) { - writer.uint32(8).uint32(message.code); - } - - if (message.log !== "") { - writer.uint32(26).string(message.log); - } - - if (message.info !== "") { - writer.uint32(34).string(message.info); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseSetOption { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseResponseSetOption(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.code = reader.uint32(); - break; - - case 3: - message.log = reader.string(); - break; - - case 4: - message.info = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ResponseSetOption { - const message = createBaseResponseSetOption(); - message.code = object.code ?? 0; - message.log = object.log ?? ""; - message.info = object.info ?? ""; - return message; - } - -}; - -function createBaseResponseInitChain(): ResponseInitChain { - return { - consensusParams: undefined, - validators: [], - appHash: new Uint8Array() - }; -} - -export const ResponseInitChain = { - encode(message: ResponseInitChain, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.consensusParams !== undefined) { - ConsensusParams.encode(message.consensusParams, writer.uint32(10).fork()).ldelim(); - } - - for (const v of message.validators) { - ValidatorUpdate.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - if (message.appHash.length !== 0) { - writer.uint32(26).bytes(message.appHash); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseInitChain { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseResponseInitChain(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.consensusParams = ConsensusParams.decode(reader, reader.uint32()); - break; - - case 2: - message.validators.push(ValidatorUpdate.decode(reader, reader.uint32())); - break; - - case 3: - message.appHash = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ResponseInitChain { - const message = createBaseResponseInitChain(); - message.consensusParams = object.consensusParams !== undefined && object.consensusParams !== null ? ConsensusParams.fromPartial(object.consensusParams) : undefined; - message.validators = object.validators?.map(e => ValidatorUpdate.fromPartial(e)) || []; - message.appHash = object.appHash ?? new Uint8Array(); - return message; - } - -}; - -function createBaseResponseQuery(): ResponseQuery { - return { - code: 0, - log: "", - info: "", - index: Long.ZERO, - key: new Uint8Array(), - value: new Uint8Array(), - proofOps: undefined, - height: Long.ZERO, - codespace: "" - }; -} - -export const ResponseQuery = { - encode(message: ResponseQuery, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.code !== 0) { - writer.uint32(8).uint32(message.code); - } - - if (message.log !== "") { - writer.uint32(26).string(message.log); - } - - if (message.info !== "") { - writer.uint32(34).string(message.info); - } - - if (!message.index.isZero()) { - writer.uint32(40).int64(message.index); - } - - if (message.key.length !== 0) { - writer.uint32(50).bytes(message.key); - } - - if (message.value.length !== 0) { - writer.uint32(58).bytes(message.value); - } - - if (message.proofOps !== undefined) { - ProofOps.encode(message.proofOps, writer.uint32(66).fork()).ldelim(); - } - - if (!message.height.isZero()) { - writer.uint32(72).int64(message.height); - } - - if (message.codespace !== "") { - writer.uint32(82).string(message.codespace); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseQuery { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseResponseQuery(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.code = reader.uint32(); - break; - - case 3: - message.log = reader.string(); - break; - - case 4: - message.info = reader.string(); - break; - - case 5: - message.index = (reader.int64() as Long); - break; - - case 6: - message.key = reader.bytes(); - break; - - case 7: - message.value = reader.bytes(); - break; - - case 8: - message.proofOps = ProofOps.decode(reader, reader.uint32()); - break; - - case 9: - message.height = (reader.int64() as Long); - break; - - case 10: - message.codespace = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ResponseQuery { - const message = createBaseResponseQuery(); - message.code = object.code ?? 0; - message.log = object.log ?? ""; - message.info = object.info ?? ""; - message.index = object.index !== undefined && object.index !== null ? Long.fromValue(object.index) : Long.ZERO; - message.key = object.key ?? new Uint8Array(); - message.value = object.value ?? new Uint8Array(); - message.proofOps = object.proofOps !== undefined && object.proofOps !== null ? ProofOps.fromPartial(object.proofOps) : undefined; - message.height = object.height !== undefined && object.height !== null ? Long.fromValue(object.height) : Long.ZERO; - message.codespace = object.codespace ?? ""; - return message; - } - -}; - -function createBaseResponseBeginBlock(): ResponseBeginBlock { - return { - events: [] - }; -} - -export const ResponseBeginBlock = { - encode(message: ResponseBeginBlock, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.events) { - Event.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseBeginBlock { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseResponseBeginBlock(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.events.push(Event.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ResponseBeginBlock { - const message = createBaseResponseBeginBlock(); - message.events = object.events?.map(e => Event.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseResponseCheckTx(): ResponseCheckTx { - return { - code: 0, - data: new Uint8Array(), - log: "", - info: "", - gasWanted: Long.ZERO, - gasUsed: Long.ZERO, - events: [], - codespace: "" - }; -} - -export const ResponseCheckTx = { - encode(message: ResponseCheckTx, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.code !== 0) { - writer.uint32(8).uint32(message.code); - } - - if (message.data.length !== 0) { - writer.uint32(18).bytes(message.data); - } - - if (message.log !== "") { - writer.uint32(26).string(message.log); - } - - if (message.info !== "") { - writer.uint32(34).string(message.info); - } - - if (!message.gasWanted.isZero()) { - writer.uint32(40).int64(message.gasWanted); - } - - if (!message.gasUsed.isZero()) { - writer.uint32(48).int64(message.gasUsed); - } - - for (const v of message.events) { - Event.encode(v!, writer.uint32(58).fork()).ldelim(); - } - - if (message.codespace !== "") { - writer.uint32(66).string(message.codespace); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseCheckTx { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseResponseCheckTx(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.code = reader.uint32(); - break; - - case 2: - message.data = reader.bytes(); - break; - - case 3: - message.log = reader.string(); - break; - - case 4: - message.info = reader.string(); - break; - - case 5: - message.gasWanted = (reader.int64() as Long); - break; - - case 6: - message.gasUsed = (reader.int64() as Long); - break; - - case 7: - message.events.push(Event.decode(reader, reader.uint32())); - break; - - case 8: - message.codespace = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ResponseCheckTx { - const message = createBaseResponseCheckTx(); - message.code = object.code ?? 0; - message.data = object.data ?? new Uint8Array(); - message.log = object.log ?? ""; - message.info = object.info ?? ""; - message.gasWanted = object.gasWanted !== undefined && object.gasWanted !== null ? Long.fromValue(object.gasWanted) : Long.ZERO; - message.gasUsed = object.gasUsed !== undefined && object.gasUsed !== null ? Long.fromValue(object.gasUsed) : Long.ZERO; - message.events = object.events?.map(e => Event.fromPartial(e)) || []; - message.codespace = object.codespace ?? ""; - return message; - } - -}; - -function createBaseResponseDeliverTx(): ResponseDeliverTx { - return { - code: 0, - data: new Uint8Array(), - log: "", - info: "", - gasWanted: Long.ZERO, - gasUsed: Long.ZERO, - events: [], - codespace: "" - }; -} - -export const ResponseDeliverTx = { - encode(message: ResponseDeliverTx, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.code !== 0) { - writer.uint32(8).uint32(message.code); - } - - if (message.data.length !== 0) { - writer.uint32(18).bytes(message.data); - } - - if (message.log !== "") { - writer.uint32(26).string(message.log); - } - - if (message.info !== "") { - writer.uint32(34).string(message.info); - } - - if (!message.gasWanted.isZero()) { - writer.uint32(40).int64(message.gasWanted); - } - - if (!message.gasUsed.isZero()) { - writer.uint32(48).int64(message.gasUsed); - } - - for (const v of message.events) { - Event.encode(v!, writer.uint32(58).fork()).ldelim(); - } - - if (message.codespace !== "") { - writer.uint32(66).string(message.codespace); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseDeliverTx { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseResponseDeliverTx(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.code = reader.uint32(); - break; - - case 2: - message.data = reader.bytes(); - break; - - case 3: - message.log = reader.string(); - break; - - case 4: - message.info = reader.string(); - break; - - case 5: - message.gasWanted = (reader.int64() as Long); - break; - - case 6: - message.gasUsed = (reader.int64() as Long); - break; - - case 7: - message.events.push(Event.decode(reader, reader.uint32())); - break; - - case 8: - message.codespace = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ResponseDeliverTx { - const message = createBaseResponseDeliverTx(); - message.code = object.code ?? 0; - message.data = object.data ?? new Uint8Array(); - message.log = object.log ?? ""; - message.info = object.info ?? ""; - message.gasWanted = object.gasWanted !== undefined && object.gasWanted !== null ? Long.fromValue(object.gasWanted) : Long.ZERO; - message.gasUsed = object.gasUsed !== undefined && object.gasUsed !== null ? Long.fromValue(object.gasUsed) : Long.ZERO; - message.events = object.events?.map(e => Event.fromPartial(e)) || []; - message.codespace = object.codespace ?? ""; - return message; - } - -}; - -function createBaseResponseEndBlock(): ResponseEndBlock { - return { - validatorUpdates: [], - consensusParamUpdates: undefined, - events: [] - }; -} - -export const ResponseEndBlock = { - encode(message: ResponseEndBlock, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.validatorUpdates) { - ValidatorUpdate.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.consensusParamUpdates !== undefined) { - ConsensusParams.encode(message.consensusParamUpdates, writer.uint32(18).fork()).ldelim(); - } - - for (const v of message.events) { - Event.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseEndBlock { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseResponseEndBlock(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.validatorUpdates.push(ValidatorUpdate.decode(reader, reader.uint32())); - break; - - case 2: - message.consensusParamUpdates = ConsensusParams.decode(reader, reader.uint32()); - break; - - case 3: - message.events.push(Event.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ResponseEndBlock { - const message = createBaseResponseEndBlock(); - message.validatorUpdates = object.validatorUpdates?.map(e => ValidatorUpdate.fromPartial(e)) || []; - message.consensusParamUpdates = object.consensusParamUpdates !== undefined && object.consensusParamUpdates !== null ? ConsensusParams.fromPartial(object.consensusParamUpdates) : undefined; - message.events = object.events?.map(e => Event.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseResponseCommit(): ResponseCommit { - return { - data: new Uint8Array(), - retainHeight: Long.ZERO - }; -} - -export const ResponseCommit = { - encode(message: ResponseCommit, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.data.length !== 0) { - writer.uint32(18).bytes(message.data); - } - - if (!message.retainHeight.isZero()) { - writer.uint32(24).int64(message.retainHeight); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseCommit { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseResponseCommit(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 2: - message.data = reader.bytes(); - break; - - case 3: - message.retainHeight = (reader.int64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ResponseCommit { - const message = createBaseResponseCommit(); - message.data = object.data ?? new Uint8Array(); - message.retainHeight = object.retainHeight !== undefined && object.retainHeight !== null ? Long.fromValue(object.retainHeight) : Long.ZERO; - return message; - } - -}; - -function createBaseResponseListSnapshots(): ResponseListSnapshots { - return { - snapshots: [] - }; -} - -export const ResponseListSnapshots = { - encode(message: ResponseListSnapshots, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.snapshots) { - Snapshot.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseListSnapshots { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseResponseListSnapshots(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.snapshots.push(Snapshot.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ResponseListSnapshots { - const message = createBaseResponseListSnapshots(); - message.snapshots = object.snapshots?.map(e => Snapshot.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseResponseOfferSnapshot(): ResponseOfferSnapshot { - return { - result: 0 - }; -} - -export const ResponseOfferSnapshot = { - encode(message: ResponseOfferSnapshot, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.result !== 0) { - writer.uint32(8).int32(message.result); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseOfferSnapshot { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseResponseOfferSnapshot(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.result = (reader.int32() as any); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ResponseOfferSnapshot { - const message = createBaseResponseOfferSnapshot(); - message.result = object.result ?? 0; - return message; - } - -}; - -function createBaseResponseLoadSnapshotChunk(): ResponseLoadSnapshotChunk { - return { - chunk: new Uint8Array() - }; -} - -export const ResponseLoadSnapshotChunk = { - encode(message: ResponseLoadSnapshotChunk, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.chunk.length !== 0) { - writer.uint32(10).bytes(message.chunk); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseLoadSnapshotChunk { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseResponseLoadSnapshotChunk(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.chunk = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ResponseLoadSnapshotChunk { - const message = createBaseResponseLoadSnapshotChunk(); - message.chunk = object.chunk ?? new Uint8Array(); - return message; - } - -}; - -function createBaseResponseApplySnapshotChunk(): ResponseApplySnapshotChunk { - return { - result: 0, - refetchChunks: [], - rejectSenders: [] - }; -} - -export const ResponseApplySnapshotChunk = { - encode(message: ResponseApplySnapshotChunk, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.result !== 0) { - writer.uint32(8).int32(message.result); - } - - writer.uint32(18).fork(); - - for (const v of message.refetchChunks) { - writer.uint32(v); - } - - writer.ldelim(); - - for (const v of message.rejectSenders) { - writer.uint32(26).string(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ResponseApplySnapshotChunk { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseResponseApplySnapshotChunk(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.result = (reader.int32() as any); - break; - - case 2: - if ((tag & 7) === 2) { - const end2 = reader.uint32() + reader.pos; - - while (reader.pos < end2) { - message.refetchChunks.push(reader.uint32()); - } - } else { - message.refetchChunks.push(reader.uint32()); - } - - break; - - case 3: - message.rejectSenders.push(reader.string()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ResponseApplySnapshotChunk { - const message = createBaseResponseApplySnapshotChunk(); - message.result = object.result ?? 0; - message.refetchChunks = object.refetchChunks?.map(e => e) || []; - message.rejectSenders = object.rejectSenders?.map(e => e) || []; - return message; - } - -}; - -function createBaseConsensusParams(): ConsensusParams { - return { - block: undefined, - evidence: undefined, - validator: undefined, - version: undefined - }; -} - -export const ConsensusParams = { - encode(message: ConsensusParams, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.block !== undefined) { - BlockParams.encode(message.block, writer.uint32(10).fork()).ldelim(); - } - - if (message.evidence !== undefined) { - EvidenceParams.encode(message.evidence, writer.uint32(18).fork()).ldelim(); - } - - if (message.validator !== undefined) { - ValidatorParams.encode(message.validator, writer.uint32(26).fork()).ldelim(); - } - - if (message.version !== undefined) { - VersionParams.encode(message.version, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ConsensusParams { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseConsensusParams(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.block = BlockParams.decode(reader, reader.uint32()); - break; - - case 2: - message.evidence = EvidenceParams.decode(reader, reader.uint32()); - break; - - case 3: - message.validator = ValidatorParams.decode(reader, reader.uint32()); - break; - - case 4: - message.version = VersionParams.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ConsensusParams { - const message = createBaseConsensusParams(); - message.block = object.block !== undefined && object.block !== null ? BlockParams.fromPartial(object.block) : undefined; - message.evidence = object.evidence !== undefined && object.evidence !== null ? EvidenceParams.fromPartial(object.evidence) : undefined; - message.validator = object.validator !== undefined && object.validator !== null ? ValidatorParams.fromPartial(object.validator) : undefined; - message.version = object.version !== undefined && object.version !== null ? VersionParams.fromPartial(object.version) : undefined; - return message; - } - -}; - -function createBaseBlockParams(): BlockParams { - return { - maxBytes: Long.ZERO, - maxGas: Long.ZERO - }; -} - -export const BlockParams = { - encode(message: BlockParams, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.maxBytes.isZero()) { - writer.uint32(8).int64(message.maxBytes); - } - - if (!message.maxGas.isZero()) { - writer.uint32(16).int64(message.maxGas); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): BlockParams { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBlockParams(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.maxBytes = (reader.int64() as Long); - break; - - case 2: - message.maxGas = (reader.int64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): BlockParams { - const message = createBaseBlockParams(); - message.maxBytes = object.maxBytes !== undefined && object.maxBytes !== null ? Long.fromValue(object.maxBytes) : Long.ZERO; - message.maxGas = object.maxGas !== undefined && object.maxGas !== null ? Long.fromValue(object.maxGas) : Long.ZERO; - return message; - } - -}; - -function createBaseLastCommitInfo(): LastCommitInfo { - return { - round: 0, - votes: [] - }; -} - -export const LastCommitInfo = { - encode(message: LastCommitInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.round !== 0) { - writer.uint32(8).int32(message.round); - } - - for (const v of message.votes) { - VoteInfo.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): LastCommitInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseLastCommitInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.round = reader.int32(); - break; - - case 2: - message.votes.push(VoteInfo.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): LastCommitInfo { - const message = createBaseLastCommitInfo(); - message.round = object.round ?? 0; - message.votes = object.votes?.map(e => VoteInfo.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseEvent(): Event { - return { - type: "", - attributes: [] - }; -} - -export const Event = { - encode(message: Event, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.type !== "") { - writer.uint32(10).string(message.type); - } - - for (const v of message.attributes) { - EventAttribute.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Event { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEvent(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.type = reader.string(); - break; - - case 2: - message.attributes.push(EventAttribute.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Event { - const message = createBaseEvent(); - message.type = object.type ?? ""; - message.attributes = object.attributes?.map(e => EventAttribute.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseEventAttribute(): EventAttribute { - return { - key: new Uint8Array(), - value: new Uint8Array(), - index: false - }; -} - -export const EventAttribute = { - encode(message: EventAttribute, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); - } - - if (message.value.length !== 0) { - writer.uint32(18).bytes(message.value); - } - - if (message.index === true) { - writer.uint32(24).bool(message.index); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): EventAttribute { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEventAttribute(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.key = reader.bytes(); - break; - - case 2: - message.value = reader.bytes(); - break; - - case 3: - message.index = reader.bool(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): EventAttribute { - const message = createBaseEventAttribute(); - message.key = object.key ?? new Uint8Array(); - message.value = object.value ?? new Uint8Array(); - message.index = object.index ?? false; - return message; - } - -}; - -function createBaseTxResult(): TxResult { - return { - height: Long.ZERO, - index: 0, - tx: new Uint8Array(), - result: undefined - }; -} - -export const TxResult = { - encode(message: TxResult, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.height.isZero()) { - writer.uint32(8).int64(message.height); - } - - if (message.index !== 0) { - writer.uint32(16).uint32(message.index); - } - - if (message.tx.length !== 0) { - writer.uint32(26).bytes(message.tx); - } - - if (message.result !== undefined) { - ResponseDeliverTx.encode(message.result, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): TxResult { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTxResult(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.height = (reader.int64() as Long); - break; - - case 2: - message.index = reader.uint32(); - break; - - case 3: - message.tx = reader.bytes(); - break; - - case 4: - message.result = ResponseDeliverTx.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): TxResult { - const message = createBaseTxResult(); - message.height = object.height !== undefined && object.height !== null ? Long.fromValue(object.height) : Long.ZERO; - message.index = object.index ?? 0; - message.tx = object.tx ?? new Uint8Array(); - message.result = object.result !== undefined && object.result !== null ? ResponseDeliverTx.fromPartial(object.result) : undefined; - return message; - } - -}; - -function createBaseValidator(): Validator { - return { - address: new Uint8Array(), - power: Long.ZERO - }; -} - -export const Validator = { - encode(message: Validator, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address.length !== 0) { - writer.uint32(10).bytes(message.address); - } - - if (!message.power.isZero()) { - writer.uint32(24).int64(message.power); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Validator { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidator(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.bytes(); - break; - - case 3: - message.power = (reader.int64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Validator { - const message = createBaseValidator(); - message.address = object.address ?? new Uint8Array(); - message.power = object.power !== undefined && object.power !== null ? Long.fromValue(object.power) : Long.ZERO; - return message; - } - -}; - -function createBaseValidatorUpdate(): ValidatorUpdate { - return { - pubKey: undefined, - power: Long.ZERO - }; -} - -export const ValidatorUpdate = { - encode(message: ValidatorUpdate, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.pubKey !== undefined) { - PublicKey.encode(message.pubKey, writer.uint32(10).fork()).ldelim(); - } - - if (!message.power.isZero()) { - writer.uint32(16).int64(message.power); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorUpdate { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidatorUpdate(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.pubKey = PublicKey.decode(reader, reader.uint32()); - break; - - case 2: - message.power = (reader.int64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ValidatorUpdate { - const message = createBaseValidatorUpdate(); - message.pubKey = object.pubKey !== undefined && object.pubKey !== null ? PublicKey.fromPartial(object.pubKey) : undefined; - message.power = object.power !== undefined && object.power !== null ? Long.fromValue(object.power) : Long.ZERO; - return message; - } - -}; - -function createBaseVoteInfo(): VoteInfo { - return { - validator: undefined, - signedLastBlock: false - }; -} - -export const VoteInfo = { - encode(message: VoteInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.validator !== undefined) { - Validator.encode(message.validator, writer.uint32(10).fork()).ldelim(); - } - - if (message.signedLastBlock === true) { - writer.uint32(16).bool(message.signedLastBlock); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): VoteInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseVoteInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.validator = Validator.decode(reader, reader.uint32()); - break; - - case 2: - message.signedLastBlock = reader.bool(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): VoteInfo { - const message = createBaseVoteInfo(); - message.validator = object.validator !== undefined && object.validator !== null ? Validator.fromPartial(object.validator) : undefined; - message.signedLastBlock = object.signedLastBlock ?? false; - return message; - } - -}; - -function createBaseEvidence(): Evidence { - return { - type: 0, - validator: undefined, - height: Long.ZERO, - time: undefined, - totalVotingPower: Long.ZERO - }; -} - -export const Evidence = { - encode(message: Evidence, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.type !== 0) { - writer.uint32(8).int32(message.type); - } - - if (message.validator !== undefined) { - Validator.encode(message.validator, writer.uint32(18).fork()).ldelim(); - } - - if (!message.height.isZero()) { - writer.uint32(24).int64(message.height); - } - - if (message.time !== undefined) { - Timestamp.encode(toTimestamp(message.time), writer.uint32(34).fork()).ldelim(); - } - - if (!message.totalVotingPower.isZero()) { - writer.uint32(40).int64(message.totalVotingPower); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Evidence { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEvidence(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.type = (reader.int32() as any); - break; - - case 2: - message.validator = Validator.decode(reader, reader.uint32()); - break; - - case 3: - message.height = (reader.int64() as Long); - break; - - case 4: - message.time = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - case 5: - message.totalVotingPower = (reader.int64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Evidence { - const message = createBaseEvidence(); - message.type = object.type ?? 0; - message.validator = object.validator !== undefined && object.validator !== null ? Validator.fromPartial(object.validator) : undefined; - message.height = object.height !== undefined && object.height !== null ? Long.fromValue(object.height) : Long.ZERO; - message.time = object.time ?? undefined; - message.totalVotingPower = object.totalVotingPower !== undefined && object.totalVotingPower !== null ? Long.fromValue(object.totalVotingPower) : Long.ZERO; - return message; - } - -}; - -function createBaseSnapshot(): Snapshot { - return { - height: Long.UZERO, - format: 0, - chunks: 0, - hash: new Uint8Array(), - metadata: new Uint8Array() - }; -} - -export const Snapshot = { - encode(message: Snapshot, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.height.isZero()) { - writer.uint32(8).uint64(message.height); - } - - if (message.format !== 0) { - writer.uint32(16).uint32(message.format); - } - - if (message.chunks !== 0) { - writer.uint32(24).uint32(message.chunks); - } - - if (message.hash.length !== 0) { - writer.uint32(34).bytes(message.hash); - } - - if (message.metadata.length !== 0) { - writer.uint32(42).bytes(message.metadata); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Snapshot { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSnapshot(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.height = (reader.uint64() as Long); - break; - - case 2: - message.format = reader.uint32(); - break; - - case 3: - message.chunks = reader.uint32(); - break; - - case 4: - message.hash = reader.bytes(); - break; - - case 5: - message.metadata = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Snapshot { - const message = createBaseSnapshot(); - message.height = object.height !== undefined && object.height !== null ? Long.fromValue(object.height) : Long.UZERO; - message.format = object.format ?? 0; - message.chunks = object.chunks ?? 0; - message.hash = object.hash ?? new Uint8Array(); - message.metadata = object.metadata ?? new Uint8Array(); - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/tendermint/bundle.ts b/packages/codegen/src/tendermint/bundle.ts deleted file mode 100644 index f85a7599..00000000 --- a/packages/codegen/src/tendermint/bundle.ts +++ /dev/null @@ -1,32 +0,0 @@ -import * as _134 from "./abci/types"; -import * as _135 from "./crypto/keys"; -import * as _136 from "./crypto/proof"; -import * as _137 from "./libs/bits/types"; -import * as _138 from "./p2p/types"; -import * as _139 from "./types/block"; -import * as _140 from "./types/evidence"; -import * as _141 from "./types/params"; -import * as _142 from "./types/types"; -import * as _143 from "./types/validator"; -import * as _144 from "./version/types"; -export namespace tendermint { - export const abci = { ..._134 - }; - export const crypto = { ..._135, - ..._136 - }; - export namespace libs { - export const bits = { ..._137 - }; - } - export const p2p = { ..._138 - }; - export const types = { ..._139, - ..._140, - ..._141, - ..._142, - ..._143 - }; - export const version = { ..._144 - }; -} \ No newline at end of file diff --git a/packages/codegen/src/tendermint/crypto/keys.ts b/packages/codegen/src/tendermint/crypto/keys.ts deleted file mode 100644 index 21481d01..00000000 --- a/packages/codegen/src/tendermint/crypto/keys.ts +++ /dev/null @@ -1,69 +0,0 @@ -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../helpers"; -/** PublicKey defines the keys available for use with Tendermint Validators */ - -export interface PublicKey { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; -} -/** PublicKey defines the keys available for use with Tendermint Validators */ - -export interface PublicKeySDKType { - ed25519?: Uint8Array; - secp256k1?: Uint8Array; -} - -function createBasePublicKey(): PublicKey { - return { - ed25519: undefined, - secp256k1: undefined - }; -} - -export const PublicKey = { - encode(message: PublicKey, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.ed25519 !== undefined) { - writer.uint32(10).bytes(message.ed25519); - } - - if (message.secp256k1 !== undefined) { - writer.uint32(18).bytes(message.secp256k1); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PublicKey { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePublicKey(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.ed25519 = reader.bytes(); - break; - - case 2: - message.secp256k1 = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PublicKey { - const message = createBasePublicKey(); - message.ed25519 = object.ed25519 ?? undefined; - message.secp256k1 = object.secp256k1 ?? undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/tendermint/crypto/proof.ts b/packages/codegen/src/tendermint/crypto/proof.ts deleted file mode 100644 index 6502ae72..00000000 --- a/packages/codegen/src/tendermint/crypto/proof.ts +++ /dev/null @@ -1,372 +0,0 @@ -import { Long, DeepPartial } from "../../helpers"; -import * as _m0 from "protobufjs/minimal"; -export interface Proof { - total: Long; - index: Long; - leafHash: Uint8Array; - aunts: Uint8Array[]; -} -export interface ProofSDKType { - total: Long; - index: Long; - leaf_hash: Uint8Array; - aunts: Uint8Array[]; -} -export interface ValueOp { - /** Encoded in ProofOp.Key. */ - key: Uint8Array; - /** To encode in ProofOp.Data */ - - proof?: Proof; -} -export interface ValueOpSDKType { - key: Uint8Array; - proof?: ProofSDKType; -} -export interface DominoOp { - key: string; - input: string; - output: string; -} -export interface DominoOpSDKType { - key: string; - input: string; - output: string; -} -/** - * ProofOp defines an operation used for calculating Merkle root - * The data could be arbitrary format, providing nessecary data - * for example neighbouring node hash - */ - -export interface ProofOp { - type: string; - key: Uint8Array; - data: Uint8Array; -} -/** - * ProofOp defines an operation used for calculating Merkle root - * The data could be arbitrary format, providing nessecary data - * for example neighbouring node hash - */ - -export interface ProofOpSDKType { - type: string; - key: Uint8Array; - data: Uint8Array; -} -/** ProofOps is Merkle proof defined by the list of ProofOps */ - -export interface ProofOps { - ops: ProofOp[]; -} -/** ProofOps is Merkle proof defined by the list of ProofOps */ - -export interface ProofOpsSDKType { - ops: ProofOpSDKType[]; -} - -function createBaseProof(): Proof { - return { - total: Long.ZERO, - index: Long.ZERO, - leafHash: new Uint8Array(), - aunts: [] - }; -} - -export const Proof = { - encode(message: Proof, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.total.isZero()) { - writer.uint32(8).int64(message.total); - } - - if (!message.index.isZero()) { - writer.uint32(16).int64(message.index); - } - - if (message.leafHash.length !== 0) { - writer.uint32(26).bytes(message.leafHash); - } - - for (const v of message.aunts) { - writer.uint32(34).bytes(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Proof { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseProof(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.total = (reader.int64() as Long); - break; - - case 2: - message.index = (reader.int64() as Long); - break; - - case 3: - message.leafHash = reader.bytes(); - break; - - case 4: - message.aunts.push(reader.bytes()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Proof { - const message = createBaseProof(); - message.total = object.total !== undefined && object.total !== null ? Long.fromValue(object.total) : Long.ZERO; - message.index = object.index !== undefined && object.index !== null ? Long.fromValue(object.index) : Long.ZERO; - message.leafHash = object.leafHash ?? new Uint8Array(); - message.aunts = object.aunts?.map(e => e) || []; - return message; - } - -}; - -function createBaseValueOp(): ValueOp { - return { - key: new Uint8Array(), - proof: undefined - }; -} - -export const ValueOp = { - encode(message: ValueOp, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); - } - - if (message.proof !== undefined) { - Proof.encode(message.proof, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ValueOp { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValueOp(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.key = reader.bytes(); - break; - - case 2: - message.proof = Proof.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ValueOp { - const message = createBaseValueOp(); - message.key = object.key ?? new Uint8Array(); - message.proof = object.proof !== undefined && object.proof !== null ? Proof.fromPartial(object.proof) : undefined; - return message; - } - -}; - -function createBaseDominoOp(): DominoOp { - return { - key: "", - input: "", - output: "" - }; -} - -export const DominoOp = { - encode(message: DominoOp, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key !== "") { - writer.uint32(10).string(message.key); - } - - if (message.input !== "") { - writer.uint32(18).string(message.input); - } - - if (message.output !== "") { - writer.uint32(26).string(message.output); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): DominoOp { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDominoOp(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.key = reader.string(); - break; - - case 2: - message.input = reader.string(); - break; - - case 3: - message.output = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): DominoOp { - const message = createBaseDominoOp(); - message.key = object.key ?? ""; - message.input = object.input ?? ""; - message.output = object.output ?? ""; - return message; - } - -}; - -function createBaseProofOp(): ProofOp { - return { - type: "", - key: new Uint8Array(), - data: new Uint8Array() - }; -} - -export const ProofOp = { - encode(message: ProofOp, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.type !== "") { - writer.uint32(10).string(message.type); - } - - if (message.key.length !== 0) { - writer.uint32(18).bytes(message.key); - } - - if (message.data.length !== 0) { - writer.uint32(26).bytes(message.data); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ProofOp { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseProofOp(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.type = reader.string(); - break; - - case 2: - message.key = reader.bytes(); - break; - - case 3: - message.data = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ProofOp { - const message = createBaseProofOp(); - message.type = object.type ?? ""; - message.key = object.key ?? new Uint8Array(); - message.data = object.data ?? new Uint8Array(); - return message; - } - -}; - -function createBaseProofOps(): ProofOps { - return { - ops: [] - }; -} - -export const ProofOps = { - encode(message: ProofOps, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.ops) { - ProofOp.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ProofOps { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseProofOps(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.ops.push(ProofOp.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ProofOps { - const message = createBaseProofOps(); - message.ops = object.ops?.map(e => ProofOp.fromPartial(e)) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/tendermint/libs/bits/types.ts b/packages/codegen/src/tendermint/libs/bits/types.ts deleted file mode 100644 index 25071f01..00000000 --- a/packages/codegen/src/tendermint/libs/bits/types.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { Long, DeepPartial } from "../../../helpers"; -import * as _m0 from "protobufjs/minimal"; -export interface BitArray { - bits: Long; - elems: Long[]; -} -export interface BitArraySDKType { - bits: Long; - elems: Long[]; -} - -function createBaseBitArray(): BitArray { - return { - bits: Long.ZERO, - elems: [] - }; -} - -export const BitArray = { - encode(message: BitArray, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.bits.isZero()) { - writer.uint32(8).int64(message.bits); - } - - writer.uint32(18).fork(); - - for (const v of message.elems) { - writer.uint64(v); - } - - writer.ldelim(); - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): BitArray { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBitArray(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.bits = (reader.int64() as Long); - break; - - case 2: - if ((tag & 7) === 2) { - const end2 = reader.uint32() + reader.pos; - - while (reader.pos < end2) { - message.elems.push((reader.uint64() as Long)); - } - } else { - message.elems.push((reader.uint64() as Long)); - } - - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): BitArray { - const message = createBaseBitArray(); - message.bits = object.bits !== undefined && object.bits !== null ? Long.fromValue(object.bits) : Long.ZERO; - message.elems = object.elems?.map(e => Long.fromValue(e)) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/tendermint/p2p/types.ts b/packages/codegen/src/tendermint/p2p/types.ts deleted file mode 100644 index 64ce38af..00000000 --- a/packages/codegen/src/tendermint/p2p/types.ts +++ /dev/null @@ -1,438 +0,0 @@ -import { Timestamp } from "../../google/protobuf/timestamp"; -import { Long, DeepPartial, toTimestamp, fromTimestamp } from "../../helpers"; -import * as _m0 from "protobufjs/minimal"; -export interface ProtocolVersion { - p2p: Long; - block: Long; - app: Long; -} -export interface ProtocolVersionSDKType { - p2p: Long; - block: Long; - app: Long; -} -export interface NodeInfo { - protocolVersion?: ProtocolVersion; - nodeId: string; - listenAddr: string; - network: string; - version: string; - channels: Uint8Array; - moniker: string; - other?: NodeInfoOther; -} -export interface NodeInfoSDKType { - protocol_version?: ProtocolVersionSDKType; - node_id: string; - listen_addr: string; - network: string; - version: string; - channels: Uint8Array; - moniker: string; - other?: NodeInfoOtherSDKType; -} -export interface NodeInfoOther { - txIndex: string; - rpcAddress: string; -} -export interface NodeInfoOtherSDKType { - tx_index: string; - rpc_address: string; -} -export interface PeerInfo { - id: string; - addressInfo: PeerAddressInfo[]; - lastConnected?: Date; -} -export interface PeerInfoSDKType { - id: string; - address_info: PeerAddressInfoSDKType[]; - last_connected?: Date; -} -export interface PeerAddressInfo { - address: string; - lastDialSuccess?: Date; - lastDialFailure?: Date; - dialFailures: number; -} -export interface PeerAddressInfoSDKType { - address: string; - last_dial_success?: Date; - last_dial_failure?: Date; - dial_failures: number; -} - -function createBaseProtocolVersion(): ProtocolVersion { - return { - p2p: Long.UZERO, - block: Long.UZERO, - app: Long.UZERO - }; -} - -export const ProtocolVersion = { - encode(message: ProtocolVersion, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.p2p.isZero()) { - writer.uint32(8).uint64(message.p2p); - } - - if (!message.block.isZero()) { - writer.uint32(16).uint64(message.block); - } - - if (!message.app.isZero()) { - writer.uint32(24).uint64(message.app); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ProtocolVersion { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseProtocolVersion(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.p2p = (reader.uint64() as Long); - break; - - case 2: - message.block = (reader.uint64() as Long); - break; - - case 3: - message.app = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ProtocolVersion { - const message = createBaseProtocolVersion(); - message.p2p = object.p2p !== undefined && object.p2p !== null ? Long.fromValue(object.p2p) : Long.UZERO; - message.block = object.block !== undefined && object.block !== null ? Long.fromValue(object.block) : Long.UZERO; - message.app = object.app !== undefined && object.app !== null ? Long.fromValue(object.app) : Long.UZERO; - return message; - } - -}; - -function createBaseNodeInfo(): NodeInfo { - return { - protocolVersion: undefined, - nodeId: "", - listenAddr: "", - network: "", - version: "", - channels: new Uint8Array(), - moniker: "", - other: undefined - }; -} - -export const NodeInfo = { - encode(message: NodeInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.protocolVersion !== undefined) { - ProtocolVersion.encode(message.protocolVersion, writer.uint32(10).fork()).ldelim(); - } - - if (message.nodeId !== "") { - writer.uint32(18).string(message.nodeId); - } - - if (message.listenAddr !== "") { - writer.uint32(26).string(message.listenAddr); - } - - if (message.network !== "") { - writer.uint32(34).string(message.network); - } - - if (message.version !== "") { - writer.uint32(42).string(message.version); - } - - if (message.channels.length !== 0) { - writer.uint32(50).bytes(message.channels); - } - - if (message.moniker !== "") { - writer.uint32(58).string(message.moniker); - } - - if (message.other !== undefined) { - NodeInfoOther.encode(message.other, writer.uint32(66).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): NodeInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseNodeInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.protocolVersion = ProtocolVersion.decode(reader, reader.uint32()); - break; - - case 2: - message.nodeId = reader.string(); - break; - - case 3: - message.listenAddr = reader.string(); - break; - - case 4: - message.network = reader.string(); - break; - - case 5: - message.version = reader.string(); - break; - - case 6: - message.channels = reader.bytes(); - break; - - case 7: - message.moniker = reader.string(); - break; - - case 8: - message.other = NodeInfoOther.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): NodeInfo { - const message = createBaseNodeInfo(); - message.protocolVersion = object.protocolVersion !== undefined && object.protocolVersion !== null ? ProtocolVersion.fromPartial(object.protocolVersion) : undefined; - message.nodeId = object.nodeId ?? ""; - message.listenAddr = object.listenAddr ?? ""; - message.network = object.network ?? ""; - message.version = object.version ?? ""; - message.channels = object.channels ?? new Uint8Array(); - message.moniker = object.moniker ?? ""; - message.other = object.other !== undefined && object.other !== null ? NodeInfoOther.fromPartial(object.other) : undefined; - return message; - } - -}; - -function createBaseNodeInfoOther(): NodeInfoOther { - return { - txIndex: "", - rpcAddress: "" - }; -} - -export const NodeInfoOther = { - encode(message: NodeInfoOther, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.txIndex !== "") { - writer.uint32(10).string(message.txIndex); - } - - if (message.rpcAddress !== "") { - writer.uint32(18).string(message.rpcAddress); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): NodeInfoOther { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseNodeInfoOther(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.txIndex = reader.string(); - break; - - case 2: - message.rpcAddress = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): NodeInfoOther { - const message = createBaseNodeInfoOther(); - message.txIndex = object.txIndex ?? ""; - message.rpcAddress = object.rpcAddress ?? ""; - return message; - } - -}; - -function createBasePeerInfo(): PeerInfo { - return { - id: "", - addressInfo: [], - lastConnected: undefined - }; -} - -export const PeerInfo = { - encode(message: PeerInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.id !== "") { - writer.uint32(10).string(message.id); - } - - for (const v of message.addressInfo) { - PeerAddressInfo.encode(v!, writer.uint32(18).fork()).ldelim(); - } - - if (message.lastConnected !== undefined) { - Timestamp.encode(toTimestamp(message.lastConnected), writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PeerInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePeerInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.id = reader.string(); - break; - - case 2: - message.addressInfo.push(PeerAddressInfo.decode(reader, reader.uint32())); - break; - - case 3: - message.lastConnected = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PeerInfo { - const message = createBasePeerInfo(); - message.id = object.id ?? ""; - message.addressInfo = object.addressInfo?.map(e => PeerAddressInfo.fromPartial(e)) || []; - message.lastConnected = object.lastConnected ?? undefined; - return message; - } - -}; - -function createBasePeerAddressInfo(): PeerAddressInfo { - return { - address: "", - lastDialSuccess: undefined, - lastDialFailure: undefined, - dialFailures: 0 - }; -} - -export const PeerAddressInfo = { - encode(message: PeerAddressInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - - if (message.lastDialSuccess !== undefined) { - Timestamp.encode(toTimestamp(message.lastDialSuccess), writer.uint32(18).fork()).ldelim(); - } - - if (message.lastDialFailure !== undefined) { - Timestamp.encode(toTimestamp(message.lastDialFailure), writer.uint32(26).fork()).ldelim(); - } - - if (message.dialFailures !== 0) { - writer.uint32(32).uint32(message.dialFailures); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PeerAddressInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePeerAddressInfo(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.string(); - break; - - case 2: - message.lastDialSuccess = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - case 3: - message.lastDialFailure = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - case 4: - message.dialFailures = reader.uint32(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PeerAddressInfo { - const message = createBasePeerAddressInfo(); - message.address = object.address ?? ""; - message.lastDialSuccess = object.lastDialSuccess ?? undefined; - message.lastDialFailure = object.lastDialFailure ?? undefined; - message.dialFailures = object.dialFailures ?? 0; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/tendermint/types/block.ts b/packages/codegen/src/tendermint/types/block.ts deleted file mode 100644 index 1e384d23..00000000 --- a/packages/codegen/src/tendermint/types/block.ts +++ /dev/null @@ -1,91 +0,0 @@ -import { Header, HeaderSDKType, Data, DataSDKType, Commit, CommitSDKType } from "./types"; -import { EvidenceList, EvidenceListSDKType } from "./evidence"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial } from "../../helpers"; -export interface Block { - header?: Header; - data?: Data; - evidence?: EvidenceList; - lastCommit?: Commit; -} -export interface BlockSDKType { - header?: HeaderSDKType; - data?: DataSDKType; - evidence?: EvidenceListSDKType; - last_commit?: CommitSDKType; -} - -function createBaseBlock(): Block { - return { - header: undefined, - data: undefined, - evidence: undefined, - lastCommit: undefined - }; -} - -export const Block = { - encode(message: Block, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.header !== undefined) { - Header.encode(message.header, writer.uint32(10).fork()).ldelim(); - } - - if (message.data !== undefined) { - Data.encode(message.data, writer.uint32(18).fork()).ldelim(); - } - - if (message.evidence !== undefined) { - EvidenceList.encode(message.evidence, writer.uint32(26).fork()).ldelim(); - } - - if (message.lastCommit !== undefined) { - Commit.encode(message.lastCommit, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Block { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBlock(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.header = Header.decode(reader, reader.uint32()); - break; - - case 2: - message.data = Data.decode(reader, reader.uint32()); - break; - - case 3: - message.evidence = EvidenceList.decode(reader, reader.uint32()); - break; - - case 4: - message.lastCommit = Commit.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Block { - const message = createBaseBlock(); - message.header = object.header !== undefined && object.header !== null ? Header.fromPartial(object.header) : undefined; - message.data = object.data !== undefined && object.data !== null ? Data.fromPartial(object.data) : undefined; - message.evidence = object.evidence !== undefined && object.evidence !== null ? EvidenceList.fromPartial(object.evidence) : undefined; - message.lastCommit = object.lastCommit !== undefined && object.lastCommit !== null ? Commit.fromPartial(object.lastCommit) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/tendermint/types/evidence.ts b/packages/codegen/src/tendermint/types/evidence.ts deleted file mode 100644 index 5854403c..00000000 --- a/packages/codegen/src/tendermint/types/evidence.ts +++ /dev/null @@ -1,325 +0,0 @@ -import { Vote, VoteSDKType, LightBlock, LightBlockSDKType } from "./types"; -import { Timestamp } from "../../google/protobuf/timestamp"; -import { Validator, ValidatorSDKType } from "./validator"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long, toTimestamp, fromTimestamp } from "../../helpers"; -export interface Evidence { - duplicateVoteEvidence?: DuplicateVoteEvidence; - lightClientAttackEvidence?: LightClientAttackEvidence; -} -export interface EvidenceSDKType { - duplicate_vote_evidence?: DuplicateVoteEvidenceSDKType; - light_client_attack_evidence?: LightClientAttackEvidenceSDKType; -} -/** DuplicateVoteEvidence contains evidence of a validator signed two conflicting votes. */ - -export interface DuplicateVoteEvidence { - voteA?: Vote; - voteB?: Vote; - totalVotingPower: Long; - validatorPower: Long; - timestamp?: Date; -} -/** DuplicateVoteEvidence contains evidence of a validator signed two conflicting votes. */ - -export interface DuplicateVoteEvidenceSDKType { - vote_a?: VoteSDKType; - vote_b?: VoteSDKType; - total_voting_power: Long; - validator_power: Long; - timestamp?: Date; -} -/** LightClientAttackEvidence contains evidence of a set of validators attempting to mislead a light client. */ - -export interface LightClientAttackEvidence { - conflictingBlock?: LightBlock; - commonHeight: Long; - byzantineValidators: Validator[]; - totalVotingPower: Long; - timestamp?: Date; -} -/** LightClientAttackEvidence contains evidence of a set of validators attempting to mislead a light client. */ - -export interface LightClientAttackEvidenceSDKType { - conflicting_block?: LightBlockSDKType; - common_height: Long; - byzantine_validators: ValidatorSDKType[]; - total_voting_power: Long; - timestamp?: Date; -} -export interface EvidenceList { - evidence: Evidence[]; -} -export interface EvidenceListSDKType { - evidence: EvidenceSDKType[]; -} - -function createBaseEvidence(): Evidence { - return { - duplicateVoteEvidence: undefined, - lightClientAttackEvidence: undefined - }; -} - -export const Evidence = { - encode(message: Evidence, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.duplicateVoteEvidence !== undefined) { - DuplicateVoteEvidence.encode(message.duplicateVoteEvidence, writer.uint32(10).fork()).ldelim(); - } - - if (message.lightClientAttackEvidence !== undefined) { - LightClientAttackEvidence.encode(message.lightClientAttackEvidence, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Evidence { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEvidence(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.duplicateVoteEvidence = DuplicateVoteEvidence.decode(reader, reader.uint32()); - break; - - case 2: - message.lightClientAttackEvidence = LightClientAttackEvidence.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Evidence { - const message = createBaseEvidence(); - message.duplicateVoteEvidence = object.duplicateVoteEvidence !== undefined && object.duplicateVoteEvidence !== null ? DuplicateVoteEvidence.fromPartial(object.duplicateVoteEvidence) : undefined; - message.lightClientAttackEvidence = object.lightClientAttackEvidence !== undefined && object.lightClientAttackEvidence !== null ? LightClientAttackEvidence.fromPartial(object.lightClientAttackEvidence) : undefined; - return message; - } - -}; - -function createBaseDuplicateVoteEvidence(): DuplicateVoteEvidence { - return { - voteA: undefined, - voteB: undefined, - totalVotingPower: Long.ZERO, - validatorPower: Long.ZERO, - timestamp: undefined - }; -} - -export const DuplicateVoteEvidence = { - encode(message: DuplicateVoteEvidence, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.voteA !== undefined) { - Vote.encode(message.voteA, writer.uint32(10).fork()).ldelim(); - } - - if (message.voteB !== undefined) { - Vote.encode(message.voteB, writer.uint32(18).fork()).ldelim(); - } - - if (!message.totalVotingPower.isZero()) { - writer.uint32(24).int64(message.totalVotingPower); - } - - if (!message.validatorPower.isZero()) { - writer.uint32(32).int64(message.validatorPower); - } - - if (message.timestamp !== undefined) { - Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(42).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): DuplicateVoteEvidence { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDuplicateVoteEvidence(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.voteA = Vote.decode(reader, reader.uint32()); - break; - - case 2: - message.voteB = Vote.decode(reader, reader.uint32()); - break; - - case 3: - message.totalVotingPower = (reader.int64() as Long); - break; - - case 4: - message.validatorPower = (reader.int64() as Long); - break; - - case 5: - message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): DuplicateVoteEvidence { - const message = createBaseDuplicateVoteEvidence(); - message.voteA = object.voteA !== undefined && object.voteA !== null ? Vote.fromPartial(object.voteA) : undefined; - message.voteB = object.voteB !== undefined && object.voteB !== null ? Vote.fromPartial(object.voteB) : undefined; - message.totalVotingPower = object.totalVotingPower !== undefined && object.totalVotingPower !== null ? Long.fromValue(object.totalVotingPower) : Long.ZERO; - message.validatorPower = object.validatorPower !== undefined && object.validatorPower !== null ? Long.fromValue(object.validatorPower) : Long.ZERO; - message.timestamp = object.timestamp ?? undefined; - return message; - } - -}; - -function createBaseLightClientAttackEvidence(): LightClientAttackEvidence { - return { - conflictingBlock: undefined, - commonHeight: Long.ZERO, - byzantineValidators: [], - totalVotingPower: Long.ZERO, - timestamp: undefined - }; -} - -export const LightClientAttackEvidence = { - encode(message: LightClientAttackEvidence, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.conflictingBlock !== undefined) { - LightBlock.encode(message.conflictingBlock, writer.uint32(10).fork()).ldelim(); - } - - if (!message.commonHeight.isZero()) { - writer.uint32(16).int64(message.commonHeight); - } - - for (const v of message.byzantineValidators) { - Validator.encode(v!, writer.uint32(26).fork()).ldelim(); - } - - if (!message.totalVotingPower.isZero()) { - writer.uint32(32).int64(message.totalVotingPower); - } - - if (message.timestamp !== undefined) { - Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(42).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): LightClientAttackEvidence { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseLightClientAttackEvidence(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.conflictingBlock = LightBlock.decode(reader, reader.uint32()); - break; - - case 2: - message.commonHeight = (reader.int64() as Long); - break; - - case 3: - message.byzantineValidators.push(Validator.decode(reader, reader.uint32())); - break; - - case 4: - message.totalVotingPower = (reader.int64() as Long); - break; - - case 5: - message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): LightClientAttackEvidence { - const message = createBaseLightClientAttackEvidence(); - message.conflictingBlock = object.conflictingBlock !== undefined && object.conflictingBlock !== null ? LightBlock.fromPartial(object.conflictingBlock) : undefined; - message.commonHeight = object.commonHeight !== undefined && object.commonHeight !== null ? Long.fromValue(object.commonHeight) : Long.ZERO; - message.byzantineValidators = object.byzantineValidators?.map(e => Validator.fromPartial(e)) || []; - message.totalVotingPower = object.totalVotingPower !== undefined && object.totalVotingPower !== null ? Long.fromValue(object.totalVotingPower) : Long.ZERO; - message.timestamp = object.timestamp ?? undefined; - return message; - } - -}; - -function createBaseEvidenceList(): EvidenceList { - return { - evidence: [] - }; -} - -export const EvidenceList = { - encode(message: EvidenceList, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.evidence) { - Evidence.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): EvidenceList { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEvidenceList(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.evidence.push(Evidence.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): EvidenceList { - const message = createBaseEvidenceList(); - message.evidence = object.evidence?.map(e => Evidence.fromPartial(e)) || []; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/tendermint/types/params.ts b/packages/codegen/src/tendermint/types/params.ts deleted file mode 100644 index b34abd82..00000000 --- a/packages/codegen/src/tendermint/types/params.ts +++ /dev/null @@ -1,485 +0,0 @@ -import { Duration, DurationSDKType } from "../../google/protobuf/duration"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long } from "../../helpers"; -/** - * ConsensusParams contains consensus critical parameters that determine the - * validity of blocks. - */ - -export interface ConsensusParams { - block?: BlockParams; - evidence?: EvidenceParams; - validator?: ValidatorParams; - version?: VersionParams; -} -/** - * ConsensusParams contains consensus critical parameters that determine the - * validity of blocks. - */ - -export interface ConsensusParamsSDKType { - block?: BlockParamsSDKType; - evidence?: EvidenceParamsSDKType; - validator?: ValidatorParamsSDKType; - version?: VersionParamsSDKType; -} -/** BlockParams contains limits on the block size. */ - -export interface BlockParams { - /** - * Max block size, in bytes. - * Note: must be greater than 0 - */ - maxBytes: Long; - /** - * Max gas per block. - * Note: must be greater or equal to -1 - */ - - maxGas: Long; - /** - * Minimum time increment between consecutive blocks (in milliseconds) If the - * block header timestamp is ahead of the system clock, decrease this value. - * - * Not exposed to the application. - */ - - timeIotaMs: Long; -} -/** BlockParams contains limits on the block size. */ - -export interface BlockParamsSDKType { - max_bytes: Long; - max_gas: Long; - time_iota_ms: Long; -} -/** EvidenceParams determine how we handle evidence of malfeasance. */ - -export interface EvidenceParams { - /** - * Max age of evidence, in blocks. - * - * The basic formula for calculating this is: MaxAgeDuration / {average block - * time}. - */ - maxAgeNumBlocks: Long; - /** - * 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). - */ - - maxAgeDuration?: 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 - */ - - maxBytes: Long; -} -/** EvidenceParams determine how we handle evidence of malfeasance. */ - -export interface EvidenceParamsSDKType { - max_age_num_blocks: Long; - max_age_duration?: DurationSDKType; - max_bytes: Long; -} -/** - * ValidatorParams restrict the public key types validators can use. - * NOTE: uses ABCI pubkey naming, not Amino names. - */ - -export interface ValidatorParams { - pubKeyTypes: string[]; -} -/** - * ValidatorParams restrict the public key types validators can use. - * NOTE: uses ABCI pubkey naming, not Amino names. - */ - -export interface ValidatorParamsSDKType { - pub_key_types: string[]; -} -/** VersionParams contains the ABCI application version. */ - -export interface VersionParams { - appVersion: Long; -} -/** VersionParams contains the ABCI application version. */ - -export interface VersionParamsSDKType { - app_version: Long; -} -/** - * HashedParams is a subset of ConsensusParams. - * - * It is hashed into the Header.ConsensusHash. - */ - -export interface HashedParams { - blockMaxBytes: Long; - blockMaxGas: Long; -} -/** - * HashedParams is a subset of ConsensusParams. - * - * It is hashed into the Header.ConsensusHash. - */ - -export interface HashedParamsSDKType { - block_max_bytes: Long; - block_max_gas: Long; -} - -function createBaseConsensusParams(): ConsensusParams { - return { - block: undefined, - evidence: undefined, - validator: undefined, - version: undefined - }; -} - -export const ConsensusParams = { - encode(message: ConsensusParams, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.block !== undefined) { - BlockParams.encode(message.block, writer.uint32(10).fork()).ldelim(); - } - - if (message.evidence !== undefined) { - EvidenceParams.encode(message.evidence, writer.uint32(18).fork()).ldelim(); - } - - if (message.validator !== undefined) { - ValidatorParams.encode(message.validator, writer.uint32(26).fork()).ldelim(); - } - - if (message.version !== undefined) { - VersionParams.encode(message.version, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ConsensusParams { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseConsensusParams(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.block = BlockParams.decode(reader, reader.uint32()); - break; - - case 2: - message.evidence = EvidenceParams.decode(reader, reader.uint32()); - break; - - case 3: - message.validator = ValidatorParams.decode(reader, reader.uint32()); - break; - - case 4: - message.version = VersionParams.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ConsensusParams { - const message = createBaseConsensusParams(); - message.block = object.block !== undefined && object.block !== null ? BlockParams.fromPartial(object.block) : undefined; - message.evidence = object.evidence !== undefined && object.evidence !== null ? EvidenceParams.fromPartial(object.evidence) : undefined; - message.validator = object.validator !== undefined && object.validator !== null ? ValidatorParams.fromPartial(object.validator) : undefined; - message.version = object.version !== undefined && object.version !== null ? VersionParams.fromPartial(object.version) : undefined; - return message; - } - -}; - -function createBaseBlockParams(): BlockParams { - return { - maxBytes: Long.ZERO, - maxGas: Long.ZERO, - timeIotaMs: Long.ZERO - }; -} - -export const BlockParams = { - encode(message: BlockParams, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.maxBytes.isZero()) { - writer.uint32(8).int64(message.maxBytes); - } - - if (!message.maxGas.isZero()) { - writer.uint32(16).int64(message.maxGas); - } - - if (!message.timeIotaMs.isZero()) { - writer.uint32(24).int64(message.timeIotaMs); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): BlockParams { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBlockParams(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.maxBytes = (reader.int64() as Long); - break; - - case 2: - message.maxGas = (reader.int64() as Long); - break; - - case 3: - message.timeIotaMs = (reader.int64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): BlockParams { - const message = createBaseBlockParams(); - message.maxBytes = object.maxBytes !== undefined && object.maxBytes !== null ? Long.fromValue(object.maxBytes) : Long.ZERO; - message.maxGas = object.maxGas !== undefined && object.maxGas !== null ? Long.fromValue(object.maxGas) : Long.ZERO; - message.timeIotaMs = object.timeIotaMs !== undefined && object.timeIotaMs !== null ? Long.fromValue(object.timeIotaMs) : Long.ZERO; - return message; - } - -}; - -function createBaseEvidenceParams(): EvidenceParams { - return { - maxAgeNumBlocks: Long.ZERO, - maxAgeDuration: undefined, - maxBytes: Long.ZERO - }; -} - -export const EvidenceParams = { - encode(message: EvidenceParams, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.maxAgeNumBlocks.isZero()) { - writer.uint32(8).int64(message.maxAgeNumBlocks); - } - - if (message.maxAgeDuration !== undefined) { - Duration.encode(message.maxAgeDuration, writer.uint32(18).fork()).ldelim(); - } - - if (!message.maxBytes.isZero()) { - writer.uint32(24).int64(message.maxBytes); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): EvidenceParams { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEvidenceParams(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.maxAgeNumBlocks = (reader.int64() as Long); - break; - - case 2: - message.maxAgeDuration = Duration.decode(reader, reader.uint32()); - break; - - case 3: - message.maxBytes = (reader.int64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): EvidenceParams { - const message = createBaseEvidenceParams(); - message.maxAgeNumBlocks = object.maxAgeNumBlocks !== undefined && object.maxAgeNumBlocks !== null ? Long.fromValue(object.maxAgeNumBlocks) : Long.ZERO; - message.maxAgeDuration = object.maxAgeDuration !== undefined && object.maxAgeDuration !== null ? Duration.fromPartial(object.maxAgeDuration) : undefined; - message.maxBytes = object.maxBytes !== undefined && object.maxBytes !== null ? Long.fromValue(object.maxBytes) : Long.ZERO; - return message; - } - -}; - -function createBaseValidatorParams(): ValidatorParams { - return { - pubKeyTypes: [] - }; -} - -export const ValidatorParams = { - encode(message: ValidatorParams, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.pubKeyTypes) { - writer.uint32(10).string(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorParams { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidatorParams(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.pubKeyTypes.push(reader.string()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ValidatorParams { - const message = createBaseValidatorParams(); - message.pubKeyTypes = object.pubKeyTypes?.map(e => e) || []; - return message; - } - -}; - -function createBaseVersionParams(): VersionParams { - return { - appVersion: Long.UZERO - }; -} - -export const VersionParams = { - encode(message: VersionParams, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.appVersion.isZero()) { - writer.uint32(8).uint64(message.appVersion); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): VersionParams { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseVersionParams(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.appVersion = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): VersionParams { - const message = createBaseVersionParams(); - message.appVersion = object.appVersion !== undefined && object.appVersion !== null ? Long.fromValue(object.appVersion) : Long.UZERO; - return message; - } - -}; - -function createBaseHashedParams(): HashedParams { - return { - blockMaxBytes: Long.ZERO, - blockMaxGas: Long.ZERO - }; -} - -export const HashedParams = { - encode(message: HashedParams, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.blockMaxBytes.isZero()) { - writer.uint32(8).int64(message.blockMaxBytes); - } - - if (!message.blockMaxGas.isZero()) { - writer.uint32(16).int64(message.blockMaxGas); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): HashedParams { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseHashedParams(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.blockMaxBytes = (reader.int64() as Long); - break; - - case 2: - message.blockMaxGas = (reader.int64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): HashedParams { - const message = createBaseHashedParams(); - message.blockMaxBytes = object.blockMaxBytes !== undefined && object.blockMaxBytes !== null ? Long.fromValue(object.blockMaxBytes) : Long.ZERO; - message.blockMaxGas = object.blockMaxGas !== undefined && object.blockMaxGas !== null ? Long.fromValue(object.blockMaxGas) : Long.ZERO; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/tendermint/types/types.ts b/packages/codegen/src/tendermint/types/types.ts deleted file mode 100644 index d3b3761f..00000000 --- a/packages/codegen/src/tendermint/types/types.ts +++ /dev/null @@ -1,1357 +0,0 @@ -import { Proof, ProofSDKType } from "../crypto/proof"; -import { Consensus, ConsensusSDKType } from "../version/types"; -import { Timestamp } from "../../google/protobuf/timestamp"; -import { ValidatorSet, ValidatorSetSDKType } from "./validator"; -import * as _m0 from "protobufjs/minimal"; -import { DeepPartial, Long, toTimestamp, fromTimestamp } from "../../helpers"; -/** BlockIdFlag indicates which BlcokID the signature is for */ - -export enum BlockIDFlag { - BLOCK_ID_FLAG_UNKNOWN = 0, - BLOCK_ID_FLAG_ABSENT = 1, - BLOCK_ID_FLAG_COMMIT = 2, - BLOCK_ID_FLAG_NIL = 3, - UNRECOGNIZED = -1, -} -export const BlockIDFlagSDKType = BlockIDFlag; -export function blockIDFlagFromJSON(object: any): BlockIDFlag { - switch (object) { - case 0: - case "BLOCK_ID_FLAG_UNKNOWN": - return BlockIDFlag.BLOCK_ID_FLAG_UNKNOWN; - - case 1: - case "BLOCK_ID_FLAG_ABSENT": - return BlockIDFlag.BLOCK_ID_FLAG_ABSENT; - - case 2: - case "BLOCK_ID_FLAG_COMMIT": - return BlockIDFlag.BLOCK_ID_FLAG_COMMIT; - - case 3: - case "BLOCK_ID_FLAG_NIL": - return BlockIDFlag.BLOCK_ID_FLAG_NIL; - - case -1: - case "UNRECOGNIZED": - default: - return BlockIDFlag.UNRECOGNIZED; - } -} -export function blockIDFlagToJSON(object: BlockIDFlag): string { - switch (object) { - case BlockIDFlag.BLOCK_ID_FLAG_UNKNOWN: - return "BLOCK_ID_FLAG_UNKNOWN"; - - case BlockIDFlag.BLOCK_ID_FLAG_ABSENT: - return "BLOCK_ID_FLAG_ABSENT"; - - case BlockIDFlag.BLOCK_ID_FLAG_COMMIT: - return "BLOCK_ID_FLAG_COMMIT"; - - case BlockIDFlag.BLOCK_ID_FLAG_NIL: - return "BLOCK_ID_FLAG_NIL"; - - case BlockIDFlag.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** SignedMsgType is a type of signed message in the consensus. */ - -export enum SignedMsgType { - SIGNED_MSG_TYPE_UNKNOWN = 0, - - /** SIGNED_MSG_TYPE_PREVOTE - Votes */ - SIGNED_MSG_TYPE_PREVOTE = 1, - SIGNED_MSG_TYPE_PRECOMMIT = 2, - - /** SIGNED_MSG_TYPE_PROPOSAL - Proposals */ - SIGNED_MSG_TYPE_PROPOSAL = 32, - UNRECOGNIZED = -1, -} -export const SignedMsgTypeSDKType = SignedMsgType; -export function signedMsgTypeFromJSON(object: any): SignedMsgType { - switch (object) { - case 0: - case "SIGNED_MSG_TYPE_UNKNOWN": - return SignedMsgType.SIGNED_MSG_TYPE_UNKNOWN; - - case 1: - case "SIGNED_MSG_TYPE_PREVOTE": - return SignedMsgType.SIGNED_MSG_TYPE_PREVOTE; - - case 2: - case "SIGNED_MSG_TYPE_PRECOMMIT": - return SignedMsgType.SIGNED_MSG_TYPE_PRECOMMIT; - - case 32: - case "SIGNED_MSG_TYPE_PROPOSAL": - return SignedMsgType.SIGNED_MSG_TYPE_PROPOSAL; - - case -1: - case "UNRECOGNIZED": - default: - return SignedMsgType.UNRECOGNIZED; - } -} -export function signedMsgTypeToJSON(object: SignedMsgType): string { - switch (object) { - case SignedMsgType.SIGNED_MSG_TYPE_UNKNOWN: - return "SIGNED_MSG_TYPE_UNKNOWN"; - - case SignedMsgType.SIGNED_MSG_TYPE_PREVOTE: - return "SIGNED_MSG_TYPE_PREVOTE"; - - case SignedMsgType.SIGNED_MSG_TYPE_PRECOMMIT: - return "SIGNED_MSG_TYPE_PRECOMMIT"; - - case SignedMsgType.SIGNED_MSG_TYPE_PROPOSAL: - return "SIGNED_MSG_TYPE_PROPOSAL"; - - case SignedMsgType.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -/** PartsetHeader */ - -export interface PartSetHeader { - total: number; - hash: Uint8Array; -} -/** PartsetHeader */ - -export interface PartSetHeaderSDKType { - total: number; - hash: Uint8Array; -} -export interface Part { - index: number; - bytes: Uint8Array; - proof?: Proof; -} -export interface PartSDKType { - index: number; - bytes: Uint8Array; - proof?: ProofSDKType; -} -/** BlockID */ - -export interface BlockID { - hash: Uint8Array; - partSetHeader?: PartSetHeader; -} -/** BlockID */ - -export interface BlockIDSDKType { - hash: Uint8Array; - part_set_header?: PartSetHeaderSDKType; -} -/** Header defines the structure of a Tendermint block header. */ - -export interface Header { - /** basic block info */ - version?: Consensus; - chainId: string; - height: Long; - time?: Date; - /** prev block info */ - - lastBlockId?: BlockID; - /** hashes of block data */ - - lastCommitHash: Uint8Array; - dataHash: Uint8Array; - /** hashes from the app output from the prev block */ - - validatorsHash: Uint8Array; - /** validators for the next block */ - - nextValidatorsHash: Uint8Array; - /** consensus params for current block */ - - consensusHash: Uint8Array; - /** state after txs from the previous block */ - - appHash: Uint8Array; - lastResultsHash: Uint8Array; - /** consensus info */ - - evidenceHash: Uint8Array; - /** original proposer of the block */ - - proposerAddress: Uint8Array; -} -/** Header defines the structure of a Tendermint block header. */ - -export interface HeaderSDKType { - version?: ConsensusSDKType; - chain_id: string; - height: Long; - time?: Date; - last_block_id?: BlockIDSDKType; - last_commit_hash: Uint8Array; - data_hash: Uint8Array; - validators_hash: Uint8Array; - next_validators_hash: Uint8Array; - consensus_hash: Uint8Array; - app_hash: Uint8Array; - last_results_hash: Uint8Array; - evidence_hash: Uint8Array; - proposer_address: Uint8Array; -} -/** Data contains the set of transactions included in the block */ - -export interface 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. - */ - txs: Uint8Array[]; -} -/** Data contains the set of transactions included in the block */ - -export interface DataSDKType { - txs: Uint8Array[]; -} -/** - * Vote represents a prevote, precommit, or commit vote from validators for - * consensus. - */ - -export interface Vote { - type: SignedMsgType; - height: Long; - round: number; - /** zero if vote is nil. */ - - blockId?: BlockID; - timestamp?: Date; - validatorAddress: Uint8Array; - validatorIndex: number; - signature: Uint8Array; -} -/** - * Vote represents a prevote, precommit, or commit vote from validators for - * consensus. - */ - -export interface VoteSDKType { - type: SignedMsgType; - height: Long; - round: number; - block_id?: BlockIDSDKType; - timestamp?: Date; - validator_address: Uint8Array; - validator_index: number; - signature: Uint8Array; -} -/** Commit contains the evidence that a block was committed by a set of validators. */ - -export interface Commit { - height: Long; - round: number; - blockId?: BlockID; - signatures: CommitSig[]; -} -/** Commit contains the evidence that a block was committed by a set of validators. */ - -export interface CommitSDKType { - height: Long; - round: number; - block_id?: BlockIDSDKType; - signatures: CommitSigSDKType[]; -} -/** CommitSig is a part of the Vote included in a Commit. */ - -export interface CommitSig { - blockIdFlag: BlockIDFlag; - validatorAddress: Uint8Array; - timestamp?: Date; - signature: Uint8Array; -} -/** CommitSig is a part of the Vote included in a Commit. */ - -export interface CommitSigSDKType { - block_id_flag: BlockIDFlag; - validator_address: Uint8Array; - timestamp?: Date; - signature: Uint8Array; -} -export interface Proposal { - type: SignedMsgType; - height: Long; - round: number; - polRound: number; - blockId?: BlockID; - timestamp?: Date; - signature: Uint8Array; -} -export interface ProposalSDKType { - type: SignedMsgType; - height: Long; - round: number; - pol_round: number; - block_id?: BlockIDSDKType; - timestamp?: Date; - signature: Uint8Array; -} -export interface SignedHeader { - header?: Header; - commit?: Commit; -} -export interface SignedHeaderSDKType { - header?: HeaderSDKType; - commit?: CommitSDKType; -} -export interface LightBlock { - signedHeader?: SignedHeader; - validatorSet?: ValidatorSet; -} -export interface LightBlockSDKType { - signed_header?: SignedHeaderSDKType; - validator_set?: ValidatorSetSDKType; -} -export interface BlockMeta { - blockId?: BlockID; - blockSize: Long; - header?: Header; - numTxs: Long; -} -export interface BlockMetaSDKType { - block_id?: BlockIDSDKType; - block_size: Long; - header?: HeaderSDKType; - num_txs: Long; -} -/** TxProof represents a Merkle proof of the presence of a transaction in the Merkle tree. */ - -export interface TxProof { - rootHash: Uint8Array; - data: Uint8Array; - proof?: Proof; -} -/** TxProof represents a Merkle proof of the presence of a transaction in the Merkle tree. */ - -export interface TxProofSDKType { - root_hash: Uint8Array; - data: Uint8Array; - proof?: ProofSDKType; -} - -function createBasePartSetHeader(): PartSetHeader { - return { - total: 0, - hash: new Uint8Array() - }; -} - -export const PartSetHeader = { - encode(message: PartSetHeader, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.total !== 0) { - writer.uint32(8).uint32(message.total); - } - - if (message.hash.length !== 0) { - writer.uint32(18).bytes(message.hash); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PartSetHeader { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePartSetHeader(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.total = reader.uint32(); - break; - - case 2: - message.hash = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): PartSetHeader { - const message = createBasePartSetHeader(); - message.total = object.total ?? 0; - message.hash = object.hash ?? new Uint8Array(); - return message; - } - -}; - -function createBasePart(): Part { - return { - index: 0, - bytes: new Uint8Array(), - proof: undefined - }; -} - -export const Part = { - encode(message: Part, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.index !== 0) { - writer.uint32(8).uint32(message.index); - } - - if (message.bytes.length !== 0) { - writer.uint32(18).bytes(message.bytes); - } - - if (message.proof !== undefined) { - Proof.encode(message.proof, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Part { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePart(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.index = reader.uint32(); - break; - - case 2: - message.bytes = reader.bytes(); - break; - - case 3: - message.proof = Proof.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Part { - const message = createBasePart(); - message.index = object.index ?? 0; - message.bytes = object.bytes ?? new Uint8Array(); - message.proof = object.proof !== undefined && object.proof !== null ? Proof.fromPartial(object.proof) : undefined; - return message; - } - -}; - -function createBaseBlockID(): BlockID { - return { - hash: new Uint8Array(), - partSetHeader: undefined - }; -} - -export const BlockID = { - encode(message: BlockID, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.hash.length !== 0) { - writer.uint32(10).bytes(message.hash); - } - - if (message.partSetHeader !== undefined) { - PartSetHeader.encode(message.partSetHeader, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): BlockID { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBlockID(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.hash = reader.bytes(); - break; - - case 2: - message.partSetHeader = PartSetHeader.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): BlockID { - const message = createBaseBlockID(); - message.hash = object.hash ?? new Uint8Array(); - message.partSetHeader = object.partSetHeader !== undefined && object.partSetHeader !== null ? PartSetHeader.fromPartial(object.partSetHeader) : undefined; - return message; - } - -}; - -function createBaseHeader(): Header { - return { - version: undefined, - chainId: "", - height: Long.ZERO, - time: undefined, - lastBlockId: undefined, - lastCommitHash: new Uint8Array(), - dataHash: new Uint8Array(), - validatorsHash: new Uint8Array(), - nextValidatorsHash: new Uint8Array(), - consensusHash: new Uint8Array(), - appHash: new Uint8Array(), - lastResultsHash: new Uint8Array(), - evidenceHash: new Uint8Array(), - proposerAddress: new Uint8Array() - }; -} - -export const Header = { - encode(message: Header, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.version !== undefined) { - Consensus.encode(message.version, writer.uint32(10).fork()).ldelim(); - } - - if (message.chainId !== "") { - writer.uint32(18).string(message.chainId); - } - - if (!message.height.isZero()) { - writer.uint32(24).int64(message.height); - } - - if (message.time !== undefined) { - Timestamp.encode(toTimestamp(message.time), writer.uint32(34).fork()).ldelim(); - } - - if (message.lastBlockId !== undefined) { - BlockID.encode(message.lastBlockId, writer.uint32(42).fork()).ldelim(); - } - - if (message.lastCommitHash.length !== 0) { - writer.uint32(50).bytes(message.lastCommitHash); - } - - if (message.dataHash.length !== 0) { - writer.uint32(58).bytes(message.dataHash); - } - - if (message.validatorsHash.length !== 0) { - writer.uint32(66).bytes(message.validatorsHash); - } - - if (message.nextValidatorsHash.length !== 0) { - writer.uint32(74).bytes(message.nextValidatorsHash); - } - - if (message.consensusHash.length !== 0) { - writer.uint32(82).bytes(message.consensusHash); - } - - if (message.appHash.length !== 0) { - writer.uint32(90).bytes(message.appHash); - } - - if (message.lastResultsHash.length !== 0) { - writer.uint32(98).bytes(message.lastResultsHash); - } - - if (message.evidenceHash.length !== 0) { - writer.uint32(106).bytes(message.evidenceHash); - } - - if (message.proposerAddress.length !== 0) { - writer.uint32(114).bytes(message.proposerAddress); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Header { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseHeader(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.version = Consensus.decode(reader, reader.uint32()); - break; - - case 2: - message.chainId = reader.string(); - break; - - case 3: - message.height = (reader.int64() as Long); - break; - - case 4: - message.time = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - case 5: - message.lastBlockId = BlockID.decode(reader, reader.uint32()); - break; - - case 6: - message.lastCommitHash = reader.bytes(); - break; - - case 7: - message.dataHash = reader.bytes(); - break; - - case 8: - message.validatorsHash = reader.bytes(); - break; - - case 9: - message.nextValidatorsHash = reader.bytes(); - break; - - case 10: - message.consensusHash = reader.bytes(); - break; - - case 11: - message.appHash = reader.bytes(); - break; - - case 12: - message.lastResultsHash = reader.bytes(); - break; - - case 13: - message.evidenceHash = reader.bytes(); - break; - - case 14: - message.proposerAddress = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial
): Header { - const message = createBaseHeader(); - message.version = object.version !== undefined && object.version !== null ? Consensus.fromPartial(object.version) : undefined; - message.chainId = object.chainId ?? ""; - message.height = object.height !== undefined && object.height !== null ? Long.fromValue(object.height) : Long.ZERO; - message.time = object.time ?? undefined; - message.lastBlockId = object.lastBlockId !== undefined && object.lastBlockId !== null ? BlockID.fromPartial(object.lastBlockId) : undefined; - message.lastCommitHash = object.lastCommitHash ?? new Uint8Array(); - message.dataHash = object.dataHash ?? new Uint8Array(); - message.validatorsHash = object.validatorsHash ?? new Uint8Array(); - message.nextValidatorsHash = object.nextValidatorsHash ?? new Uint8Array(); - message.consensusHash = object.consensusHash ?? new Uint8Array(); - message.appHash = object.appHash ?? new Uint8Array(); - message.lastResultsHash = object.lastResultsHash ?? new Uint8Array(); - message.evidenceHash = object.evidenceHash ?? new Uint8Array(); - message.proposerAddress = object.proposerAddress ?? new Uint8Array(); - return message; - } - -}; - -function createBaseData(): Data { - return { - txs: [] - }; -} - -export const Data = { - encode(message: Data, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.txs) { - writer.uint32(10).bytes(v!); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Data { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseData(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.txs.push(reader.bytes()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Data { - const message = createBaseData(); - message.txs = object.txs?.map(e => e) || []; - return message; - } - -}; - -function createBaseVote(): Vote { - return { - type: 0, - height: Long.ZERO, - round: 0, - blockId: undefined, - timestamp: undefined, - validatorAddress: new Uint8Array(), - validatorIndex: 0, - signature: new Uint8Array() - }; -} - -export const Vote = { - encode(message: Vote, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.type !== 0) { - writer.uint32(8).int32(message.type); - } - - if (!message.height.isZero()) { - writer.uint32(16).int64(message.height); - } - - if (message.round !== 0) { - writer.uint32(24).int32(message.round); - } - - if (message.blockId !== undefined) { - BlockID.encode(message.blockId, writer.uint32(34).fork()).ldelim(); - } - - if (message.timestamp !== undefined) { - Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(42).fork()).ldelim(); - } - - if (message.validatorAddress.length !== 0) { - writer.uint32(50).bytes(message.validatorAddress); - } - - if (message.validatorIndex !== 0) { - writer.uint32(56).int32(message.validatorIndex); - } - - if (message.signature.length !== 0) { - writer.uint32(66).bytes(message.signature); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Vote { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseVote(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.type = (reader.int32() as any); - break; - - case 2: - message.height = (reader.int64() as Long); - break; - - case 3: - message.round = reader.int32(); - break; - - case 4: - message.blockId = BlockID.decode(reader, reader.uint32()); - break; - - case 5: - message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - case 6: - message.validatorAddress = reader.bytes(); - break; - - case 7: - message.validatorIndex = reader.int32(); - break; - - case 8: - message.signature = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Vote { - const message = createBaseVote(); - message.type = object.type ?? 0; - message.height = object.height !== undefined && object.height !== null ? Long.fromValue(object.height) : Long.ZERO; - message.round = object.round ?? 0; - message.blockId = object.blockId !== undefined && object.blockId !== null ? BlockID.fromPartial(object.blockId) : undefined; - message.timestamp = object.timestamp ?? undefined; - message.validatorAddress = object.validatorAddress ?? new Uint8Array(); - message.validatorIndex = object.validatorIndex ?? 0; - message.signature = object.signature ?? new Uint8Array(); - return message; - } - -}; - -function createBaseCommit(): Commit { - return { - height: Long.ZERO, - round: 0, - blockId: undefined, - signatures: [] - }; -} - -export const Commit = { - encode(message: Commit, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.height.isZero()) { - writer.uint32(8).int64(message.height); - } - - if (message.round !== 0) { - writer.uint32(16).int32(message.round); - } - - if (message.blockId !== undefined) { - BlockID.encode(message.blockId, writer.uint32(26).fork()).ldelim(); - } - - for (const v of message.signatures) { - CommitSig.encode(v!, writer.uint32(34).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Commit { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCommit(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.height = (reader.int64() as Long); - break; - - case 2: - message.round = reader.int32(); - break; - - case 3: - message.blockId = BlockID.decode(reader, reader.uint32()); - break; - - case 4: - message.signatures.push(CommitSig.decode(reader, reader.uint32())); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Commit { - const message = createBaseCommit(); - message.height = object.height !== undefined && object.height !== null ? Long.fromValue(object.height) : Long.ZERO; - message.round = object.round ?? 0; - message.blockId = object.blockId !== undefined && object.blockId !== null ? BlockID.fromPartial(object.blockId) : undefined; - message.signatures = object.signatures?.map(e => CommitSig.fromPartial(e)) || []; - return message; - } - -}; - -function createBaseCommitSig(): CommitSig { - return { - blockIdFlag: 0, - validatorAddress: new Uint8Array(), - timestamp: undefined, - signature: new Uint8Array() - }; -} - -export const CommitSig = { - encode(message: CommitSig, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.blockIdFlag !== 0) { - writer.uint32(8).int32(message.blockIdFlag); - } - - if (message.validatorAddress.length !== 0) { - writer.uint32(18).bytes(message.validatorAddress); - } - - if (message.timestamp !== undefined) { - Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(26).fork()).ldelim(); - } - - if (message.signature.length !== 0) { - writer.uint32(34).bytes(message.signature); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): CommitSig { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCommitSig(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.blockIdFlag = (reader.int32() as any); - break; - - case 2: - message.validatorAddress = reader.bytes(); - break; - - case 3: - message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - case 4: - message.signature = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): CommitSig { - const message = createBaseCommitSig(); - message.blockIdFlag = object.blockIdFlag ?? 0; - message.validatorAddress = object.validatorAddress ?? new Uint8Array(); - message.timestamp = object.timestamp ?? undefined; - message.signature = object.signature ?? new Uint8Array(); - return message; - } - -}; - -function createBaseProposal(): Proposal { - return { - type: 0, - height: Long.ZERO, - round: 0, - polRound: 0, - blockId: undefined, - timestamp: undefined, - signature: new Uint8Array() - }; -} - -export const Proposal = { - encode(message: Proposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.type !== 0) { - writer.uint32(8).int32(message.type); - } - - if (!message.height.isZero()) { - writer.uint32(16).int64(message.height); - } - - if (message.round !== 0) { - writer.uint32(24).int32(message.round); - } - - if (message.polRound !== 0) { - writer.uint32(32).int32(message.polRound); - } - - if (message.blockId !== undefined) { - BlockID.encode(message.blockId, writer.uint32(42).fork()).ldelim(); - } - - if (message.timestamp !== undefined) { - Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(50).fork()).ldelim(); - } - - if (message.signature.length !== 0) { - writer.uint32(58).bytes(message.signature); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Proposal { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseProposal(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.type = (reader.int32() as any); - break; - - case 2: - message.height = (reader.int64() as Long); - break; - - case 3: - message.round = reader.int32(); - break; - - case 4: - message.polRound = reader.int32(); - break; - - case 5: - message.blockId = BlockID.decode(reader, reader.uint32()); - break; - - case 6: - message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32())); - break; - - case 7: - message.signature = reader.bytes(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Proposal { - const message = createBaseProposal(); - message.type = object.type ?? 0; - message.height = object.height !== undefined && object.height !== null ? Long.fromValue(object.height) : Long.ZERO; - message.round = object.round ?? 0; - message.polRound = object.polRound ?? 0; - message.blockId = object.blockId !== undefined && object.blockId !== null ? BlockID.fromPartial(object.blockId) : undefined; - message.timestamp = object.timestamp ?? undefined; - message.signature = object.signature ?? new Uint8Array(); - return message; - } - -}; - -function createBaseSignedHeader(): SignedHeader { - return { - header: undefined, - commit: undefined - }; -} - -export const SignedHeader = { - encode(message: SignedHeader, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.header !== undefined) { - Header.encode(message.header, writer.uint32(10).fork()).ldelim(); - } - - if (message.commit !== undefined) { - Commit.encode(message.commit, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SignedHeader { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSignedHeader(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.header = Header.decode(reader, reader.uint32()); - break; - - case 2: - message.commit = Commit.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SignedHeader { - const message = createBaseSignedHeader(); - message.header = object.header !== undefined && object.header !== null ? Header.fromPartial(object.header) : undefined; - message.commit = object.commit !== undefined && object.commit !== null ? Commit.fromPartial(object.commit) : undefined; - return message; - } - -}; - -function createBaseLightBlock(): LightBlock { - return { - signedHeader: undefined, - validatorSet: undefined - }; -} - -export const LightBlock = { - encode(message: LightBlock, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.signedHeader !== undefined) { - SignedHeader.encode(message.signedHeader, writer.uint32(10).fork()).ldelim(); - } - - if (message.validatorSet !== undefined) { - ValidatorSet.encode(message.validatorSet, writer.uint32(18).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): LightBlock { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseLightBlock(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.signedHeader = SignedHeader.decode(reader, reader.uint32()); - break; - - case 2: - message.validatorSet = ValidatorSet.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): LightBlock { - const message = createBaseLightBlock(); - message.signedHeader = object.signedHeader !== undefined && object.signedHeader !== null ? SignedHeader.fromPartial(object.signedHeader) : undefined; - message.validatorSet = object.validatorSet !== undefined && object.validatorSet !== null ? ValidatorSet.fromPartial(object.validatorSet) : undefined; - return message; - } - -}; - -function createBaseBlockMeta(): BlockMeta { - return { - blockId: undefined, - blockSize: Long.ZERO, - header: undefined, - numTxs: Long.ZERO - }; -} - -export const BlockMeta = { - encode(message: BlockMeta, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.blockId !== undefined) { - BlockID.encode(message.blockId, writer.uint32(10).fork()).ldelim(); - } - - if (!message.blockSize.isZero()) { - writer.uint32(16).int64(message.blockSize); - } - - if (message.header !== undefined) { - Header.encode(message.header, writer.uint32(26).fork()).ldelim(); - } - - if (!message.numTxs.isZero()) { - writer.uint32(32).int64(message.numTxs); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): BlockMeta { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBlockMeta(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.blockId = BlockID.decode(reader, reader.uint32()); - break; - - case 2: - message.blockSize = (reader.int64() as Long); - break; - - case 3: - message.header = Header.decode(reader, reader.uint32()); - break; - - case 4: - message.numTxs = (reader.int64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): BlockMeta { - const message = createBaseBlockMeta(); - message.blockId = object.blockId !== undefined && object.blockId !== null ? BlockID.fromPartial(object.blockId) : undefined; - message.blockSize = object.blockSize !== undefined && object.blockSize !== null ? Long.fromValue(object.blockSize) : Long.ZERO; - message.header = object.header !== undefined && object.header !== null ? Header.fromPartial(object.header) : undefined; - message.numTxs = object.numTxs !== undefined && object.numTxs !== null ? Long.fromValue(object.numTxs) : Long.ZERO; - return message; - } - -}; - -function createBaseTxProof(): TxProof { - return { - rootHash: new Uint8Array(), - data: new Uint8Array(), - proof: undefined - }; -} - -export const TxProof = { - encode(message: TxProof, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.rootHash.length !== 0) { - writer.uint32(10).bytes(message.rootHash); - } - - if (message.data.length !== 0) { - writer.uint32(18).bytes(message.data); - } - - if (message.proof !== undefined) { - Proof.encode(message.proof, writer.uint32(26).fork()).ldelim(); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): TxProof { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTxProof(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.rootHash = reader.bytes(); - break; - - case 2: - message.data = reader.bytes(); - break; - - case 3: - message.proof = Proof.decode(reader, reader.uint32()); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): TxProof { - const message = createBaseTxProof(); - message.rootHash = object.rootHash ?? new Uint8Array(); - message.data = object.data ?? new Uint8Array(); - message.proof = object.proof !== undefined && object.proof !== null ? Proof.fromPartial(object.proof) : undefined; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/tendermint/types/validator.ts b/packages/codegen/src/tendermint/types/validator.ts deleted file mode 100644 index c5faab39..00000000 --- a/packages/codegen/src/tendermint/types/validator.ts +++ /dev/null @@ -1,228 +0,0 @@ -import { PublicKey, PublicKeySDKType } from "../crypto/keys"; -import { Long, DeepPartial } from "../../helpers"; -import * as _m0 from "protobufjs/minimal"; -export interface ValidatorSet { - validators: Validator[]; - proposer?: Validator; - totalVotingPower: Long; -} -export interface ValidatorSetSDKType { - validators: ValidatorSDKType[]; - proposer?: ValidatorSDKType; - total_voting_power: Long; -} -export interface Validator { - address: Uint8Array; - pubKey?: PublicKey; - votingPower: Long; - proposerPriority: Long; -} -export interface ValidatorSDKType { - address: Uint8Array; - pub_key?: PublicKeySDKType; - voting_power: Long; - proposer_priority: Long; -} -export interface SimpleValidator { - pubKey?: PublicKey; - votingPower: Long; -} -export interface SimpleValidatorSDKType { - pub_key?: PublicKeySDKType; - voting_power: Long; -} - -function createBaseValidatorSet(): ValidatorSet { - return { - validators: [], - proposer: undefined, - totalVotingPower: Long.ZERO - }; -} - -export const ValidatorSet = { - encode(message: ValidatorSet, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.validators) { - Validator.encode(v!, writer.uint32(10).fork()).ldelim(); - } - - if (message.proposer !== undefined) { - Validator.encode(message.proposer, writer.uint32(18).fork()).ldelim(); - } - - if (!message.totalVotingPower.isZero()) { - writer.uint32(24).int64(message.totalVotingPower); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorSet { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidatorSet(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.validators.push(Validator.decode(reader, reader.uint32())); - break; - - case 2: - message.proposer = Validator.decode(reader, reader.uint32()); - break; - - case 3: - message.totalVotingPower = (reader.int64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): ValidatorSet { - const message = createBaseValidatorSet(); - message.validators = object.validators?.map(e => Validator.fromPartial(e)) || []; - message.proposer = object.proposer !== undefined && object.proposer !== null ? Validator.fromPartial(object.proposer) : undefined; - message.totalVotingPower = object.totalVotingPower !== undefined && object.totalVotingPower !== null ? Long.fromValue(object.totalVotingPower) : Long.ZERO; - return message; - } - -}; - -function createBaseValidator(): Validator { - return { - address: new Uint8Array(), - pubKey: undefined, - votingPower: Long.ZERO, - proposerPriority: Long.ZERO - }; -} - -export const Validator = { - encode(message: Validator, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.address.length !== 0) { - writer.uint32(10).bytes(message.address); - } - - if (message.pubKey !== undefined) { - PublicKey.encode(message.pubKey, writer.uint32(18).fork()).ldelim(); - } - - if (!message.votingPower.isZero()) { - writer.uint32(24).int64(message.votingPower); - } - - if (!message.proposerPriority.isZero()) { - writer.uint32(32).int64(message.proposerPriority); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Validator { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidator(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.address = reader.bytes(); - break; - - case 2: - message.pubKey = PublicKey.decode(reader, reader.uint32()); - break; - - case 3: - message.votingPower = (reader.int64() as Long); - break; - - case 4: - message.proposerPriority = (reader.int64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Validator { - const message = createBaseValidator(); - message.address = object.address ?? new Uint8Array(); - message.pubKey = object.pubKey !== undefined && object.pubKey !== null ? PublicKey.fromPartial(object.pubKey) : undefined; - message.votingPower = object.votingPower !== undefined && object.votingPower !== null ? Long.fromValue(object.votingPower) : Long.ZERO; - message.proposerPriority = object.proposerPriority !== undefined && object.proposerPriority !== null ? Long.fromValue(object.proposerPriority) : Long.ZERO; - return message; - } - -}; - -function createBaseSimpleValidator(): SimpleValidator { - return { - pubKey: undefined, - votingPower: Long.ZERO - }; -} - -export const SimpleValidator = { - encode(message: SimpleValidator, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.pubKey !== undefined) { - PublicKey.encode(message.pubKey, writer.uint32(10).fork()).ldelim(); - } - - if (!message.votingPower.isZero()) { - writer.uint32(16).int64(message.votingPower); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SimpleValidator { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSimpleValidator(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.pubKey = PublicKey.decode(reader, reader.uint32()); - break; - - case 2: - message.votingPower = (reader.int64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): SimpleValidator { - const message = createBaseSimpleValidator(); - message.pubKey = object.pubKey !== undefined && object.pubKey !== null ? PublicKey.fromPartial(object.pubKey) : undefined; - message.votingPower = object.votingPower !== undefined && object.votingPower !== null ? Long.fromValue(object.votingPower) : Long.ZERO; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/src/tendermint/version/types.ts b/packages/codegen/src/tendermint/version/types.ts deleted file mode 100644 index 7afc9846..00000000 --- a/packages/codegen/src/tendermint/version/types.ts +++ /dev/null @@ -1,152 +0,0 @@ -import { Long, DeepPartial } from "../../helpers"; -import * as _m0 from "protobufjs/minimal"; -/** - * App includes the protocol and software version for the application. - * This information is included in ResponseInfo. The App.Protocol can be - * updated in ResponseEndBlock. - */ - -export interface App { - protocol: Long; - software: string; -} -/** - * App includes the protocol and software version for the application. - * This information is included in ResponseInfo. The App.Protocol can be - * updated in ResponseEndBlock. - */ - -export interface AppSDKType { - protocol: Long; - software: string; -} -/** - * 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. - */ - -export interface Consensus { - block: Long; - app: Long; -} -/** - * 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. - */ - -export interface ConsensusSDKType { - block: Long; - app: Long; -} - -function createBaseApp(): App { - return { - protocol: Long.UZERO, - software: "" - }; -} - -export const App = { - encode(message: App, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.protocol.isZero()) { - writer.uint32(8).uint64(message.protocol); - } - - if (message.software !== "") { - writer.uint32(18).string(message.software); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): App { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseApp(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.protocol = (reader.uint64() as Long); - break; - - case 2: - message.software = reader.string(); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): App { - const message = createBaseApp(); - message.protocol = object.protocol !== undefined && object.protocol !== null ? Long.fromValue(object.protocol) : Long.UZERO; - message.software = object.software ?? ""; - return message; - } - -}; - -function createBaseConsensus(): Consensus { - return { - block: Long.UZERO, - app: Long.UZERO - }; -} - -export const Consensus = { - encode(message: Consensus, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (!message.block.isZero()) { - writer.uint32(8).uint64(message.block); - } - - if (!message.app.isZero()) { - writer.uint32(16).uint64(message.app); - } - - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Consensus { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseConsensus(); - - while (reader.pos < end) { - const tag = reader.uint32(); - - switch (tag >>> 3) { - case 1: - message.block = (reader.uint64() as Long); - break; - - case 2: - message.app = (reader.uint64() as Long); - break; - - default: - reader.skipType(tag & 7); - break; - } - } - - return message; - }, - - fromPartial(object: DeepPartial): Consensus { - const message = createBaseConsensus(); - message.block = object.block !== undefined && object.block !== null ? Long.fromValue(object.block) : Long.UZERO; - message.app = object.app !== undefined && object.app !== null ? Long.fromValue(object.app) : Long.UZERO; - return message; - } - -}; \ No newline at end of file diff --git a/packages/codegen/tsconfig.json b/packages/codegen/tsconfig.json deleted file mode 100644 index e9a47446..00000000 --- a/packages/codegen/tsconfig.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2015", - "moduleResolution": "node", - "allowJs": true, - "esModuleInterop": true, - "declaration": true, - "outDir": "dist", - // "declarationDir": "./types", - "emitDeclarationOnly": true, - "isolatedModules": true - }, - "include": [ - "src/**/*" - ], - "exclude": [ - "node_modules" - ] -} \ No newline at end of file diff --git a/packages/dashboard/src/libs/api-registry.ts b/packages/dashboard/src/libs/api-registry.ts new file mode 100644 index 00000000..6b86729d --- /dev/null +++ b/packages/dashboard/src/libs/api-registry.ts @@ -0,0 +1,46 @@ +import semver from "semver"; + +interface Registry { + [key: string]: string; + } + + const registry: Registry = { + v1: "https://example.com/api/v1/endpoint", + v2: "https://example.com/api/v2/endpoint", + v3: "https://example.com/api/v3/endpoint", + alpha: "https://example.com/api/alpha/endpoint", + beta: "https://example.com/api/beta/endpoint", + production: "https://example.com/api/production/endpoint", + }; + +export function findConfigByName(name: string): string { + const base = "https://example.com/api/"; + + const url = registry[name]; + if (!url) { + throw new Error(`Unsupported version or name: ${name}`); + } + + return url; + } + +export function findConfigByVersion(version: string, registry: Registry): string { + let closestVersion: string | null = null; + + for (const key in registry) { + if (semver.satisfies(key, version)) { + if (!closestVersion || semver.gt(key, closestVersion)) { + closestVersion = key; + } + } + } + + if (!closestVersion) { + throw new Error(`Unsupported version: ${version}`); + } + + console.log(`Closest version to ${version}: ${closestVersion}`); + + return registry[closestVersion]; + } + \ No newline at end of file diff --git a/packages/dashboard/src/libs/http.ts b/packages/dashboard/src/libs/http.ts index d070552e..8da24fc6 100644 --- a/packages/dashboard/src/libs/http.ts +++ b/packages/dashboard/src/libs/http.ts @@ -1,5 +1,21 @@ import fetch from 'cross-fetch' +export interface ApiResponse { + data: T; +} + +// Usage: +// const usersResponse = await fetchData("https://somewhere/") +export async function fetchData(url: string): Promise> { + const response = await fetch(url); + const data = await response.json(); + + const result : ApiResponse = { + data + } + return result +} + export async function get(url: string) { return (await fetch(url)).json() } diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ef242a96bae1e5ba898ed7e4b470ef95069d6712 GIT binary patch literal 81902 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 WI)a%s`HYTWG}`RRavj06Y5xcO*=`>I literal 0 HcmV?d00001 diff --git a/public/loader.css b/public/loader.css new file mode 100644 index 00000000..a855b231 --- /dev/null +++ b/public/loader.css @@ -0,0 +1,70 @@ +#loading-bg { + background: var(--initial-loader-bg, #fff); +} + +.loading-logo { + position: absolute; + inset-block-start: 40%; + inset-inline-start: calc(50% - 75px); +} + +.loading { + position: absolute; + box-sizing: border-box; + border: 3px solid transparent; + block-size: 55px; + border-radius: 50%; + inline-size: 55px; + inset-block-start: calc(40% + 35px); + inset-inline-start: calc(50% - 27.5px); +} + +.loading .effect-1, +.loading .effect-2, +.loading .effect-3 { + position: absolute; + box-sizing: border-box; + border: 3px solid transparent; + block-size: 100%; + border-inline-start: 3px solid var(--initial-loader-color, #eee); + border-radius: 50%; + inline-size: 100%; +} + +.loading .effect-1 { + animation: rotate 1s ease infinite; +} + +.loading .effect-2 { + animation: rotate-opacity 1s ease infinite 0.1s; +} + +.loading .effect-3 { + animation: rotate-opacity 1s ease infinite 0.2s; +} + +.loading .effects { + transition: all 0.3s ease; +} + +@keyframes rotate { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(1turn); + } +} + +@keyframes rotate-opacity { + 0% { + opacity: 0.1; + transform: rotate(0deg); + } + + 100% { + opacity: 1; + transform: rotate(1turn); + } +} diff --git a/public/logo.svg b/public/logo.svg new file mode 100644 index 00000000..a620f52a --- /dev/null +++ b/public/logo.svg @@ -0,0 +1,82 @@ + + + + diff --git a/public/logos/8ball.png b/public/logos/8ball.png new file mode 100644 index 0000000000000000000000000000000000000000..edc10827fe6cf960872940740794a8b8d1182954 GIT binary patch literal 47444 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�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%0A$JO86xO~e=j?8Kn{TwjBcRVwr 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

5>clt56>Y*;# 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 literal 0 HcmV?d00001 diff --git a/public/logos/VDL.png b/public/logos/VDL.png new file mode 100644 index 0000000000000000000000000000000000000000..d171bdaaae7c2b3c119eb4f023a57e08e045ceb6 GIT binary patch literal 2976 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 literal 0 HcmV?d00001 diff --git a/public/logos/agoric-bld.svg b/public/logos/agoric-bld.svg new file mode 100644 index 00000000..9397bea8 --- /dev/null +++ b/public/logos/agoric-bld.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + diff --git a/public/logos/agoric.png b/public/logos/agoric.png new file mode 100644 index 0000000000000000000000000000000000000000..3d6ff8c90842ace8b0db6b4e29d937bd99db2c33 GIT binary patch literal 13373 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

`k^3ak#9P|d?f`>FaI;X@Y&Ddix*#p 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 D1rfXT literal 0 HcmV?d00001 diff --git a/public/logos/axelar.svg b/public/logos/axelar.svg new file mode 100644 index 00000000..a993fb49 --- /dev/null +++ b/public/logos/axelar.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/logos/band-protocol.svg b/public/logos/band-protocol.svg new file mode 100644 index 00000000..cb0e497c --- /dev/null +++ b/public/logos/band-protocol.svg @@ -0,0 +1,12 @@ + + + D09EECB6-251A-416B-B21C-25832F33D878 + + + + + + + + + \ No newline at end of file diff --git a/public/logos/beezee.png b/public/logos/beezee.png new file mode 100644 index 0000000000000000000000000000000000000000..81c72d220f8c8941fab8d75e4b1f61949d97b490 GIT binary patch literal 5016 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 \ No newline at end of file diff --git a/public/logos/bitsong.svg b/public/logos/bitsong.svg new file mode 100644 index 00000000..7178c8c9 --- /dev/null +++ b/public/logos/bitsong.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + diff --git a/public/logos/bostrom.png b/public/logos/bostrom.png new file mode 100644 index 0000000000000000000000000000000000000000..a5d95ce817b32d184a3fbe4fbffe45e1cbc1a4bb GIT binary patch literal 7963 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 literal 0 HcmV?d00001 diff --git a/public/logos/c4e.png b/public/logos/c4e.png new file mode 100644 index 0000000000000000000000000000000000000000..b0e03c2082cc92b13d6ad6361a4431bce0a26177 GIT binary patch literal 110177 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 Ck-zN# literal 0 HcmV?d00001 diff --git a/public/logos/carbon.svg b/public/logos/carbon.svg new file mode 100644 index 00000000..1c1cea31 --- /dev/null +++ b/public/logos/carbon.svg @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/logos/ccc.png b/public/logos/ccc.png new file mode 100644 index 0000000000000000000000000000000000000000..b4497df41660be2b72857c73438fa97dcdc8a9a4 GIT binary patch literal 103252 zcmeFYc{tSn_dh%(q)59hO9_>-j=e$2Zb(RWk!7-lLB^hvos2AF&lpP~TQb&4_I1XR zz3gL~Fv$LUPVe{U`~7|H>;CWl_wKsX>+14)F6TVXIghiv!tQIUGM!*Q0f9i6)Ya}i zfIw(S;Aj3g9r&MjkL!oQKMc>*jNBoRlV_~D z=$KA97vS2JysZ?L(=t#uEkgi*?*n_`78-X{&~E41bynCCrgGT+{(4Kf8v5zsr3?dBgSkuWCbzoezA})sLvr5d``yu6s7vAw`1G4B)LT>XdzG*E z_d|1i&NC}1bQ|5BRm-n;%LjpR#JW)-6svw>cI3<$+98!F)#fAepj8A zm`DORktGckplVm;%n#f&E2Qi3#m8#h&7-8HYE@Fxr3>zRnulG*kVGnO5pT(LR5?!C zuut$VD69w;7R!rGCD_%o5Z(fD-TRB^54MBt85ZbsFg?}K&29s^Ib6)?T!8^^*3|~{ z(`e@k=kJeg>N0cd5#zMIpDPXfQsZ(cweL2^5=^*qegPwU#7wn|50--Q^OE#)3cfX21?h`Mc)j;4+*sZV2o$&c3N(L9;rCuO3o>O?^Z9Yq!tI@mh z`zw!1AhwZEm>FIcfx3_NPHgq5)T^&FiS+kty3sa!1j55b72aufIdi;=a)orj)^XRJ zCfVF&%$s+96t%f~9+}%m*-I2HqSa$m4D+O7#S7VG9@*KHp6#5 zj`i@Dvgpcc^857ZP-zI{J{@(}3qz|`7DK2)=~dF3u2mzZuA(nKE#IKoCw8E*W%_b_ z2t4;R*Os=ZlXa#2^Tjy(KML4o2;?UV)oC$W&qcf+>jf-9bFEdfK)YuhZRBQXveW7w8HCrmubyMr% zu%wy!2($E51o?CMtG&>DH^l54nnCD`K#9C2tasBbG!bIh}PxUYTYRVAda|W-R z-eo5RLt(N`1f-yZ&pp2bNB@;KLZbT_*Q4kmYTN*Ufyc_`EacZ4)LhqyOkG{db(%la ziA>C)Mut6#+N#8k#?_~%uuIy+!*o~i>v9l9!WR$?u7)}t*5GWg#Dg@{T+i5m=i?Zw zQv}Lw=)!?>H78Zin% ze-vF*m{LLKhDYVD8CEjIf1l7Yx(!i0`}d8O=m7It+_(&-6E*kqsC82fs}}y(k&E_3 zMQu$z7s3bs_^p z651xoabDRw@in=ciE&%cp*nNL&T_)G3Vk(`+b(SBzl=?dKY{ zXqLqdgP>!1@(2_jsZLz(xzzW}nRa*Z2n0zL=rPO1lNL|&J%;PW$A{KNR^->AtfSXv zGlNV~<)pRrDmu4264zhTLwaZc;C}`$3;Q~Evf51qaA%Cj=NhNh?}=SNr>psCjNbwx zFfD-E$n53s#YN32w@aykJ@$eDiMbY})w$T%OO9$^zB!f#J3+(w{dRl}2Un~cz&e2v znA&O4>#E%mV7m~W;SYOx;RpnK0^Gjg^oe|LYvEU+0O%jfm4DP)GnJ`=_Ubv5R`t1JMPk z(+6smZM+ixz&ho-w;xs&Q^Zz2c>5Z4i(GJPBBv9VWiv9iw}=mK z@7JDQISNs{0z|E7`(q8gYrK$ZJ&}^MJD;94hq3PCC9nVxXr#n>5s>I_5eL}-Znx7c z_U7Yt9-Lr?3{j^G;^{4ypb>G~i)wjtRzRxqp zBO#Dh2=zUiW}TI)`Y%K4x#tQbbynS@hKnr_Ja*leu%uoD8kdc5d(H+kIuY>Dbk)Vq zH_mSn66*|XGFH~}a9WDXv1NJt>m$3Z&p{6Bt9Rp|VCT40oHe0vAZHq8)p?vi$!aP3 zo%?_QU1Jrw*IdpYhCh}rop~y6L3!NAn;IOqMX}dg)25L@f1_Dw^;=xt z9(XMr9v1Mu&I6)GMNMl_rUh#qhs&n14KQgogy& z0?!%yWU4P%#st&3k$U;z%sPp5Zf!khxFB)IL6rGm3#3~YP*b)c+%y|5Td^3Z-aT+B zzD6}y(4L0{~i-Oi^{gQ zlRO|F*#YJseUIjz@H_ltdVIEqm3kjwh?HSABXK@*D}nL-^q6KbZ;TN=#0N+(@Pgyv z>e!af@sU&(5D?9FUO-_6RJ3C*akDQNVyhLHGp;M zP+w-R_V?Wl?lf@m>#UR!R>Y)_$=LHGayhZLyvo(2kr6-Ehqm2+a)3T0_obxoCj0_K zlkq4JTGP<#UK+DjK58q*Ar0N%2E^*wr9>n14e%^@s~lAd2{mt?Nd_o4vz7d*mz&6lz+bz+$uJs+9Wi<<^0<9}`Psi{u;_xj;-WQz1BCP)V`7l_lR z+x4jLKSt9DoFfJe*ni~!r;)h@uT}45g!X-v5{RC2@k^U^gIH1n(6utsw(zG&&r`5b z(~W_G`zu%Y$p3pXOf(K0OkTe9++ORRK)@)H*!~`VlL1mnFJ#D>5vFmqWyaO;x zjI-P4<=xe^x>+~QZJVu93r>hW73IR8ZX1@9M@wJIwNmkj9x zEddZRuk5DRlPYipOoH?pBci0N?r#7&&F}vA_Ru2;)R8KS{paLchte~+4F9p;Hv#Jc zioGA_)a^HWFk4U&Aih+yel5y9eqDFXIkAohuJiUEQx>=e7v|CY2}0}sK0*q1@bXtO zgvSQ#Yss3DVNz>#*Lg(moVy7wzD5rFcW*4|&Eg667GOWg(m5D52OdLh@)Q5>A?w>! z87ZzrrT7M#KmlMRtc@QDn-2h^5Q~w-l2kU-iNqYuR-aNR`iElC`O;$t_o&BBKKmT< zo9c#z_%uh_fy8%icLb?}!|{=!vEnkfgZRiwGJ_Me{<3C2k7R;quh=w1SzG^*HL``C^H1WHP*=!=JgNE z3y1UX51XIR80Sq^<wUeLj~pcZ^W3_-yJM3~q+ zk_y!*WxalS;mFQqu3W#3|2Kg^W8b%s_9UEg*EOAa4Cq^gl8}LsC0pAm<|z+125wjz z!ZBQ}w})eK9Q^`tokSr7suW5zUNeszc_b9juAp7_rpXOr1UypgnJ3ntaidM-=q}Cz zasTiCY{sBN6eT@eBq$2qh23fOIX&9sW;IkxbitNfQcM8Y!luTg@850zF?ukUt6y7v zwOsH!_O(2-`~5Yp2;j-ep&R_l;yu65<4Ckm3jD?DC!66?b>+jq3m^?tz+6`$J(4gW z*!NxcuGF-+zm|Su`D!wf$qf3fx8niEJQKuS$Lw-s1dDu0oN-9*@s?%I*p9Yw5t=^*>~gOxA!!V2bikJ6yN!AcP-Qt_s4|4rZr!I;K|L&m%5G#3bAX&ZY_Gus`nou(D8Hf ze0h$WQ~HvpD#^@8K0`XGF|L;b|LYvs?0F0|BJ??VVBmgd+Xn2&`1-1+V-tM_3!@+t zbrd2{j?ev95as71t89$A_phhEKNX7vqGWhNc9*J?EL>PNsC$@hi{_f~1>TW#l0eb_ zmsNzo@z>-H_vyL}=+$ljm>esa8S)v_YOOsC?yXYt2zm&hGGvM+o$0zmQ$?}2CID7~ zdfvp|;_WIM03RXk#c|k<{^^kqE<2)ljC#(mD|UwRQWXnh6CXTfgAboJV^t+ts9fm3 zsm1dqBIT%Wc9n2*ZW*D#7S7c&`u&OfL2)x$-&~TFB^@m&%TQ7EcY$B1f zePa7Id3wf>{uL0NXe=xp6OO=)g&~jFug~%_$GmEytYTKIMQW`EZn{LDf|3rjtGEIaj=p90e=nQz6p z39L&^i0(IW*FAnN0m*~_`&IFTRj*Yg_t)>3Vg=R8)MMQ0@(9TGA_3?9yV;-aiU}!j zJ!$f*^|ortGjSnEAn6d_lW;yKFC4HJ&Eb}nXZ^}kzGiSpK6KTH5$1$KeE*`H3Ux=b_j97p5)=;^5y7uinX`#kLoFa+v@@tW2~nAF~aaj@Xgz(8QJ zS8UgbN^Kyh=ck`Uueh8-)alIGMQo10|4#DPTd`^JV-p_(EN<(U@x_FiT?vwTpRAKr z`HvZXa&}r;U39dd90wnH01<~N5OLn1Jh z!rp9fbP727U0WitzRK!pf3*S!T29~4jb97pHWzUNUb%$2;VM?2*B!qlFE8euNJceiW};c_0J|5j?wi|Saqvjy7ODxNnnHy?0vFn^|xsVKtaXwM=mN8- zm$B*=2T`DQ2SkB>QBrG~Fr0sE?sn-q>Psy5a_t?{wHp>&loSRH;&pHCqPHb+TRfj< zR%H;w6G-A_Cg=2i5fi-gSA2~_?^NHM4rP2N2JQ0v*J6m_3CQ;eJfK-+zJL1WO!y5p zxQj2ol-9xn@8y<`%_Wt-G-F@8TP9_Y)K+<@^)jA6=yiUWF^t&BuadFyxQ z>%@9R=uWDUnO3+fUz+uCsDE|RAc7#9sf^)zq?yoE9bzV6BLJ6@iieJc4pi;Eh>qT4 z()^Ko%90BNnaiJG`}y>?`n#h6<|qDDE%P>NdVK9%ZA9aj@sVA^+T+KLmd&J93x*rs zTlu;Vn=hh^vc%QeKSBL0jS_N5HtD;s{Fct8NriB3T)d}~5^2w0G(A>s8#=hSqDQvL zkPSotY||AhqK`(kU7)z!TPF!O_ze< z5p??K_StwGH_2?=uqoYQ$*H5gBeCiqn~krbA6U!2p3>bK_ouZ>^U|vABXL&*>gdMs zx}c=iqb_+5$T=Y3^V{?J6Q;eUX215_FHDM%Kz`chJ*h!F*;MmH$}__~S%egX6nnI0 z{-FJ(HoNBdt2^1w1nkKTGPlk*u7U1S#`u8O&V+A0TK6&L4KN*8xAy`BPhB^bY0}o9 zekW<*VBIYi7-rEm_zr2$v7~a&d@z+IvMO#hv~0RIGQ=ec(i9t^7t z`!org#p8Gv`N&k4^26${(;Z5{G2d)2g^mTP3*!b5=ZNmz#~fr088pT_?_gH0Y~^z= z)-Ec*Yk%dF+0rlYP=#{zBRP3-P^Zw}B`oyo`r|%5SRx5(hH*9Os>_`#%h^h5M)XYy zc^7B?(o`M9()V0@PtA8h-@owX$8`D1uFnhQjP8*pI24x;zeq$x|XfKHL!Idf)0T6`DN_d%Vu~1M4-*F$SCUL9JX!d#Aon>mR2% z-fsVA;4*x0fE7nI$o5cN3|YYFltQQXaDa?29RYaTDI%I_Mtj!9EL4|14|D@EkC|lb z^wEeHOzi1Z23J?zzsZ_JneMX7n>Je!Km6fzw9>aH^Bx8nvl=8p042l!(d(jqM0}6f zJC--|Z{S93{t{@NEI!klJkF2(E*7ZE5KQ3B=h_(!V<-pR`gVr3#VaEUIyd zRCULZyj@68&3)S=u{xPf=N2vtGD~#Y8dAT^}!xC ztc?kV>%mUiG&nisNvU~BZ|aL8T~Na7C75#DhP>GR&n$py`4L7yj+1Az1<2;&*|UY* z12W6~bt_7y{IEENn@Qr|5j)MW%JAi}Z<@m%aD0zvub?1-)4?2wydRP;xy1 z%yHtQmr*&W4`K#p0*s#!+U?tle!F$!wFYU(CjYV?iX0=X>j8ZOR*7!tpzjuQSAqAw zS4GjN)-_wlasAF@OSDjD)e>Q4@p#3g%{=>AfY*#GaAvGBW<_&x?RBdf5uQRhO8B7T zYJL%zdDxrDP*F2JHKJbbpy0x~s>nj@V-Zs9^+;Can-VB&*_}PfA(PFN?6zTpy$V=P z>Wk=Gpb=>on*f598p-RT=C~%Qjob;>2}9nR{9cV_Jm(gW;`555jE6`gKCf%7t)y6v~o)!NV9 zC4nl$l9JPkf23L@^gv1Yke5{4h4a9f%k|rdl=CUbterifESr16$_SJwkb`^r4L@HK zssj6LE?th^wCcNTVoA8X@zSbCxk(FkY26sG_2l*Tvpcgdf$6ckrXVxeFL+pqEkI-S zh-WV+`8&ahz)jfljg@rK^-k_7MtVrn5%j-$0u#i&B2^+_x%0u+wO;ZQpZ9Y5ZR3wn zlf8U?Xs~(1ze+>AQ5UxBqHk|}v?ioR)C>rR!eSqWQweD&iMBVv*6+?r&=;HESkgT0 zoB6{`-U+;e>Ef{Wtn-z?G;q|nj=q!bxAY36oLMa@yiD^3RWa%5+qY-e9J+)xV{sM- zc1>D%ov2b-el7fq=-h+>VoRzz%O@O(0ZKB)vjZ^%Z+-y$G1tx=V~%~L`}$^}`s=>S zOgj{e2Q`=sD!Vy>9&l2zeNpDD??*3FCXHsCUc2YbtP`!_ghTtYm?n0Evkc^$np zHcL;ntx8&BB_c9N_cbF}O#e*P9TqlCBGHjBBQy6-*AY*V=p86C?Vg{<#mWxCTYbWG zY_7qZv5DuZKOofFL(`WL_{V7T9!4b61Y(x`4V0VanczfP70w5z_&Faa-J~;Xv?uT; zH@uMHO)3_jxc14T_zXSDxnJ@|d=2w{@o^#rn)Ej-LZ(-U-$BZ&VTP9ERzV>IhZJwQtidOUM zXdz%!psp4B+%(v{*10{YAc+wlDhmH69Xh`5L_Uc7G3FlgIlg!+DH>|_=m~*_guM)x zdQ7;0yj@YAt}?5I|0n_1$y6UCFkOcW;~tiWC0D&3eem4Ik(vbC^1+3(`jaz;ysrc- zekHYY58K&F20jOuc*iC(FLo!U{o_SYYi;xe0&-3Hn$|7#HaQx)zxMhJhsQaRMT^Q< zyt?pv;2;V?dRds8!{&xD*J>3XkbqW%p#7VR420k;tR8A?Nl3Mu!HlRN=_phJpz|2y zP>Em4NXh;=`CMo$Zt?%tq)xIr3qKK=_VmqJV-<>{4v`m1qUD!$39YIk)4K@S`Cy{c z@mg%RB4x3(TC!Kq>I4gkJ^e?Y7v|hkzM2{Ho}!GiKa-{5H*;MI454iCK9O+-1TSO zA4p%Sxn?_8XMsO9zV}UW$0;ab0%}I#*uW3?Wiy)7DqaOkpZOy>Ppd}E{&E&Aq&YI< z`gBCduhm+uMg??gn3&A6?_!Fux(@`S5P0nhHHKTfs86}1gd}9I#Zd+EEt=k?+l7UT z4$}N%Ct&pm{Lf1sYS)sGAJeJft?wVVek!>b)U_AXBm}kalRu6yvA5(Sl0^8=P&IZk z@9h`RUc}?zC|bCU8K`-q>~g&rZvUgWi&y_Djt4Br&KE3XB}uw43sN}oi5|ix!Gfz; zox6tzZb(!^VTvBh>O(aau$|aNe;vk)*?^^{CwvMbvvi+*4vL!#wCYr6aTe59KPV6V zM^~!1$)8q)!^U7h8*x2|;Ayaq zZltCGO%lGv%7dY?IOahRfj`*X6Xyjz5~Ce|<&|nHtozj;?0YxEC~}^+?0(Q60Jj5X zGlJhP1uQJ2=@lrXzOR)8fIaT5J;d4t@2)26)(wD+8YJQNPelGxZoraolz0y&3^-`X zXve71mjPXbQ4&&+qEDbg^%$s%E{fRpD67CxSI^y(%5`MiI>0^RX{UVX&_6~TpgGfo`D#ozBK^M ziyrN)ucIk<40v}Z&vZBRMx5PydZUY^$_uCh1b&*DBlVQ;y(&&IVhEHGAz3o{WSHXX zs%H23ng-F|p|BzcNvO+Z822!%_8>AAm*VZJLnA|_*k*GwcE+k(o&4~qJ1B$;j{u|Z zVSKOHyOdaHZKjFfaO2)6O_1Kk-wK0~I#HrrWPv&?_VI<2&Ii=9%}|R2=W7lnP&l)n z5rY=-HE! z4b-uJFF?uxJzIMDwC5z~JOy_Nx11$y|8BnmkGTbpA!2CB}qY)*S{aXvO;5nBY=ykQmDV*U?!f!SGjJo01c?oBb^fC3K`D%JozK zsPZmaXh(13Rh3J1+D{s$?l|?zM>y@`sKkd=)GTuC?$e<;AuPdZEpv>kVG=m)0mwD2MNa;zmF~a!Q zY~3h1_!@8?fH$bw{NQYDiaJfzv0M^Ap*}VWp#FS0C;&UK^W96K z1EFt*aaWNuQnnHFWUnZ*Q`jWPj%;W-Qn1kUcm>|^&%YCc8S&4GWyaq}`}p(Do8FBRw(wfEsb}dNWgS6^ z(Nvzi`}5v`?W%J(dQ#uNHBeed;u|YI3&)-4+J&zY7#KUiJT?jpkHsooUGlaf?I0w` z!eJ7vLW-?ES3yT-ZFKz`tiA1~;7e*sxzDdSDbv>ivoP>~YBBX-+Z4 zs2+*=(-S7-Gu?viBLTe|Qj^cT5W!sR45$gw&3LGbEt3ZOcGh9!A9E0s>*}sf>&rLg z#1RWOdK@SoGJEq?*XGaH!@Cmn4=wQkr}(qyH%K?U;1_9u}JAsE(N- zr%M&S%^u=06(OBI!NK+Z*+tZ-%Gl&KItkZa);(zc=bY3Em)RrUGfsEFAn6(Cu%{%M%On)R)zEKOBl)W z5~63uXr7M=&-8mdUUYP2*(|_lICJszueymVUmByLJOXlGO=yM4UACb6C)?r*c zelENFh*B*_xxpQYldV4nu_vS&G^c#yT0sRvxTmE)o2fGjFmWtnd zN!G`0j2!s|MmMIQ51oAEh^mF#muZ=%pLp+%upB({eYPt2)`HPs4|!Y)BzAW$D$>Yw z>+oTNOe1>~g?ON`9AY-5V^*s>)!*$)a<;0iyvR~uCXnExUfG?%A(3VJ#Bkg)?jYNR*b}de5giIJRrqLR3@%aaQybUbV1r zE>B{lcdxLb-skO~{#W&}K-k!|*c-ha(NfAntAJ=dCA9)t(IC+4P!tH*Oh9=k~T4xNJCx@z7Yo9AzqH zx;4fq5xZ`sy+Xd{zJic=thCsUH-E%5eWE3MXc%Q!oI0@6!eOIwPRLoeJ z)p)33Kz`q~u8;vY*P_dp`OQ`o4h;q^LiK9P+M<~|vAe7$ZZ%yIGMvP7!L44en>=js zpKF{=v`{>0pWz^>4VM*V^FZ6-Kq(9rZ7+)92X6*rV02F3S(>2lrpTs{O=g5t;x>Yth?^-Qss*aXU?XueKkNoO7Y6K=c zjG+%5Jl#M;NZs*K!f3$3)49V-{xz72tw=hzl836_w`-^qU|_koU=*0MO2^NyTVa8$ z2VSszhi{~_n>sIB7kpiWl-W@vkWfGS9xeAn{ndmqxA|W9bMn`E<{IGeNpI%CXfHb$ zu=HgDf2rHGV8Eqq(a(1#Sp4Zgp_toN z>G;Jg$7Cl8Wm)0Sy=0wW7e832G|J!qoSmDV&0EQu74I;3%X>>g8KpUXndA59I)97b z(D<&Ml`6UNotfnWQ3^6*%}7pkE26k}l@kddb8I%adBs@Vt8p=gZR|DZwY}A0%P?F~ z2-y0{{du?B17p*x7)|H))l&T0Id}%hgEEzAs>H0od`)5ghm=fk@``5J#qVE7Gx8@vyr`cXYi~O}6ds)Ko171wQ z48tmg_U3~2=kOs{TboP1I}zxilVYU1#FvbCUpd)Y_e&`+qPyG;^{kT;&K$P6I`UJ> zq41ipoXmWz)8sZ;sd{|qa?vxc(;Hn~ndg%EXi!}rnHle^ESmb?QQa>soMM_VYB?TX zt;BVFP|X_ zw=fIsajcpTa5iq>v!fv=wOc03@cb z)+N}_!f#@pe?N(kO{x(t%^F=9cX_5$t475)Sn$FR^r;IBIl89TOY5Xy@95kJneA(y zLp()Q$T{8yl%(m@fiNH=16e_%&u&r2pxAnIf=rE;|BX6(e-(?@dO4`UD|7q= zKWEz&j_;kUt6d2prY2@ry>9$fCoX|c?sI+rM)Ra^UGE@R{iJ-CJ6OHENe}^!>drL1 zu&~hhXLV}#AiZa>SpC4~+Vb-9%3(`=wQTihy_}q!!9^7snP8B@Gq~_bogcdI?7G4% zNG(?7Yu?)nY5dE!+9kClqy@38TC(vrhvy=^wDY&^ov~im7gb=5P&0N)7SrUOmX!^r z2rUN60!D!n2o$Ko{8tezkFpg6ofbE-4aYU{>zWw8zpZL$m?({+gn$CrdkCAWwO4}J>?D)&`H-PmWaSzo<4Q!tTKF16rnZXMIMI5el~o>iooB2-CD*bBe{qB zCqJa*CBoj_(nR1%E)}c;0|P!2+;D{7nh!YDc@R2vl+4LIO!h1-z3WsFLCtEncB|;3K*?-S*&%D+$CmRNSFctdyCL6TRp5c#bXRdYRCh&(s>Jwn+U zt*Q_eE8{!=@y92p6rb93Fn0MFSL%EM%r+TL*9l@$6U(8#){l3bjD@?P`~P~9+4evl z2}{CbR{9LnXP-+@yYY|6S_5!Y@^)7(XXn$^L3edWytk;rv#X&l`{IqGVh( z-9F*Q1`8M#n`yQaf$QkeRAtH1uHQQMY`a9OIYN{8<>s=$h_aob1v}Y)G^4|(_jaMt zP2=(wjH=~2u5+>{OX-`!9U7S_OdDQZlSs4B#ydPa$JH~CulA5YVJ%))BQMmakM1m0 zG8RD|fUm{q{`~CKDXuErocXhv#mx8D6U-#cqz8>}&%Mj8{JtK6#sC5x4fXr2&~N^T zMS~!qjhRmv2y|iv z?S0rcZsw41_5D`HCKCsge!<)d`L&QQ7Zgu`%1iqWx8En5%}^=N=(yb;Cy{2_Qs+LJ z9l~R}v8j`K$+-9I%Mfc=bMqUVL+z(7a~c^$lTAJzI%VA)oukDWd3h_}Ww@MFnyOvV za=$blmph8xO;@_(lcWn0VyQe9FHF|~@;8XXLfi@^KcDG6<_63-UE-JsDV?sik;Nnh zw-^sAsO!T3YuS<`BXIfkN4AGMAf!^I$)-l+vrgM^p4)ors%`X* zg1OQw_W9FiBJ#^N=_mL$wQ;lg_GXrK-#O8MUwXMHlg4VZfS*o1Fen&s^!+gRhnmjQ zA@C7eO*z*SLsH`}OguMgt03*2ddeeJ;2)nPX49s~P(5mK>a>)b z@cwY+pt-XzsI2{q2nnvZMph3kl)AJ6Cn&euu~sqrsdUPjuon!6H0vZGs|W5|9T5GQ z@UQ8ZreDNtT*_#K!Y(sSV;M5UD!Su!Fw(8dpHErxu08s+HSVW#xT`d^%NGhdmEao{ zP2Iz^#l$1oE2(-cqBXdl4XuFp-)lY*w;hJr6P%KsKD!WmUxdVFJ23_Pej)Jtt#X07 zm3B;A?(N6+6aU?_uL%{c^9bYY-da7XBk!@GFD07DO>^~C&_0R1|H_?u3w=;?#b^`t zoC$v2S=%C-+5R5=+~GICXbY&YFf9zl;xwZ-#;7b?tnbsA+1x4^{3$9Vy!O_@vC*~Lw}a%c95Q!ProIbCV0GBz z(rrIRpCVzas;auNbFW(Ddi`UDUaoZ~iul_d13BM{NI*SXPhD)r75Rnj zx<~pOOyVkIF9sEj-gOOGNZqJk^uF9!VN}mz^y(_iddc_0Mny93xY5jRfjXhk=v&V* zGa0k2>Ds;L6P3KN?{xDgeGJ5yiMHYdV0nw2$p@wC);G$h8n@0*r z(-LYlqbWrPi>-y-{_Q`X@?5qgh&MKI`=L6&8plix+z8T*@nibNi0^sci+f6dHSKT} z?_3dTjN6Kv@-XjEcI9mdu(yqgf8ABUSK8QiHgP}Mm%n-jv`ISN7O9$T-hO`l!mQ+@bmm|8 zpEE{8$#hQev_mB&!vQr4qH|NZwv&w87dP?PeE@;ovJ&#HygT?C1M=9i9I{cvwDtQe z1HLX9>(mXGlb59vZdp&4`qPwt{ag@}v2~kyj9K!6$&(Miv$1!$@5(z!;WF+Q$pt2lhQzS#RB!i2Aj*CLS~XF-u2fgKT5dU1 z$LKf`%}2KS)6Mu^W1O1***G7VHSr~3E(_JgNmZxnow7c+@XbdWnKMNYb$DP+z z6RNt|R%g3(t2}E9nUW}KgFiMXhv12Q!D%Y%Kg%b7CpN4 zj)FF_;9Jymw@p}`{ahag?jB{zrvi(UI3_lKcS<=$J3KBPYSwR0&$=ihuZ-B~NETP` zJi^Gs(Z(r{{IPG63_5N$V@Yrn&;H9~`Kim4ZPcZ@d^t2^Qe0jjPTDS&x%Rd#mEGDKf%`p z9QqG_tnQq70lGiA@YY?3G02zsK~v>=;kR0ggTnm682QImGM2(gl=!s+X0nsf{oS^7 z_FUppjC>@@eqGc005unIhO_oo$+GaE-QmbiyKF3Y*N-oIqk*O?Pkj0$DKMy$#1L?qI!vW2K#xFPqDY|C| zA_$anE(xdE1QN`51q%9SB=mo9yD%O2K!6D}Ip5fx zrS{*0W7aQm-@ypA|FC%~baG`^wSP}}9>%Q5y)n1#OtK-n`xp{E` zv;sr|FW+h#Co=KFY+gQ`HD^>A`@tT@T-TUx}EyPY6&@N9w39DtR)y2LeRT=)n?_pC81*AwKBK(;^Bebm z)Bee)7TY5&#mBO_o-@@kq2ByG|9ffke@*gewov;pi+M$C>1Mp!TBG_Q%j{}uetyvz zYxbrm`;xf07e@6x9(TxVSHwtdc+nJ!;?DJJ-ii7VWktHhUY;tYMfc0^NotJyr0)2d zbpPvyQg1Xe@WXz!h;7O6PK?Uj7&PbHerrjfDg0}<>+a0g5CwI=LC^Q2>xE{MB%E~@ zI>>RyW2X<{RX8Wt9nrO(w$hxImPW(P>|0b;wj@ES3p4mY?CIeta1c7&NfLSdHBjYS zQhNr+pMZ}EFrUrO@Y&ndUv^(X$5K7Pr$@^5x)u*M3`8H4zry40Z)jnF>~R%cVYHkZ zgL<3k7ez=6cFor9<_>JDD+ND_j%Keo97LxlPi}OPKdTny+kFU|WXApon~&AnipmR@V@spjtY^<-tJ5q^lz|c3pCt zz}T6h&<$Hmb??f~`4QT#Z;BzmVB>!2oLtPn`_6bHD^vG_fygTDl)V4fKS77V^RaY( z&6}Lg*L^MZ1L%+Wp6XT9)>HWUx1Y{eRSe|SQ~vTh|JX-!5LNujaw`rjGh_@xX|zx; zWDchL)|m{PR_oTjU=z)Pq4ULQho9!>5v1Mnb1_5U>+6rMc#uqRh>*l25=k<%w@tAO z3IPW-yIWyX0;6m0+b(*-UFdW$kZ^rR*htJmWQkByowM2BOYUnsTbiE=U2Kl#To35S zl4i@%sW=~B4Nsp$vx#q}=;gmYs%n{fF}XNToR|2ks)8moF%IEc69l7v7K-Xv6OIU3+i+1M72nt47Be zbMxXY^Ye~k$M327ysoyZt*ssFrXi6_HX=w+7_}d!(8^!ic&W1s4Vn_WSw({9Z#{O! zaJ_hF((M-j&Dm%rv+0L~e!&XFZYb<^gbO~k*tL1`f0+8}sH(oGTL}qiq@+>0QM!?C z5Tv`i;nG(?TDn^SX+c1`8|iMibaSZ-m*yRR-}lCQe=-K+o_+RSd&OLH&10RfjhF;& z3Ihp(Rgc^LxSbVq|0A693GsdffSdFFei@(^U3?Uh+hj}9%kZKQ^D-b8^d96nncC)P z3uGE7ee*H3j7rRPg=eQmDWEgn??={C1}A-)^T%8AQ$+^E0#Rop$Tb!kmF`o!H9S|s zy5c@yMShyFE@dqo4X*qGa+!SNvG`#IaH2qX3Gp?xF&yFZifepgv;?68K3ZHf(7$V= zDDy<4LQg;@VB*1VN8LW>dF+1LmfZ(Va^%+pXrvcKyIKEF z)=x*HEH>%4eDpf4%`IBOG6Gl0xBKQSyu3stTDt;ETBk#%jR+&xk+UhUr{4 zLH!JU|6%L?&tQ4;z*&aMe9TpRAh(ilvLA}ebBX&v78OZ6pYRi421NAPHm_s_PBS>0 z8T%>?at93Wvi($C_gt&^_1#iRyJ1R7LPJ+9)YkXkrtnmuTz$*(nD%|tL-h;Xvl>%T zrB8<;pFh2O1P-pxh2EEr^MIYA?L(ja-m_v~!JG~Co^$r;IbQKWjB?E8-P{q^9+$>` zB|DbS@&+$xxRcW(1_i*qfX0Bdv!mnA0xw4V{VbpJns6(!Xg<(N1dR%Gt4t63mu*iv z0JU+BDHRDd@-KHE;K9tmgR8eDpFT`FzVGd`SSi8ra65G@y{QA-f!Nsm0;g(IcvU+&m5@uv3A&3>F1iAzX%Y7D0l~|+#mBFMi1OR|b5@glK8A=_O>pe2|1?>53bapkSzE?GS5~7G8 zqP)5MvDaTN3J&deuO7J(C$(kt0j4Ju6rqx7vy3&SgCgo(8tJJ1S5mQ42-uEYu(Ki(8p~58AE*#SZy! zNB0z_F$C9nz(xqf#NdWN=M1nLo-w%hEU`V^6IlqQsAY@~SJ^mZI3(;rqXRh=#jVRD zmCcwQ0OD|!kj;t<%)QM86xIOG!7({9j`qvPe}6dkRI#j`Stg3t-2PQ_SjknQ#gy&a zG*&m=4utw?HP3BR)et8Z-nPBh7kU;2jmF6Wc5K{<7wwtADFqTa|Gk=>pEsY7{KyNw z-|va*jedT}*J<#|`3E@rgs|hoS{qW*PxBn=BP3MmFGdv>BfpEXi#}`q+9EG>UkEOm{+-Sm=%`2QJ`Y-J`R7-b=w=fG5FolM zo0t$BA|ktmt|$ou1%Lne&sQ4SjY6bG0Av`( z0T8k065)UogNj-cs^khY)jO>odWGyY*55Fx%>Hw#Y{2*gf12u}M9j8>%Jc`Fi$E^O zLO=x^>cgE-OGP@Mt7LvPR*c_thRGeTKY#0ogkt#L&9Sx;c*;C8a6jQ8@sN}=ZwEsH z8wyvY>xw_F(60NbG~6aR=e!tv+>5RipCPr@aW^-e1N~RF)O#^J@V>oq+(o%c(GE#&q129VqdG_ef6?}IJb%?b zo6_{M5wW5Ui6=TSQ9YdTK|5-$Q#!8d1gBsZBu3E=1Psc)TxIgj6aOe6d*JM<^H^NK zx0%hdl`~i2D7@8h*X;%{+z0P{5#EGOAgNGi0FnwPLR-VNG6y^G>1I`Dk=Tsk1R{ z6=+2=*}$*NclAMvfG@F@$CS4ut&rQ$?e`wYDfeFs7HIPJm`t(#-1>{2=6@;;ux2;GB1VuC~3RtgKvVI&Rkt_4)#-ktP@O z62373N|vN#6t|Za@0yOv+ZoHU-S4758AxjS%6~X0zMTKVW6)t**7c^7Gu;DY@veX@ zFYCj_$@r~N#xEXTrVocT>e<};d%g@Q>2LLIo1qx^WYaL+TI=~b`o)3|D@8} z%AA(4;$2HhDxf1ik^ykGEj|6erR^HjjXX|tNpAMwh*dPw`xIs=&FSmueao`YU3!|7 zrSi#i=jc}@;V9x!eXWsIdz%Rd;<8g26du?VU&O-NhnPg^66Z=MEDD@1Ue-scJKNZ}j7w^70EhsPay8+s z&S&0YLJth25H03EP`-k!g#PpzK#}RLyn_pp5Pzu9N1fKZvf74qH+ihRN90-biDVvYC17U-c>qi$pY@ih%+3!~m57uHh zu&exD_*Z`-W;m-q+d{M}pJH#Q@qBhQ8&iRY7(yzsbk8`IIC5)|9bnqV?u1|6P;5Pp>eM`#8 zyrS|%?Ho<_idoIZip`_c11gkNvPJ$QYmP^yiU9jxdhR8kNPL%=M8KYV*siUmrvv;R zyQ6u<4ilE{yd5Zpgc*NOB}yIEw!HpM-2%|~_~Z228s#C+QuqF3L0`?BrP-$f5KbC` z+09iF4C15y3jz~f1;%-&E)Cs-i<~88J`6Lvjva_4VzDA6IiX(+)}hbd_y2@;<3CBB zj$XoBWLE7oPpe;U`M04(tP9X4v6CouWp_NU-P4hE_vuAiZj7f&wcYTw&iqYci1xYM zWr`8;xhPy{wk*Hf7OkQyk=M4B(S{08V>NRh+Cz+3u&K&i5I??(_q!nGFk;;u&#Us_ z8iJ^r`jesj!+U8vWIpNKH$C`Q7sJU+EBZ+*z;Yr){9N$EvXG;vt0?|dq@Sj$&2-%J z4pU%1F54_qR%;U~-%h_n=$qm4w6^m6T5Yz<>L13njb+ z7@ldMk36q?>HwA_k_r{VKn|i^MdW?n-$f-WTRQyY7sT84Yu}x1pt*`5t67xF<{Nr) z(%-^XGH2aPqjbNOMi^l=a-XUjR9R@)?+<{E%f+S6! z?>|PH>iU!h2EB;Yc7pvV4^=?l0`pBkQ4Fi|^X%+F!qH_)zbP`9KU$O)BkX z<|Q%Vh>sXOw1ds^SG7^}l0~)qPKq{jmacB~M$z&R4)}LaO@%00(YO(ZbhWPPW$x9- z+k4>B^yGa@grC*%aJGxBYALNfqy6dM7QMj;sRc&&Vd=Jm6h7XXmG2&xv4M%!s*?xs zANUV|#P*iiKuZfSnLUn>{P55~=9YNVE^!d%7w*j|q23gzBLYJKq zRw)tTE7TqT7}5j;hNb}+R#`g$qL?HuiC2E9emqF!jaS^PEeGA{~ zO4w|AXk_gL#$w=xitE|bR8T0^gPTIPsy;C2qW&SDp4?P1fnv!xU}tt?*I?_Z|IQ4M zYw=}dulw;s!iTDvdq}_D;mt!Hy;BAbmhIONT(7?^#Gxqe7pfC{go(i`X0*c)%QyZu za6qAplzWaHUYs|?AwRQI6owzS{B^}1oOGpcj*$){u`Ln2aEY0=Z6`#gJ5~6XfgZIy zrErM=ke=V#*BGqF%wd0DsZq48qv`~WVwFha#|v#}o(4s6*h+3X*k;?Dl_$>cD9kC7 z($+HoV&O)0SEpF@c`80;(*lX>-Tee1W!3j0ZQec&nak<~D?_hfNUN>;&Sn2=IY-A| zStY6&OC5X}+#=+d24?ASTl;aOiwY+ZyeujieSomZ*)5l?QXQyYMDYZEu`255Cp0|#$gu!}Pk)7YCLSIVE^vqO8?`fByL{O=dU zRY*NPUovCe9ZVOe^xx%o*Zs-E)RL*J$uMQCuTtH_$mx z=LM8Ul3*xq`CxFf1FbdT8+Mps4wRgV*_PMB&_DimRwvYr04qXjjfP6?LmokTyGr8pr{7&ke z-uNd2zcnG8Im|zC&(mhU2v8G~U7PAya4PTZ6hEfry#kDSLbL6tR1O#qs*>AitWyBk zGnuaHsjb7aQ~3901n;TF&T=9t zlze;r&jwH6e6zWTQNwkMGd2f95q1EBnanncN^%p>&tR)hFBluk?vZe+l<-^c?2-j*By8!j5_ zR4Z=^(|PQ*q=-p4hWh0gl;;+l5P``y)9w>@zP(CDZ*s&pE*LF0aiithAaGw`oP3-*r z_QCOv8y@!x6^D|*4-WnHdwZX3kgm=rTQNg1nGn%_zS0xRPfuZehpcR>!u~bTq$X^B zD^P_Ff<0wCRXgw|{zh>#qgH;NXTcmp5e4K=(3pJjxSsQMv>Dyw+$aFbprez|$Pxu; zjix_F5$tu7yRLth=VE|;m^J|VskF9r+KtH;Dm0I~@bCg_ zE?6BHRHaA1b@eELD*|No$d@dC(JZH7p6>F~1%P4T74Cac53d0AOGv~%F%i~wegS90 za@S)$4CKNwP}nbTc5tQGmjhZocw&1tL^D!YM}02OcR zV_=l;VvGEHqkog7<_JlY2wH{v$*u6TCgajy1v%{2C7Pm@#I)M1jom!^>oMGWKzl3m z>Z8Denu9l&ZGOdUDz^v|);7Ir2J7yq_EClZ#kPF4LFLn_nvaAb-joU)y>T@mkSw-y{MoH1sQPeA3Q|wsFB6qYC|>BZ$7UiRI+P z;^G^|&#C=tAme7mk@2H{uY4XawpSpmD8f`&8f1X5Qv*u+r-veoNiSkiu@s%V!QG~| zYxE6oO94rsyk9FgRqU0^icd*rA?yI#+3k zrFG<$kPW_M^Wg&&zg7XkxKPcuHj#yl^LiSVV8nln!q6&55}?d_?HRFNO{?61qU0M9 zpTFGIr8s}f;tm+0r+LU13BGV{0Ef_Jg*F~xS3mUcd0O*l1zWM z`q<#GxVg&6J_om9R;5(DB7!=Dt4Y zj(1kTeD{85VK^GaY5@KwPMPAZAfGe`Kyqi5tPUba5fLupRrM4KfCQWZO!nF6zJ=

+cVKGrQbio&;@ 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 literal 0 HcmV?d00001 diff --git a/public/logos/cerberus.png b/public/logos/cerberus.png new file mode 100644 index 0000000000000000000000000000000000000000..81e51feb1da24b197810abd229fe3ce2b7a2d6ac GIT binary patch literal 247251 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%0A=2Zx=@k9NF!uVPQERgTkdk;n=SV=;Ft!T54qE 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

_Oz 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 U5xZK~;D$$vvZ^vAQYN4N5BCh5jQ{`u literal 0 HcmV?d00001 diff --git a/public/logos/chihuahua.png b/public/logos/chihuahua.png new file mode 100644 index 0000000000000000000000000000000000000000..c2d0a6a6ed7de84752025e8bb08e6db53f94017d GIT binary patch literal 35086 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 Ad;kCd literal 0 HcmV?d00001 diff --git a/public/logos/chronic-token.jpg b/public/logos/chronic-token.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b160f364d1dcc280706ee1fbe675c93bd40c3651 GIT binary patch literal 15454 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 H=lTBy4Ia?u literal 0 HcmV?d00001 diff --git a/public/logos/com.png b/public/logos/com.png new file mode 100644 index 00000000..40e410a3 --- /dev/null +++ b/public/logos/com.png @@ -0,0 +1,1527 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + chain-registry/com.png at master · cosmos/chain-registry · GitHub + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ Skip to content + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + + + + +
+ + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ + +
+ + + + + + + + +Permalink + +
+ +
+
+ + + master + + + + +
+
+
+ Switch branches/tags + +
+ + + +
+ +
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + +
+ + +
+
+
+
+ +
+ +
+ + +
+ +
+
+
+

Name already in use

+
+
+ +
+
+
+
+ +
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? +
+ +
+
+ + +
+
+ + + + Go to file + +
+ + + + +
+
+
+ + + + + + + + + +
+ +
+
+
 
+
+ +
+
 
+ Cannot retrieve contributors at this time +
+
+ + + + + + + + + +
+ +
+ + +
+ + 101 KB +
+ +
+ + + + +
+
+ +
+
+ +
+ +
+
+ + + +
+ +
+ com.png +
+
+ +
+ + + + +
+ + +
+ + +
+
+ + + +
+ +
+ + +
+ +
+ + +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + diff --git a/public/logos/comdex.png b/public/logos/comdex.png new file mode 100644 index 0000000000000000000000000000000000000000..79cc094ee395b24e75367b270ca7118ef5f99369 GIT binary patch literal 6613 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�RW{^m)e%#!$UCe^ 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�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 z z^`p>7DS*1uVyHbLRFKOoGX7@zIX{n5glDpILoi8cx~)1@4&zQjRJ%M}%d zA9gPfdE$#0B@<^yN!31kZ?@WR)2!9*9h&}$9LNoJV;t>Wi@OnB1!YIc22A>og+dzE zcu2bHeCAmryYO&U-yN(6ThpF1diRb>n^bpZGih?5oIwjl-|11L@>7HTwHA~!d;eEa zQ3Q*q$4`$tJi}K64Clr3V8Q^*Naez$wHi4(;@QKghSO&x7F%S=M|9Wad*Q_zQs1KY zZlw_d^kInC8-87cqa6D`fz}Q~jZJR~1^3}N+KJ~>k7Lw5S6BS&94;Q1b-f-;I!lJb zB33zEzu4xD`3;fA9)8V8=c}xWRfo%de`7?hGNs(<9P84mw|p!YW$%Bv$f|G-s>S}_ zbw~aPr6mor;p30-ymV>^TMynKV8JF!GVT8yK!6<-?Sqcr0&^(4FGapVDm0D1BD%KY zjEGniHmaXV%u{1>rwz20mqEb_ zjgy!^oJ95LL{h$D@Aq$TUvTYSbN6^TG&J-KUin6p$EGi=vLtKuc?0sG;j&iEa#^=y z{(4SJH)xDH^V!l|Ix~obO(tLR;}7e7CHZqgQ}n`Jjc@r&~rC7q=<0(?9XC&tgeBWhEXR`g4*CN zdv296OmE=(fV8pRdUf6?WdErNNls~QzifLMf<+wOy7+k<&1U#Dc^vxss>j2^;-=tK zT}_fdF4`it^G)gNZjqD~v0(C)hn0?(RsN>2D9==7D=#KkYU9#c7Uh@i)Lw9?Jj5jY zuO|{OfI)NJuP(I_7R|<2#cAA&v1So5uBT;2>``dY*!~U@W0*3OuX4F2TMu! zNKwlzEAQ0I4-8#q@hwTO2CmnXo|Z2oq0#n~qR~$)O8zQ!C?lqQ&qnxBMx5yGq4?Qh zAwXZNOIq-+SdaGsM%jNqbThuQ1;%!Xqq@bg7#AV((`^YQkQNsab~AQITw4jilNB7B z=#rn2eL01Ke3=jb{W3{6-hMhXcO`Ibj&lU<_9Q2TQYvn)SRv;Mc)H1{K*;Nabz6Nm z>6HroNth17LDeSjqJSioXabP7&<5_6APDpn-ZX!a{L`h$h=$Ma@xz&Ks=G?(pp&WvTQ{9}*rios z(r83y*Lq2Q6_BzJC5qKhcnq3ajm!plHmm@*_j2cgJMF-yf6+h4P@5BYmtSKcoz%1+ zSJ&p1j*C9sFE+vlL1V)R4Hc)aLa_yE-ThG^`jSDO!v^E~Q(9O;pi!i#MVd7#WVWYv zQH<)gRgU2GskS#X#}XN4b(g6bbe0nH_*>c4^d|+I{@qRM)w=Yy6v;tK9Rs7w!{W3W zsx~ft$%HnD0}i&$1}!+sOEDn9T4S|rn0v#`{ZWxClwrAjd3o>U=tqF)iqO1|@82NM z28LqyjW08AAJuC?n^XC>WM#xOATr$w(I(z^I@iJt09K0n9QXI99h+(#gU+Lk7~uy0 zjfH_&*M_iZxHi4dL$|cc-F{AXXO9_0^15Cd9i9_t1D&P`(Z>T(E8Mh$ox;T7lx47i ziv*BCg8-1yIBD@gUkYj$BK>zxw#O!DgrfBx7&teCIeE~u)Hn__9Cwbov9Btv_J6~xdo*gM znXTV(xuYYrx1G|AfD3z&iB|+R~7!Pg5Ng- zdpgLTsDGU%kSw+noQPhU%Nmw0Z%8Skw=}Ix8=Ba3_)8k5kpK)EFn3kJLH$G0tx*6n z2QRH5y1S;%Ri)*lRtf4rPWGi|V?PyD^_q~`a{O^QP4y9Aie1c9%gX90KE7wp@g`67 zD>PQD{ATfb;X3J`>mu1CbjLKB2}_%yk%S@Y7d8d$iS3>qCR0nbU@X6lG3AJfzusFs zyeTK`O>nQb-h*eud3!GU%K$_`*lEfCfSWT(3bV)rf&>fJ)mJcE*sHUrOBa={`>r<2sK^ zF5&eQyYsZ$*^Sd4@^ir(+j>~f9zbtD#ohYc>=>|lfkaZI&&{l%N)V|Wht7%7PZX^ubi}iiM()AzcqQ$dldtHim<77nPtgbP% z`QG*ipyM(}s#l04anVYe)q}?xq!KBLIuV_@Bk?{#ylwDsR(+ncWB;R63~ojp&(Qzw zAjI;y_=f5325pO-V|4iT1T_{MeDlWm{Cs6Hbn2HI-#zNc$=6sJXRGJan99zv_^D#3 z#-d!`({BYDuSLCk_s}rYqNE7~xcgq>s}z;r3Y9b=-6*HLcn@fF^9&qzJ)AAoXLwa_ zjwb0UYG1GF6dz9jp2F1S?3N)brBbUcsoCaSim&t80LwqdCcZu5kL1}J9s3BiFPsks z73a7W2F(16t-hBuwEU-M&1ov%k#VDX?d43*HfwIH3A&-TXb|vyCV7BPRNyCH zFsDilN_wiqbD!kAJiqz)0cs*3R`pWF9#=V+ULJDhc~m(p)qc72O1ilJz$-B}%p@wW zmEBb>_xj-a1b7A}dapfhrhWh51DT(tXwREJGNAA(>LmG%-Lr7{lc__ zim1uEsdxKqUJQ`clK_cm_K*@wh=naj*n)mxnPOYSFoODkZVSa21n{@LjX{ChNi^IJ zgOEXk8|-(PgO7Pz-q)Fo<>l9dvZ5htolq%6 zwLwa&2lw2FhCVi_Az{zvOItW3nLHP+L$!Yq`I`Wd8)MXSwL@#+s#4lE&(nE>F0Yg8 zbfPFmjppEw!oRWZ!v(bYuKe;o0-$ zbhi};5=lG%r^*DMNWCc_m_FYs86&Zt-b_)>6OV~uM>eHLz1FT-#`|#Rkl;;8hkrh? z|G$nUh>VXKCL}A-&+0gP!e=LHjG4>jv5Zp_(C;yo*SP{8r>rR_s?3^(fU8V@gVJlv zr&v4?6R4}Ft@O}1m~3#L?Oh~qOHi`T-uYZyq@XX{%;N7KHn8q?C<`+!OF8Cd3ogLH zVzk1Q{XFj+ml7XC_>6(QXscbhVB=j|brvnbiuzw?_V*t(WGofnYhN2~|EmC7Z<5Qr z@@xi`-n}qS!%%8;6#^xdlSyn67_o@Qg7&V_U2D&Sj;r;j>B5vX;V*YCA9O86r8k93 zjM_S}SgR5#N0mwAd1611pc)B`(nWLdXpQS?7t!SGp7;{@l6KB7-iOOw@O=HN8LdM6{Ev(<*iXJKU-vwZz46+d zJ&>fay_CKl@MetYDrvp8M9m|NHJGH3rwnsDunBYH5in4VmWpxpUcpMc;yq%wHd^*` zd^eSn(b;``c@nl9-~S7LM;3(Y6$ANes64$IoD1CRMY&D>}3qa+#(wdwJf zXtim3Go@h1b}t5h*Jw3vknlQbfJCGJ6HR>oflk4)1HMi(xtXyyXuolEB+)#g{RV3j zcFw9Lh%p76E#kyt<-AHT&8sqjsLrF_Pa8FQ$**&`+i`y*Z=dhw#SADPh*m zvRtjLWstLwBv5?!UBqwop*jC~)sh7tr-zy;Ezg0iK$TMMAsp(L@vJ(X=$#U2A-dBa z4?e3G7JJHyN`bXMb3sCXTOmYW4hCQM+BEwaUzN7OYTJzu=>XY9mO%5<@NynUDDV*e z>h#ygUOXVgRn=Id2>Cy3#E=-IigME2UXjKAMj*7X{=K_ciODwYiWudjtv3t;%`keHitsD|5u ztHT6WH25M`Q;kE7Ia4xUA1gR58Egt*yr48-u26p;@Bo)tFZinv8xG8Hv>r40YUN8$%&X=H(r zX_0SR+AMa(Oy0#|zvko*lN}Tqnsy%t_R62!0Lk)z-$d+1LV`lVcVLZ5El^az?T`5y z(lYpr6{%pHaDa--9Vya-DwXO7rnn0FevlEX^{SYcodJ*QV}ySuPpt^(GVOnbeh6m3 zncoPU%bI^yMK^!OuaXwtx@6-{WfD2E{WxYZgH~^z42`hG&V5Wcr9SsoXtkE0D?;DtP!2)C8+vJ~4BIMV z?fQlU;H3#C=f+_jX6D~L?ja(}=MRRKuXC>j8kr}5qH*}SP(pgh<~J#9N;Ah8nZa$x zoyN~4CsirDfnD&Cv_Na(v00({sY9MUl&i(w_f1ob31$BK;9AJH%6X8d&Mhhfgivnk zP)NbV`bow^C9!mjFG0HGq=%*C1vT+ym_6Dc0s#T{qgj69>PkH@N8MkHxcIlPk9s7k zr}PBr_Oms&lw+pjUQ*N?E*qgPHni4+`Qfrz7{!Yrs@k$q?ZDb@E8MygTPv%!p4i`t z{^%Z3YI9Y*{jlZV;=)KX)+TyVOzS2Ve%=!P%6?R22I2dR@2scHw^f zPbY*IAVkJ;08XUl(X!OYY_>545OPLq0$D<=m>d~F7WRqrDpYmpAfU>*6y9o>Aknp# zhQKEp>Jd8;_*GrOGYvd|b(6Mu9tPajfC!?4l&c8SlC(L(a5$zOZ>f?+URx~wulF`q zaVwRb%I=Ss2E;pQ_j*P{hyUIZ$Z876uU{7?&%%MkIxE6V!wXpzb1aD}RUtJ$JL~~j-Bk{WJVCtKXzxx9l;4-S*e%)&Q&%G+#Nkt7kB&1zG*}Ciw6T&) zyG-IQq4G_Ivn5pluAs4oM20tQgt0yY-!{8n6rrekD{tkF(*NtiIzSB&r72V(D)-K~ z4lr;Qt@8{)JGSG}> z45pUGLm^)-bYsupKp@jPVxc;+qSM2{(NGF+Ye~p9dw#l_q7asy|M6Gn7ajx5hpa?9 zTWh)~lfW5E@v0BBJdJ6y}#nB?l3vofpA-6#|Mw=49OG@O*SG9ksD$}F&qnqC)69#!L5 z#z=rq09;{7+tSEbk8VxNy9Xh5)tPULYgBqU_s7^+M|hQ|?@nWQcw7YTe@wH5pE#lO_r>SwZ6Pg0CR7*X1c{Wg0^Zq^sm=3Y+%t z4CWm=o{REhbOfsuqp@CARq2m+M;U?u6;0%UENj%}+X)JqGmi_?mvn=(iY5J!r zc$Z0A@olG6hGe<>Erc?d(CB|Xrhbqf`1VzMK-urBK?Uaay~e2Hz7x`wTxWgPw3A!b zn~Y?RX@@t~d{wS?E>7X%q$c(?PbJR_N$u}1QJ?yQ+evsV2C`4O;^Hca+~6`ER%JqO zn;R9FiW3A)mQuJbhdaML+i5yvI z6b|W>Ebb~V0DxlfN!aLF&Urt2T6A`=edoValcf$G{Q8R8!exrV&|-1?Q_>)|sAeWr z#ElOsuf~-BH^)vH(iO!z&~$%#ddpTW@5gZM1Fv_sewQT$BWbk^u(kf>c`VD@uKTX? zGzNR84a-Ezh*u4b30MRUhfvxfM@5|ul+yjyA=Dm-u{mn&&`4Vz2GsqhC>f&wtG-KrGg}3xyM2#*gf%d z3@-7{iMw7L&0}7c#?cl}I~}WYQyyOiWi{p=pKzmYvRLm{V+fY8WBBcS_JS#-_&Q7? z^-{&Dttf{|$csf3wPk4~QjPhicpSaMD=2HE(f9!9DG!e1#cV}wcL}D_@|t>7>^Mfc zAA@jLVvHH*ao zojm6RuId_<_K8z5CJ$^=k?goAN4PZVm*(aHV~zPbVSlQIN0gY0BuIdndYcf%yx4xv zj5E@$H{X=mn45j>m;N^{LiDFHFn{>@56=3r9GTIjla+V z=^REKZA=8uxZ1~>-twpO=Nbbh=gVmltDc6xe+r#&5in%z45%n}#}F z;qBkyFx4zUp7Yn?PQVXsEDC)*ZvC-hp!c>_&N)~$>m(qER4*|B|5Z`Ry;kx#&l)f1 z$kB=l)jO41fyiegXm}x=JdQCXIij0~k}bc`!y03|pHl2T8GR{v zFln(vJn7MQrM|guQG~SO?~_X4lEzfNGoFSdmQfY_iHjv|0YfhY4>ti*E0(!VV@4)& zUaD$M?jjh3{s&8n$ljIe#`HkWrv4eO9jyYVdwCv)@t~Fv=^FEWtg5C8>-GT2 zEXOibJp;28MaEGr{Xk-s@FrSSdqtVcRa?=FeO24FGKhE$mHndl`Ko_8eLVVtila%j z?(7UmOKfZMT-x%~P)wAl=60qNoR$az55Y6KVE#f-E=w@{T!=gswQ)Fyo0N36=(0O^ z)z^66_YcVRgN5Qxr#SP+b@rQxCZjF}gJ=vq4wyds(_AYVrG`KK3kFL*Th}YWjo6fQ zE4uj5zk2v?Vc8+-!bL2G(uPaX_pT35Cbc0~G7-(HJ1z6k&h1<=BhD4=-g~11T_t0< zOOOT_-{Veu+ZR_O{VK|E)mrdGR^JRV5;Zxsa{3VanIsbd;1hYwu;NugvG5J8V&~hC zv`PU@UpUpm)cv%=MCMIp4zsRHwIj~|fq7Z3;eG7hRNmUh+%GS!cy|?&w4Dq(T1;<; zZ9v7%XfH_*h~IzwCX2l#;P)uwJVgtQp18jcseH;Ol^$mx&;bR_nnhX@^93qp;DSAn zDb-lx$pGdoN@tQEsTBg0rl@uBgR@Mf3ro&dw|Y*A%Xg!~TX}VKQTJ_P7}9lCqLM3y z({E3Z;Lw^H0ado;SqV1elaJx{a=71aX;qpCG`9awT_hg*Lm|4_>zp~d`_?p=-T-OPGQVQ2 zke9J3WQkX;`nx;sOMTyw=OM**3KxnViY7Y+3lBWyOBZVNuqk8CO2;w5TfNZ}cVnP{ zbZmUR6t!dp^hkhu8+7^#{tUU}GIb&_l>3Nugxod`vlS%fy3CQauc*a}DV#XGl{APr^)4L|XX z7a_+WBR0eNeyH({HEJPKjr9NT!W9qxkx>_qwXbsL?_iC2yHa~i zebDjmEt7n1F!o3EF#t_0XcDw^Q|-QmWS*vvl8Awwc!{Cj3pE-Ks!jyEcKGO@Hd)R1 zT^&Q{81@mz)PD-lfS;1T3%p+&tZnwgBL{hquDLT_s|t`dPjL&~O%vDSv!-%MOL(~~ z26-%g+L-78CU_XfKXwZpmZkr!!a6pAd5rveFL-Ldxt?qjHh7ityq!eE8O4ajsZHr8 zp*LE#%P+27OTiFEeH19XDl%IN8(#D^H?ZQfVPY^!5J!lxL#*m>6gpM}rV>sNAX7Ft z*M);mQ_1nS`OT---`1`2-d8IlGV@ImqGmVC1hrMe26gk zvc5GATud`*45rs@J=KUJ@;{LpvsnFi7Qk*oF{;hO@4HRC$wUcH zHGuuWN}x2S0*n_4AHRe}8!Q>Ch>rg?w37Bh`Nw=R1_&w64*gT?I{ZVb096|<1AcVRBc+}$pQhU{s`q%T|6a&tHvTk^-M>>LmHJTMGXG=jz@DTS=f-ES?1qbv;Rj*npQ_KsWvlY*V zu9{9}*hZ)ELtV1IVAIjfgIR0$(#*1#v^S;G>w5J3p-~-pIUu7A{oyl79;;!=Lq$gq zR%P5|#z$<83Vn6$*OM`|x@$i=@RK&a0h<_x`<8vGY`R@-5qF z$VV_LL^TEd^J}h2BJa&;0j>YO9kc10S~{#W>QRHGkk3zBJ_f0j0zXIp`Sjq}lIPF7w2BKyXthY%7TY zG3XVZ)&(y}UpUN{2*kP5)NGJKIS3wt-K^pU6<{I|=;@CnQInAr)#|b%8Wo5r4SqX> zlxOn3d1%}OZLD#+u3ss~|AUe^a8djzh4%M-y_xUT(BQi~6r|aZ+fuXe`uHm)TddSu z*?MS8F4UiuQ37VpoN5MzHhYiOK=`NL<(J^bKdt-&1~qC{W;qymUtr>iH-D5Z(dlO{)!D|0QPp2VWUVSFPe2Wvjkg4XWtUj{z~H6*~7;y9V^sb&Hon>s#r zy2T3))hijDz{8LlS>fzrI>W{HucxbR-*I?sCJbl>alYO`{m`x)!MZW{B{VL-&^ zCtBLe6?)s4gZ;j=Kw8q+TmVRi5wCQJE#050%EH7i#Am#`6W9>~O1Y|3PO%wj?T59I zhYNi2>vZuO6FIy1M?T=^x>l6V=bzj0b%-S$^9Pbb(B%A%DpU`3sKC-C8|#dFK>8S( z43GY+)i{^{*8^QCG)a`Q6BKe(Rc(bAgAR7RkathB~B;bH($ia#N=H%ecE=u z8Jtoflf3iK@RdwP_*LKEBnF;&W_Rv%R>lb)FOvvS*+& zx^T9l&qB#76nU=59Gn=85MegqQ99<-^sIK8C4Ebj93a0)#&E&6LCih_b9GP;wrm5XmjxILbNX* zeG-Edqg)J;>!2?YERr$QiaBoR(4k_<@~H7+Jm>Cf3G_R5@(bzo9?N*Y}$v+!Y7s%4*hlDpVoShN}6yBi83S$RqTgZw1OO&TWE}}k{(*ujYDl^T370Q zeWFd~#-pPJSE}1wEDX*sUiG|%9t|>@U#f<-=MhR8;6>1uq2?zWB=aaKBU3o=fdWpm zT|ik!!8m0j+kQM$uXiV0_!)o+0>bRdpH7q5`Aly`ii-4(Z4GGOa~^-2U4gp&qRjYg zcl)Cu{-O>ipm8wT^R?K@#I>@T_bveo_oGI8BvSgftSsSDy$#(j6IXs#(;W#PlP8W2 zY+v4#yC057=Bs>!LI+}vZA?1a{*+;y^C1%06M;#o_3d^tuC7&w<*5r}<9GYK6-q_w z&i-I*;NC>K+qM>v9yBcLmpkot17RL=42a(3sY?()-#$fsy+FRx>HmS~=l*m{yRyPh z;@7d)w>ujnM@_}|TVm|H@aMF}{w0ZbC#HGBWHxH3anQx`l6in=l7`9DPXt76dBj$v z3BR!&Sb}Jk%Ya3rKRzZC z{WamleCk-;@$hAx+EYhYR*D*~U8l3xM4!!1B<9ZA!rI+uHu9o-Lv&{CPBGH-8r2>+ zU7nq*ckhqD`N&gl64`Pw7;J?zBc)C1zlKwC_!{=;wYDp-Pf(~osVyi9HL(ZpHe_WN zB7x{P@Xy`Wo>%(qH;ONpAS&O0IH})V&^EYkk}n$PM*^;Pts|V>w9BkNNswB7I1=HG zLyg1atHuCWk(rxpQm+?Y{)SJP9TBJ5Eyuwx_37)+<-62gyhZIBS=!u(`!wqwk<^q) zKa6Rq>873#I(Z)5Yd;6wW%$6AHD}Eh8vjYi1jZK5G83++Yyr~98R9R*rQawHVEdc` zDRm8v5>ETt}ePf3{`=BH9tagwW!f)H7 zfK>~{2OOL_Nc3SG1ml%IW8}N!3on~jD?HtQw~BdoTiQ~9hxO&@Ja4RIza+X?3iS<$ z%z*m&AeT4PvwfNcSUlHvx$DJ8Kmyl+ZbjYa!;HsNT^_cx!vM=x{!dn|*)O6pUnU}^ z<2mgc8os>bw9Yi?@;e$YdzHoz3kjTGWi;7AuQRRXSA@~(S9zfR*^Qx&3$?^^JYI`a z9*TfMAMDMOlHlvlosyi$_@?e$GmST$M+tV}-E^=;KgX?0-&-OY6V7peMOn~L(5GU1 z_@}z12>dY--L3UFU7C)D-Bv-uhhwFS-*9hrfJZ$YVkP*cICU|sHtmQpu*yO9%gOhl z!Zc%!hEdS5>Ap4ZiiOvJu&2@Mtnlk#i`C%ln4;E`ocC)@)xbhaNnaIYsA3w3L|<;J zSr$9?obLv*6YI|zaHw43ek+*T*^9g|Kh@(S2o`?Jf)BHJ)6qrP0dSjXC_t=J4|dqf z>E?S~76wW~gh!p?A_CE!SVUf>QfTKTC0B!IK9>hmI(JR(>Oq!SR588cK~QVh!_)wO zpX-#b!XmLsnv%f^MzY!nGb9L#W{) z*GL7)=PzvCIhX(Th7smPbD=+v17kwY{@w-oyDG&o@6Yc9HMS15f?&_12nO${e}$2GW05 z%v$I@g}0uhh3eN50*0)3l~GFK-G*#EBFQLzIq|MD6-yFE0V6;0N<^~mpdmm@OtnOP z+WX7T`{Q>!J`ph*$|o91p;R)8viKv$9~Oux z!Z;9yL)dVTHvU#s3_9gYpl4Ewms1Pv^z-fW=6~{QbLalb&^_?bmp2_MJm71YTIzJH zSliTcUXIOn-o~cZIYKio401QxNh&}O(PS`80E1PPhA>Pm%|D=%=sK<1Q>y#L*Tx>E8p>!zxI2_qbKK+g;ZEX zvAN1X9aeAg$3t32D5{OIjM-w3yLX<7Hr`U;q~AB{=@Tz2{fu8ZL43)_mGOII{B|YY ze3WYZenBqb5)nfdzln-WrxQ;iyp)K1G43>>NCrSk>%wi?MFlgS{_)hC-jkBeQAVIg z1QL&AkCG!K@cwn{CcP~`|D30f)n1h6u#F$<$r*Rb?<*m~>c-yU`8In;vBzvZ&4*Z3h?h--#A!F-Mk%chQ^aFp?>JM8MGyYg9%OE(2 zm|V(b^f!QBmi~x|yJ#&$AkHl-*}3_uE6y<$9rWOn@wjc%_I=Z6KKimp4Tb2 zOKZnM!ov}V)e$7s>6CRGt+V`r8oK*2zLq{p@O9y!E`N-1LYrd3eX_w3N;r{3I&>R?5JnkTNQZh1X`&L{1VBvdf_@^V&f`xmxpK~h z<>kGeG|`P(&SC@@fo>4EZ~w~we!6Aj*9tu`K}JCq^|yUDrTUfy(ie_Lv|yO}WY0iYO7(+x|uHTsVwiQ(G*VAN&FyYG8 z8>$x+81MM_NmRGJ@2lhp+Yw5jl)Qzp>(2apL+a) zL2U9u!^Vi1%6=evmx+&TSpksJe%$51Nh-<_Mxd7nBp$0?%8wecPi)xo$iqAL-d>Q8F*t@( z7Bu96T%zN@FQgQ}(Q1@bu7`1@BqyDuwoN{t_Rb08{`uU+7hR`vM#8^i)4s9` zOLOLab=$s+$9vrKj{5x<)cXRJV)%kjUyce^R7F%rqLPDg%|zqtFHX88j0MId1Un@; zEKy->Rn}BI3t}u7<>AGx7N!=Z>8)=Q<4A)-W-zKZSURwl=`nA+_R9qqec+SR=KN)_ z^s*jCfDw=gJW1OG|0T5b^r@#=6B+zSZ!a zlGG4!!>N~_?B_vD$xAssUl<`IafJl#DPfmTg@jTgl1xfb%Az$zIb7X}cDDO2JmK|CwGwtASW@wp(r31dah)Ss*@0YJHX~_}t&5jEEUA*D zl0}uwqlklxqn)vRA6nT$qz_&H7)P27-S(*v;76f>y78yw6}0^MviDTZwOBItAf%S# zI3vIa^bUddZu|4ghogrtuW*r}LyYb0UAe)M!n+DCK*SWo1z<5nrx0Gv>Nm@{7G&{` zlfI;y>aC}wq&~?&^{}4R9Vr#{AaO;6Q6xme3~0%#*cYlVpL|ovqFQwY_8Eb`A|QX6 z`&w$0$S-*D)dO1^nx_@eSi|H$IsFDqcdtmOl9O37))Og(#T4?QTOWaBCHloADMe-@ zk-RIbsvdml?H7GX&&)dSy-z-Ad++k)lYg}5=q15OY@XE`U$MQVV-As2XONb+62#O- z_GP@iFs^enJJDXU#bF*5BvtR~caV=mSkh^yCag!AE#3C1kmC+&$Xfc}a~9w8^*IZ_ zpPJ8cMt~9M9|Cvn``7PZ=y>xZ6FmhZLP%AuC0UGXfq;u%!L$Mhtv&;1kW#$N)Q^zi zXC|c(O_vvMLUE#el}$kvNhPKD^*a%6(XK6?f7kt!uKSS?&PXyGX*U#eFUF`F3 zZU53wcJBFpUJflQm8q(fsM7Jb2jbDSg9QF8@h50>+MqnrB&j7CnIL3EScGI*SV~c{ zohBNM^>|tyTsUvsP1V(YDV+W1|J<;vvc(d)@K}d$fiE7rU{h1ue7f%5@#Qw0uR57vCZ+gIYmRue$?mdskI%a8{DIsTmt_QiK++?3ra`j4uCC(R*EgPSBGQzH z{p3>}-97zHi*5+~xphZMK_;a=5Q`3hh8p}6VVRe5fdsmSy!@`!#A5p2STO(2Z=Eyu zp_EdiCi>Wc0|jrk1(v;Vs^Q#8d7cYjYiL>Mu~^5o_=smKl8XMNOxTZ_yQGRnX$+S$ zqKz-`ir*tVE7|JsoYn>W+PCK}`rzF&=0BdT_2han0;2(emGw21-#GTq8mrUi&b1he z){k`EsppCoQL$-}u!Cmg%U_km&yA>D@>>ddNJ+>f0y0&aOALccB0CX)QeA@}vZRZm zv_}=Kts0KsS#j~yn<|&qK#CnBFc1VXFtvfG%dWD^Dk|!(TfO$Ve;hvgP74tu{7IP| z{@!qaHyMAeW{Kpm?4*}ziiD!53MZt6Qi=(^saJ(OX`-(0zt$f60!fWpQu?9k)7z>3 zFX1?#X%Aeoa;5$9it&qHJk_vhoZGeJ#Z!&v(~yQKO`$NYs7&Kh)vi;j+n)-K3P*3> z0#}Hvr7LDBK1}swQku<;#dXVi1pZXN@uxm(o4d+dNIfL!@A8ql zff%iaYPUsb7iudl+f2Jb5lL0GOX87TRZ#pk8JViAk}{oq3myE;Ku z%v8@*4yY#nb`g+&z(~fVDAoPn-09VRdH$03eRBHrCn@WUbWhcsoOSn(J+3lm_;Qe zZ9{!M*3Sr>i3t4k$l3*uH@~qN3*%d8N5E`zq8p!nyn+#@KCEB<=-_uow}>QuYt&DY z$TLSkw8cPG*_&sSq>xmEB;85Km(F9(RH(3gGm=vEG8H{+5+|YFwrFOnuLi9|5vL zIB9Qt2aP3#bz(F)`SBHZ{^{7hi>bc<91V5mIx+&;hQOY{$uCE&0Wv@o2t!1+)eqxJ zEo4=((FDvmEl-7TS8pi1R#l!kY}}JHxFp7ln&hPnN=XN^iZ2?}JT_DzfzNk{DV~c-m46x_N6n|__LPWtB`h8 z+S<~x@Y}n0U-Y#(bJi%mXR`mrnbjxg{+`kg?d9g?!n@XOTRwhF={fbm(51&ZeRKV> z_=NTj8o!ApsPH8Z3%6R1Y6QS>(wHsqWUOsF8l2r?)#?KQ?WDisT&gdV($UapT*s_J z;Ek4(|DV0<0IaIW+BeC2FYl#yl0X8X_pTx!2o@Antk}g~_P4C=s;jPueQj%BJFD)h zYgs$21w{lA5s?-;1Of@Er03Nn|M_O_-11uTLK0r!4&>dLGv}O{IdksJxl?=JvHRU~ z6U|nd%n9EYABHK6(k9&zRmd;z>4eXJ2?(lmh%jiCK!CbHJT_T1OVu8`^oOkDubi1W zYF_|k18hj3T@pAVjMBMzIj?-OulU{r4p#&=JYlv%xrKxL%R8f2H8bTHGVWe-fWw{%XA>eMMz{Vm=*ET~O;f${HClVq1OV zl-&)DqZ>WVLrUxE7%Dha9yN+|tr8D+`Y(=z;`gU?dQu&jKm$$TXGX^k?m(6XD?g^ffew(s5n+_lec;9C|Mbh}?{6=djVW{S8j2_62tVFO zjHbfq6meKSF1{eSpCVgxy0$=Y@+HC-cx-gE^ixUMNpJ4iGw$-_gHlmZ>YstH#8bqlOn$*Q!@_;j4nqqU{t%)rSpETss2SWv8Tl z5KNQEXy002lXnm-3{pb^N2~-^*Y2JkZ?=TJK`JT;=an`!`CIaYHcQtb$t1oo0SVN~ zp#Q`86bP zs3q`H!OwlZv#%c$(S(*e{2jl{L-Z)^$*))YCW;NP?8n2=;-&$c2R;)@Zgq5cUfk+W<~}F&?I!p7$Lo#keVdiGi>C zHU&TNe#?G5*m40D!N*+L)uf0(9N{}@>c!RUk={FY!ickTb2suB?|HJAU<}~!s4>2wn%B{`r3xk4hP*lg&qDb zH$TuH=cOLTj&5{nNiQ!~756YMt5GyV0v#oR6pM8vZ5`@125I1O3v*P(Kx3fq??m&! zarJSW4nrwr?mB5|;($*KgH)BJ;p-d;98pGTT4c(?D`{+uOE8(0b4D>@DqdFo zODSGh@oc3M+KA@O1#3&=Y&L0OQPG_L6&1}pwP(+*-Z)0M?Gm^yI~%*Aev$uP1?Av{ zOGg}++jH1&HPzE-Pt3{U8lqjy7XxuCI-NeK*vg;`^-mnK)J6PoL+Z9@1Fl`#_d9~)4qcO#-EtDhvOK+ z-V{)d6XaJA1VPcJ9Ydpb4wp;%=kCJ!K}d|Kc1mE&tf?Dbn=tA>Yi3NnZtbk8lTYiB zHGF2D9*;*wy6Ctk4?FUSv8L&I<=$C2t?qDOzPDH$G<}~IZLRQz8(~8Nh6I93pu$rZ zZ;I$%vnW_sie32rS175S5$kib9S?~@jg{ph17NH+Hlux%n*P#r#sxDnjdi5KHOGkU z2niffMkxe#Zg%E#39+$KBi0#`^LjrSO#M+~@x_RL+=(X-VJbh+bUxniKyjQ}=D|iw zt!6}SbLjoNmfg{c+otTlaV@77iBA1)i7lz>cz0^W@ zx@JI&C{GDvW0U}kO;VA{G>e*vm?#sCmb#@k3ijNmLJePMO5oe$PnbJCHErVoMA zJos(9092MNA)v>C1j=b0>B%WWo}b_Q^tTT>69xlA0&SFlu&dgLet4kuO^SUik~(dd zAH&eQgxc0g``T*#-ZX6vi@6q=8P=A@(^aUS(rD>Nd-e=#Gam!7-4dY9KutII?>~!9 zV5qO44}un2MTOHCFnMRCyY4Y^>heUfJMY;QeCj+&mb>Gt#BMpj4SkrZ>8YvkP zI6Nc}84;=6t?|sj^Sx;w#3<-3u1dd3f z^s$j6f1H$&y1{9u`_=Exo;a_k)44jF^s; zz-9gV75;6^$a9-%b5K3W9s?y1kqyf_Qceah zLjp&F1Y#mBuI4r^x(Y{WDCQ;0T)-YnkH*GHfg4E%X|>xf*&;3bPs4-E+QKxhJNHgNEZm)`3gXYu-<)-iyO(b7b#Rr;!=^sEKj zw~y8HFhZRrfxiqH{`Fsm485(Ej8a!Ktv4oP6k`eeHYZx}@8;Ljc2@cw$+zC)lEx?Z z`0??y$LsKJO3DNZn_5x|m_<@1@mN0DsN75efqp zg2OA1Kixh}g^}DK1RXI|kco@xqA^<9)Fl0DZ_%SF)bMq-1RfeW^6AkjDKA#p?UWSN zA2sqgF3e1up6Xq6gcu#3FIHT1c3#@cA6i#WL%fzqb9d`i+goIV&X7QdN+2sbX{o*0 zO)Y@jhIc6U&Ss|O*{63=qkJ-fvbtJ4QeBf%x+vqQIVU6yHJ1MPNXY~Y;$Ob|@y0dFv)j+jpfn_KN|O@%-cHwuegY1L>lz6>uzS&svo^et|L2__{_!7s7WeI%RKqtFtrmxG zE;}h_LwcmY)H^Am9_t8OdvTG405&AgT>u6gtc~RB6-AMh85aSNpXSI&nnrGs{##UN zjFx)Irn7_33>!9UU}ECVQW`Nu%~_-Pbbgh?!ZtyL^JpnPt{fh-lo4%_J}ugJ+($)w zfBjeC*5f)`W(I#l0*8wPj&TfLXO4*6;8Ctu3ICFbHmQY-%YaT7g_e!?O8^(Ss-+W> z2fh75{|lcCNN+@RxCHWB%Hn>i-SuFxt9Izhx;;;SQL|<9jXU1|ctOdE3!mG*sQcaE z&;b%UqK(qaGBX>FPD*~Zsfq6Fq4$%&qOD66qoi%c)pL`-U1ef42D)}ai%b!z7PGYB zK-I*zcket~8)f)AR|2C*FYXvR?1XHat-P8(Sj==(R5W(syDUMAzyV) zv*d1ylw#@3)pV;(ayK_;KeB1#kLUcn__pxNv5_M~0^uitIm3pzGA&7~-853#-j=?r zOT`b*Z=&;+#po_NnIOHC((&Ld(gtaKe9l)-_C05ASLgdkPw%6`U+*qH9)+u!-eOC?LEA4zfwqP0hc7+%=CIrY)41x00cM|7;& z`_@(E&1J%Xu<**mlE*qyT`VF2&`DH1c7twGCOY24HPbp%aW*?fO5xYj@gUMEcRHkj z3GoG+XU^YvX9?hg*uL^Hy;^Y7~8KRntvjbxj`Wy1YRj=0w`AxP6pyGs_{UA|uIe zB!N#W)|~k8-bLT0m}6PH-F>poJCo*Slf3asT{4E|ifwU_`zq|TKj3MQ5>2+%SC5!J zX->qj&<^kJK0*o0oPJflDeKYVuL>etBBG<|jB?>nJ+K!%wBfd~*(t@4v6^K`T$^f% zeJ8~f`_=s1(>4m+!|{oJ?1*+Z4jEE;e(&tp-A*SvpDmCu@T$Wil;3B)K?))uwCb?3 zRD%d+K^!nsXl?11>YBVe*RH)j2&xg)2@?2t(xhJ>8#Vg;22V4MI65V(rAca{UHIjV zHh!gFC#2b4mKY^1ZLl#tOtiQq7|hV0CYsJmpfh>1qOH<`g01JhRJ3*NhsC>$>HPKz z+MqikB;ZQju_V)yxY^b0>1O5Sol0aRU7bvSfw~wNq*Y{)CPZ1w=OmAtVHl)cU(Fv? z|NcOu#}#dhH0u&ayNv-XOQcCkHpS8aSfsSud0_O0`l2UR)a+b)^|rUaeWK{=tG=$= zk)b0zOag&)_An`4+lsNKs;c+2@0RUycs!9d6aQj?@yLaP(ajb%>I81|{VAcDLL5d* zg`rAb*^x?NEr8;nVtR*I{E2}!tBd7S*1D`8GdwbX<9-f-TdUFQxXpScb%Emyw=jPf>IhK?MeBd(o*OY!eiUKp=J&sfX6fM@aT3`kXOwQu4sH;arNtF>gz&wvV~3;G@+k zrkF?=ovo=CObQ%Di8aG@bZi%9z%tDVRk2al|Ms_~eK9#FcG0wmY2ED$%5T*k`X1G9 zwz?KLHaU6E`MEi7Iq7&P+-9LV?iWJxj=?JrqZCi(vF{OV0B3`G;PleQpyw4Gg+^MdL>(E83N4;{8(Q4*eO5$@9VdB?#w-e z**B6lBoMX|$g}n+kDwjx-Tfeax}Zu~YYO8UMhzJ_&3E=Xah73_9vby~yL9FAR2Pw^ z2;G5_elvr1Tnv)IfTiUYZ2c*%1y0`OEWdh5^|sGm+q!cjEjRhwZM#1j(xkLTtnr$btHS`!HLPo^H%@5CNGb}>Zbr%NSp z#*a&%{;sU#kBuIi)IvMlCE8Sw8Q;h@6$wMID>H;Cdq-20w6{8*ou!(a*g&TPK(FLn zc4XWj9)kw?GTm3cSPG9(br61Xh?gWHN7wGVnC8)IT< z*^YWJeK_a3^}IQ0Q?E7BT6JNMV`g8PF>YDw6b42|OW=i~?`OYRvg*@ROANCMSbL3z zIe=r$xIB6lfn`~+DdaX@%(gbt`LZtBn3rU-wa~iL6@zV=AEjGjKfNJq+U@{s!xkJw z6k(g^PRrP3D}R0W?QJ_ROpcAAMhLaejY}AaY|{uqv_>g1f{{|?TZd^6(aA1rplaq}G7`p&~6&b^vrBu?`D4m#<_1WU-)6Qg(#!r_^VB}X{yt=-+{+fuE zc&UX(DC1-8Qf6EutvMCr>7Ab?sEmn5NE;~q{WWn+Q+ks@Y9d8}aV%7dd1Sp3x#BBL zIR>sHJ>YUO`sqEg-SJUS`k;)CddoKQWzQ_ygSNCKxVTl)FerF&2B6^Bg(sF}`n zkyQVHP*LZW%HVED;LuCpwyj@`+UKZwdZ**SG!tF?9vexQWU#k_=MC?N z35KcJ#h1q%`Yaz*4uoNfb65x3GCv<<>-pE4a!%TCP)rTtRweL7#oC_F7A@W8X=#qZ zC_EdRf^xy3jpj`>3;O(MKZsxp$hg5s7*Aq^nOb~^;2PN&(rr3%VZ{Jj#=<;P#z)uo zI&Pa!T89|m(|;Y}{2cP+zt~$g;KH9*Y;)5nrj_oXM<>qphR%E>pI@U?C=_z9lPITT zMkPfd#Eeql38%wX$yurxaU~+fC}r#-q*8l>bmNdgH@`4;{PTj1@$7mD4FC3{s{M|J zqGcH>b@dDIWZg8Kx+|cEV%K6l)?AU%Q@XRjiVE* z^olKSzp=To^vYz~sDzImEX~98y`pnoZM7~dFa+em5A+9Za&o)RA3~2YGv;RL$3!@;349WF$G;ot#QHV?X!jU;p*i)*Y85#mA8%h;L?ZqZFc( zl|$oI4FI7y*dWEt1wi0eTu|wAJbcv(qZD*lUs~gF(|znwbxTep*U9Unnp&@qOn07MnzHk*tF!Jk9mZj#mA>+-Tr?A zhZ)DlXhdpwySD^hEc*HMFH5(~FLu_Bjf*l%7`YNHy{=?{?$cuPOJ0>mkFJzR^NE+P$XNp^LM)IipuE?HjY=G(*@hV(CE?+bCvAv6bNT3fN zj9kJgMyaS$pXyZs=o{FK9N}_wjb19LczI;L%zj`t2<#64IbYO!BaNV9dOy_^w?EAs zzwo907hmJWrOShIw!1vtuugD!@qyf#%a`r3(~SzTY$ral+XkalCrzO=+$hCHDMYic z95pJa9K_fclnQhhr9~Twsn(Ll2IsX0l zgvKakItHd9Avpmx7}zM~jTbdpgiJT9QfEbLnB7iVFmIAh$jEy7jzMD|9GR3nTA6(bL$sDol&ffIux)NvYNSt|# zBgWVm0`!V>ko!qAs06j4RsjTK8idyG=u2rDTUj8Z5Vc+$7JR7Jb-|21*qluP^eHNI>~CSBzgSMDEr*7C3O zaZ?i3V20wbL%y<+)`U8vrAXQ!g}Q|5pmW2>s0WAMC`Giwhy03BN`CCjr+sxq9>Ie`rUF%_K9D$o1sC-B=EPwZ~pJyvR_}wwj|2!t!juu{X#KH6!pvFq03Nf z`oW_$qZG?HoXu|Oob+)MZp@tiix0mp2KapsyEqSFnOuH-eddYZ{7_7H&qu_W&8)$K zu>2aOq69i=GOdv5WTOhHATsD;K}<<^IAevu!c#gQcx0qC>$AQ2Xc@Cy7Qv*;)(`3w;obuttM$ZM0rA z*4)H))|+YQvWdVjTy<)r=oIM*(ZDE$p1?6Y8ClS9lN2G|$!e44P)-*~0jBGO06$tz zoNEdr{DdCaO9#g#{&oJa@yn5p;S33cvjiU9^}~5fs|)_R$6h@$o_5v8(6x@NHAN54 ztOEWD>OL>&U1CNbp7bX1R#+`1j8KePnxg1Kk!CL7$E``i##J%f=Rf&;t3xb#_uY{taY#utI*MbU+%!7sV~_?& zT*;MC7KSIFI-rgNFjy@8V3ZUNVR$j3lpbx9;%RjFtCD?FUn|(U?6l=yy>svS)gyps zI70&ACV^-7tepIZO`k3Lpmf6rG&(vm%@WI|r*&&b<<~)e_!faWbWQWC#EWV4hDN&C ztu9t_xwyfBcUr_L$RT(bExqqBMmUS-qcw(>i3lg^QH0y_6s@;-avFVz z!9ry2p%WM|V=yH?@4mL=qbqPiEJ9agDSXm+W6PHK2e#}i+iSO5lgwPH@NEjAiD^_=Npd(D8z~SH42*SrkIkiP=Me;C2fx>T+BE}Q|k0>;fZO#)Y~`Qedw_UyVV%SyL8wIh`#kA)d{OjYm&OFVGY6KWMx=8-flhY;X& z`3f7Q6t=HAb)!j`IxDRcddc{6RiS9kpW_K2hiR!r49g5-Kx!vH87&YfjC?fF2Ec|U zx0GtONk=88y*NE9`%&WvDK25-_s~kY^#0UIEGJq7715ZbMwK)-;+vBJtE2r}UoVHS%!)%86s- z6}f5wFN}`1V00Ak8s^IM4qX6Xzy}qU1i2*#ZCY{DaaPfinXax>%c`dhHG~uz>A?Lu z+ND1^Vc;jjqO<=Jj>iavTCT3Z|NGv>r@UMC+y7F`G4j$VUXx54M5StUz&B5_*2oP% z-#ehFj4!%3MD827u25gX;`vA^{8+A0Mr%orP3-&LGkF(Y9ozI&UoRb-nfd+CC!TnMfE&+_m%yUR?Fl!p{;jaq?M{rL%|D?yjC3^7#--*a zI-iaiq5S+>rXx%jsHviA<(&!nWowY>jBJ(ajZ#7;02(-<4Pc{FD zprFGeqXsfcd6$UmZ=0ohGEVbiVrx&z==IFB9=67Ck~?-Ea*>$v8PAq7|TUgS^)zz9I3czZ-Np6tU68xma@#pE%< zIK?_stOGaEADa!q`%cCsj(3COuQMmo8l#w^$Bt~?afp10yz(>{y__C5EF$SN7MxXV zwhxI-|9Xd`D=(gI1%npx8kOr6bttMgyA!0|+?*bVL~a zV6{g-=!`HO&;HodyiOHV{&IEuRXxPfpQ;-wnc|b_5!Py-2CSee9&Kb0BB0?c-!xjv zu-{=%czM_6dGogay7}JxU+-RCULLRTGdzX_I#B{|m#oXXW%C!$zE`qw!}97qH(*LK zk=Bkz(Lwm?C!5HCM!B`REu!1}B+iVL$^=HI*!bk8Q!^SJR;j+h#{TN+W7#x+ZEdUs zzl)A}W7G2@!U1D*!y_=G_(g_A*wJnD0*&9&iIB=Gp=ZI|D% z>bHN!lJSQrR*aEBa2VynA7F~!$zR_7M@m_fL&!w0qhTO6stT|e9c5_{B0qWv}eD)F*8wK%F!0?c=?@@hek>1 zjKdZ*P&8sfFl|GHuU|MekmB-mvcsjr-soL3Dz!x<9jNC~{Y z_qYCA>dS6eQ@{WEQdeCJj(4(RM?EDX^ik1O#e-ON)(VJ96pNuB0f5yh`|%KbfrfX| z<%*J;XtcDoHKbbO6@D16Hach6pTql$8GNLNKQ&dJZ=?%2ruK2hB%QH(;Fey~XU$9< zx{{&GKX>i<5I4BW>iQw#mUZj2#`{=b;mOr`$g+Vw$IY z91lOL&nq?_^>E>$Rk1Weilr1>V!WKZPRTC>39tg>IO;F2b0`~|x|eZ-wau(@WCobQ z73-%_|7t#PqKcc2{A;dyt446Awq1;Cu znwVHdhwr~MHZJq!IeB@;4qhQBnYF_J_;vIW$PG0kmvPwpL|>9HN|8n=4l^X!)QH=m1gVxcc;O>e zea{6JPer`TSf0=v(Y*Fg*(aSnCv#MRzdU?;VD*Ui%ho)*+fgyiMh1H{9g^Nr4*dMJ!SOGS7uK7zN7eeXFjK|e|ckxr*>GHDVFM3>~-h$DC!!QorpD}D64?0 z>xM0-OM#pRojmdg8FEVTXt$EXq*qM>}1qXsT`cIAjy;g zqz^E@Ng`Zv%wq92!}3#8`dm8pwRObc?K?; z?^<@=+PeKW?6M!2=4x)HDbYyD zLIx>wLiLyx=gS7sOg&i?*Hvbal7iyHkiC0Cg%xty7^V0?MycCPM>f$~(AK8z6_&CG zNm=QdV4S!i-WZlgfhY&~LtxN5g!Qr1o>bC0z+)47|98%Sj0-}UGJkI0l3qKVrH}nw zyYnI(PsGn^6^S0)6Fr@irh}dI@tI(XE*N6%`RAwlo%ivu@9w22uPpg_D1*SDBJ;iIa&;S!^= zT$z3G1%$Dtw9067?u_i7Z+|{@>Rb_LJlijU=|6tCe05dDq)?1f)P9-ME=^6#`fAbS zQ%)7Be^5}6`P!ZxpRA}TpO9!V(+3A(GMxbi6ocyx{LnLQ)bSYjeI0ZPG+bA7I7}gk zg7Fbw%_;|>hJc84lvp`W@tP$pg)4iouy^LtYZCHPs)L6$&T+ zxOUoHh2!FmiqHFSQsSW7&Pg4$&p+nj2R&=!tG^dIt43#-)vKp@yQkDHt9Cx?N%c$$ zA^LP)-$EuDU6muaQ7T$d=!nWwP>Cmtkw4P-!TG?)X)h76C~3>-QAzQLoHXwzKX(qg{stIuBD*VuSDHfF?_>8wNaSX6I9Z{X)sFXWReU0?Sy zE^B<$#>&SiWeEe9>yF^TAq=dm)-@+ zGcB@b@&T_tG4Vy?lhWR)Z}z;qVC?jDGQkn?_+bB@p-c7`oxiKT?!-;C)e{}G4%bG< zjaAde#ac4nEwlz1Z2@+a2MI(3wu_b zu%fDPPPw~bPKB!>33_BRnOKJ^YZ)sh;Hsk-86eY0zLup&apVxghQ2-%Q}-siD8ovZWZ>OaQ11cdU$v&G*r7^Bqs&_`VAb^jW2>8p(N zAbvjBzb1X7tMI|4HQTO(0f{Mn{z-cfOl4B^deBoWG03tcm5q$)dEdi%XTN;#oWq;L zyn==IeO$42ey?b8l_>Hn^aiyl{NyDiVmd`2MNfgQIDw0{5+~~^4V35&t5?o@udv|$=%`2u>*IJOislC0 z1fO;h7bWQUP(9eWlWG75kzLpF?wG$LLcxp(LfDR@jLnpEHfK7ce zDz0-ZFS1ug<*|$j@(U;$THXZ$3=m|6RyTtTt_-Vn>6Fy0x5p&({QUIn>|6*eet<#YfCSz@i>mM)2JxQr#lPS zOA+-!(jq-T4JvT1n2J#(D{+hYD-qNB6UVEJdpPeH0wI zXES@RJAyZ))<6gDV>8s~_}s<4%t?Qo*ZYjaa%BIrviva*?_IPehBn)=X?s*Idtrs% zpe}`g9b>C{zH#2s|9T>r)m46+#ek5w(9ZzU=Z2_kl*+vkGf;Jk z&baX(nI{@gpkNIv^=neO(;-dik^Z0Wr=57A2HWtqQ39V8?H)7tx20?1XruOJ?g3&#>bLFYm}-@T)P;gRsl!k~y8~2m@xn;0p|v%h|xb8Kl2v6c3ZP5d-HI_9(4Bi!GHvVKmV+wcl4*t4zgHzmc7E-fpWbAXIW9Pl1Z z>(8*pFdDnE={6uU8KMA#KzzUaf(5hz5TMp9Qp>}{OiJLUwS0|DbX_1FKhx6|x2Jzh z^1HT3>9rR|%_vZ@!^`({!S6|1?S-ctaJgnxx*BFzx*OwB9vDX0NGh~OFPd1g+h!(4~B zRLRd8Zn^xd;)BS72~n;O4bNa?Vx$zwAY~Y(E?QPWdfaq>&g?;xk_PMylHwtc3Rbp5 zp1E+&z{GFA+qR;ld_XGQ^u$y~C=Zh;3n+#}yNpsQJRgnXO(NEmpt1IC&Ipkw2c=_v zVU(hUD`}{g9veUIk~;?vdncUb8IF0o^w%Zty|;Jg1v$1j|8n<}X;cM9u=>Wu@A`fE z+5KtCMQ&02Aj_b$fBNC5efGxxY^tg1n@ol&o2H@qh9N3+i>Z~Cg=p9)Ld1zDLsJ60 zTLmZZ6W8KuSqZ;FLLQcD1;80m+L=r9{nf{5Vs#gr3=@iH3ttrPw=Zz@* z=|1`ht{SDB7pLY)we@^bL4zl3T)v*v!;BK738&^*gd^x3ZK7*E9nvugy+6rK&YF8? z`s6wu+j+kW%6}gFW7U?Yci2m(U?)AlsHYSeExVfN?mr9FZzyh`y+OKf$e8Qz9Ww5fw$d#r zE>62|%lempsVqMyfee;dY^0-}4E4?0Hy=h&2yV;?8wNU~I9-7BNR9wMl*XSPDR4q& z4WS^CX>~ysV7Zfd%N#)q{ya)am#4^LID*WRJqXNE zos_mH!xH`FtpmpX%#gzTXa15UroHjz*WcZueC(C8`K9Avg0xTg2;hi=Ln_jE__4wc6n<;&yu)p;gVIqjzx*sEt2IcoZ0 z2R)V|(ZTONdWgKU4%Is$itsNT=nSV4BmxiOWPT`->_L0V5+wzP&S4Y@(YiOBV8SRB zJhe}3a-t#xcrUe>s$Z-pji&XaNKZJV%M5c$6Pq6E==@O!8E~hk4WIu&-l_KsysmoQ zxZ~e9ZL;sbmp*LLZS>K^2SPe7^?I7pr=m(z5(hnzlMwsxbtxycdZbmyrQWfe7VKX! z_0|19{XnC@{E&PU3=N;sV56o1#ILH=J|m?~U`gey>>R{#4719X!O5pS#fBN)`g2LIUaX2KGG>a5QZ2nM< zQgy=$bQKK{8YsT@Q{^ct0(5LgHbucG73)Y<#Z+m$eNcAjH{(xFgwd!JH8e<*d-Pbk z{DhN^_ogwz{v~k9>LpKnvajIJw2_3#)IXLlw3d!O%C_2yUL8DPz{H#!yDvs?$hki) z`P=v9rFY`UF)SN^z9?;+AceBXjh}k4f@uCgAR{VmqH2^PhLOuCBCH8A1i?ZJXZg@I zpy2DpO%TdyvkxlZK!KT+AQ-6G6wxd#rs!TgDFP6zrDO&w)d)78^@&Z`FepB0No=HP zq176-G91@ZUb}jA%(nXSFIQBSPD?UJv!je)fW}zpW04F}xb}{WGU6aVSWi|@qf;5Dut1iz&>qKD?#?f&^qzLrK z>lnXqs#fqg@qw*G5Td~46f%|W<=|X6XNvcsK_@M9L0e5I!HiO2)Qa4K6!+U>q%>5A zHrY(0;TBq=p_Y{!!^|iph8P`9F~?R+N$PXM-Mwdg6lxkBh5z{8F9vM0SKhzPUV0&} zYQ@N@HqQr>4%!Rcx$dCpWV&f8e?mguyt{Kw>vqRSEh)>7dwl;78>*Y^edx?jHt@vd zLXr|X#-zsejT@yLgGCF0A{u^KEjfk=as!k#i9jR5phl_SMYvqIxjj(gtdZ`_opJVs zX~%pb_=oe;OBCUp)$q&PriO;BN&j2Cw~iJV;dmd6Y{7_xjzJyJDX4y~tAUJCD3QR0 zQ3~S}VPTY_^rByf-`g>Lq#stHM99}A0gJy5rHzf!Rs9Cs`NlEFJnl_vg!K~mxMWAh zooj#FUgL2k=r&vE(fo!=Y17J8d4unIVf4hm`9)|0@P+O9bMD&k`^%o@mgEdt9s&at zx}dzQtg;Cr*EiD>Enk7C5Xl`dnCGNWyK6U>&MM5!)Ag9qpkj2Y^SCDNwb!OXKkzS>MuyS8@fJ?#0xz}*iCPypyk94%kPjgO zSMMlN>ESsifuryf07l4l3SI?F9tBrn&W%^0-~5TBaAS%>SntA%q^u_Vpg1#Jm~UUa;9z%%B+hbpDq68(l0AFK0+Iodf^IJGu;RUS#*?x zVT!Yyb1kW_U79xWzEjeN?(Znxoz3T*jjz91=%}2VhU1?UtC3PwtCj+)W@+18oyrEt zC}%^`CXd?hleVBQkkim51wH`C)x+L53gcYce%ADb?+m*7v;awk9oVN_VVA=&&(Qy^ zUVG<@n>PQA9jH%vg~D;Y5Jo9~jiDrn<3=frO?|<*QOa@s8KsKed(j~+e76Hkn?l)? z6!(ktc{)zIj~uwS4jwvY{;*-4vS^;C)ct>NUAto53%fSm-^+#(@U}Y~9!(pfs&5-I zB=6R|F$Z<4$zM19K45)i)q+JOdne<-c^nhOHH&g2E14J>7b+p1x*W?uet16D6M(ek z;=0GF(BQEKO~*tHFm|Mjsxj)tjUjM+jh6sOksz`n>*55M0cAXaFXvQ;uVjZC8F;7Y zrY!0-BWT^4N6L+jYo_VdU&bY;|5oO9E}oj6wf?3){;y(GSapKu)Mej%wYao+M!MBX z#pY6tw>iilrB#C%qU%D3kJ}=9JsCdM>Q_gcFnwx9pWhEA`Iq;s99rKbjmvK+KmLHL z;pj@2eRwq;U4+`h5mpIg#E20f?c@RkFLtZ3XhU$&8FuMsS`sVA z#P+`9p4^!WS|vQh2rm{bz3QL)SH4bD;;asRl}=<()I8LXOAYS=b83`8_I)ayK1IoN z05L<=7n|eARRf!#p#`U!NS^trGoI<|q1 z^!{yBV*2le4K+(o?wPyw=H6pBX&805_s{Ep{o9jUHr$y-$6Vona=iBmhsYomg=0&3 z95766RUeFFFwE@qm##}qy*mr54Y2Yyksi4E&Xq3Ga=_n3~qqDv&K z4w|mN`o2Ch!+Im?d*wf$@ow4bhsxZwBNC#l9l8+;{S>Y$#R)V0ZRuYgpFHfgD>5d8 zr4jW>>4tvu3%}fuVzSwy*|G+Wu0jhGeS;UZ%xfD_OatY3)(mQJ5wCYLUod2Z{GHO{ z_z!_C{)*kz(yY{xe|;$T%&_0wq%BEMv1kzue_#o`UsyQh{2za&yNI!)Hj+j`p+zu2 zMf1az#7EdZ08n8~DK}ohMNHqzEO~f!VY^rVcQl)(dYwHZ^nA`r67(*X9gaH#t4GLw2bzDA+#r%3qiLfDuwFZEW(; ziy3cqNinpBw5d6m$*<3UXM}`d+BYV#;J&P5hRhr=z~|%iKl?ThTvV}r;IO!~G0Us> zjdOThgGh%47dmQa#NNz~N5jg<7paG|dOE$l?ZmYd?M4Cx+B8#j~EG3P;ad7*MQnCJ- zzXolWGU#eZj;WT|{7VM^Vbq+62pqc7ZJZ*)Zj<9M&FDodetGBJZ96YYrJJ6(8GzRn ztH{VeBq>8RbvrtBEvH&2d|jcTWJmWfIv$5MAC0KD0~<7xcp@D(J4DC`t41m3Ng%cs zuY%T>J~npD<#!Gl{uW?{QzbBZ@qc&kYN+cS(v_kl_kxBxX>RVox8FMI__->#j`PuS zg5FC@N?-YJ(ViLUbmD^zqf%7QLM8A-ox?F01Hfn#-|K2T*G6Cp3M~ymiPopH2D)%8 z0UqF9l@AgJ3=kDf#Pb+tpUAur!2zY?!Tt-y*>3NAnxZbO{@Sz;cR#M&vp05Tn z2mpt{e!%UJvaGRKlUh&9FA8#O@!R^wC9L`NK>r?Bh%X*GY${f9} zwtP&j$C*dRa1Em4noQLs8yx8GCSw7ky)dxV{Bzw>3`f>;>hsPFPFV?bZ6BctJ`6`D z)9DM8#1Bv4fL6gpMKSbmy0?~vs{F%L9AG6WE|Cu!ng%gs=FjYnjJ0R20 z%?3Jf-%W=5U|ZJm2?@P#zb129SR4a)^NtUmSyHv*mY%q^36&}wltcuD!mv01xz-`b zLNc!6XL$a89OGaJtN`(WqJ z#Ov2?EUt07Vp6R95Og$e+$iPEoUUQ!`s!08;1e0!kqZR_8h*45ybqBM!0A!3;&njh zE*y-MdKx(*#clcfnDK+I@7FIZr%6P9yYl&$4Xe(7erNuFVDyFJaKudmtz~>;{FEW* zX6J1Qg*H^&D}P;n_vgiXAEY(Hk!fV~pm9X)dK;0@A=UBv*MZbX6%`1C>dz=uj0eKu zb^sxgE^(fmzhH?@8xS5RpfV2VWstxTVI@ML_TtOv1dMC9!h;gUh_H_wKqJ3Lq70xB zc*rX@O*PQDs3w}~2iF=h#xluJ#qtdrQZ1#W6UF`GlXi_u%GkE7qIf6WzEnOtGq>=# z)P8%1BqUU_Y{@@2uKoGee{A3K_iP%`#;*D(N;@&uK~Eg}q?A-k(&c{S0y3zllOi&0 zbUamrM=Gbw9+Joa#Z)|&XW&qOAum=hLeNCV>02>M2??XuqR6_oPhlu{aS^D}L1MB~ zfehdkWOXaPKDajeH%e7aMXSuq@4c>HB*62ke#`+5J#o7uLtanHXz9m7>q#p-b#(P+ z!mcZN9dq-A>0=fmt~PwxTo@k}O&_ypCjvNK1lMB$Vy}=~IK}UmjZ8;M z$9(kTYm~~2yy&r>yO?fnnwBv5{iph#dx2MUw+IS(b&Je~dnRAry5q9zSFL_4$reqW z5Hl~SVMim+n?$8y<~qk)WUoSb8>NWm=bHLgLd1ie=w!uuKVGpSAz-NvBSgjaMrlNH z@`m*%pE{ZhRm}Du@$RT4pRC$iTXR%MqogFYBI?jj&CL1yvtv)5-4#Oo^Saf?tU6Hk z!m0!1<5MhFI%Wv^MK#W?MV(&pW{qou_TxmW89Y|axj&;+!GVVn(~qpzGC*NKV1~j` zVFUv%M(8agW@y@+ah3vCa1jZy@(>WkMqd0GrEEHuQbT7cj4Yt@ZUy-f+|(z> zZlUEEIL5q%Mx{;k(cxytQDM_rs@cXycTJHI)%K>QviKtD2jf9M z>F6C)B4gLZ~QR*#H;=BJ(6Hg?^rke-uyM+rP5iF7)@@g z!{Yn{Zl`q5;L%6lHE7JQZKdl7yt7t(|M-vPCAT|itt8zUPt`4tQ)sf!3^zG30T!Bo zF#G}zG!&g}Q1ODZIOPW(-Y~=G?Z89F7p*pwl(pVSO>Wf5$Ba@D4@L|J9@TLQeLi_C zF9|a?fkaMz@BqTZ4{N)Trp_p3nIw7*0gsn+PIR1#vl3{CZ6QO>Nu%R1=x`iW3w<>@ zX{T#Bok|Y*Pfn6`_Ugw1aUdFWv|Mz4^vz3Glzb^3@BFCm2S{0VR21%Gv?5YX z6WPb1`Jp(layHRL0Va3pv>v_w{8-=F{|<$|JK;XOXVGQL>$d&9%F~#NjZhsmY6=-Z zj@Sr=&7LD;d%bpX=CSuoi62njRq~m&;UCKmxb2gZOnfFmUk^iJrJ0`N){@v;u;Q3RnEzAmW6(fTz=q9vy2RBN>KL&^TD z9?s9dT!V2$dcQ6$n&%-ygB$;C69GER3YS9~pPc?nR~w|r;U^QP-*HaQ+~dZlq;4&x zk#8&`(CZ8@M*vM|TOol3raH!IXYIp8#?ztekks5LI7;iTA}Vnz$je83gf0^@xPk^x zkpkA-iYWljkDF1<4=W>xW6>HEPR|LTBQ|z36HRf`j0kr4$5V%u6qUf>7=Z-6jm{#) z$6vS_q$myY=b^>uO_X0&Mr}cbe7s-~3qW|{&)a#SLjZDJ`NQVah{5}$I*!ZDNH2ZU zqA>y=fXYVpfsZzIsE#)5L!gOeqwO@}$#lXOF(3q^>>e6xzch2~Er+u~3IW{Hd*<60 zXH6JA$d>tUJDopT-PFhiM*<2bgb37A0v%AFV6sVT8}?rFSmFQHzg)8P{18~Q8}+sw zA3a;-sGST$8v_tN&Ku-c6$z-owSFINJ^*Ffp3>1Lr4Qj_4rh{*{D0`q1}Ow!7^OaH zaBzSVd-T|K%fJEmxZKnnkrG1}nULWTiYcB-Qcy6iWavae1se7>kEahl0RuQ~G67H+ z7^&f2@pzh!d?0_rKOfw(Zcs4%!#VCh#kWQ5Kk(Q#(Pl36MP_VE^`?oBK&b@arp7BB^fywEuo-o1&UuZ z2!jOS&6&RU$azBn3+&MTTOv#iW8#t*1;#pjVlGLYuTz()#*WC%fWk9fh%8%;y2MG<}$%>o)kZyv3L1ut(jJv=af z;31ad)329>=8qD~JcO)Vv@=_bh&I!xnuVtBqatbbnHUB3&RCd*ahN|0Xsx{bmDxMn zT6__wrDGoi{*VN68=fGC{%ZO9BWo?*AB_%13F)({hG46P>aclkP+Us>-StCcs^?DXZJmLD(j&fMfnMk9ixcYRPWB)mCmaqE#kv$8q>nQ$$&qo!j z2fteU(}GyK*B(m|{5e%SD7GE?;g4r~U`V=#?zcZRY53h!lLi;GhetTkh&DBx@^o0_ z<^KltyA0EOb{a`jlsAat;ww;8hJsI$zkyaw#vJ~TG0Az=uk@e$$1_q#OzUY)Tv_R^ zXKS$4H>dqFKpTXO#L1>u$8?X^9FFNfPx((|oU1T>6sO@(* zEkL+t`>MWu*InJe@52o)x8F|JU%vU&y&My$q1OBo(BvcsGPGs=OyiQl{0uUw}0clDIY$1`I|>P4w3trtTGS zkUYGPtP0Ip^n>*@ zVv4n|*q~f8rV#sKuB@$AJyY|$t4{ZMVo`O&B4~dB%f z>PPoFA!SNMr_HUWsx@d+Y&PlReT5IbzGKIkoshY(WBK-u9T_|7YA%bz4r;yNg60(> z#wh7Y897hW6s}IkKLV5M9KA8ugb+sWR zEv38$+6&5L>cva27u1O6jgWv4Kym(HN+k1WOci~E5(-kYa^CRZDUpwi33eoqu6znJ z*#m4&3~}PxNf<8ZxDbOirjgo1I=#umFpSdBMsb#ZUNTK41wej^Aj4?AieyGABA1?y ziw4IZTu57fiZ2C~C8tN2{=k8~mHt_=kM;mjpj3HrpIpCkpp6eUz(6PTBwJ&CY$M5G zi#DH*9K5I3Y4fhhm^^N%Eo(8R^BZY1l=cImy@f}WV@5KTHX_lb1eUL=H_W?o+k!Pu z?fYt4dw4#+_nUe9TvZpQ(kQI&#wO^7zrWT~lC`RJL@x}c(lW6>!?>0%W0;XR^xjia zhvj>bcH5v~ly-8}-PC`;#jsoKo+hTwP%_r?>(a#;ix{yKO(MgRF|>XiktV>qW>xV6 z(5MKERs=aVeRYy?hC8hPu;$kfAKS9!u;2LfQ|xI)SMgenO}G zmX)Ea98_Gv2UIE)A;jn*01`wYQ9M9b9J5;}ire5m927hjL-NpafpicSwhxd62Q40F zLbQa4cNa*+iXE6Qj&|cX-QySKK>igc3atQwc(il^O#@R|iTdXxI zHLcgpjZXPxUhmWY7L;E%i!_YVPOh+P2j;E4x^Mpn>uJ-IhqrP8QoD>5ZM+K3i8(66=j~xP(_$RwjH`R&-5*$sAIV&=_D7(eT9N z*G|vQ=5tXYap-#FX|%rUvxz6&arc0cqi1F1e27EgYiSb(>RVCCV2VarhOPy3i1tQd zymeL%ICxfVz!7nJlhX@NW+_r3lr#G8y{sW{PSlthk5kHvNnReVGbw6LyWaO~-wR(mGil_gAu-t>)i*gM z{B^{rDN2HRhEa)4tE=nx+_a>&bltzoexB1>DZi}PFl1%z?)PkTlbKn*nF_iKBUJkr zLARgbt{Lw?Jq{VFng&y+irS0>jL;%+KX30;xPy;0yRXQcax+6DFa^3h}G z9hH{8w#w-YYB1_`l&hiIVEfM~;(4=A_%gD}hsWwDTVV)8rH9ofZL6yrbmNBghwa9v zg{8Z$-_cN;5+9;bikp4XqOJBD`}KcGC)aKexNXSD4ew7lVa_GF1J39Z6SoqF{@2o| zukLJCRe97B0j7bY;crEaR9eMH6fzGO1{!ugA%(=pqh^HB>zVjq^Dasc_Rcp3$M|MK zEi-zfSWv}gK`jcg1x^$l{iOQ{Bp5m*l~SL6*oG+IXg@?7!txoQ5CF4I7c{6z`Y-=5 zG8QDCN-iKQn*A^yp6U_ng&~vH zvZK(G2WiBcqUqY!=+#=d;a4SaS@z_@e-6C-yqPH@F3z$f72$Av-AA&D8nO@a$By|_ zIzFnl$v)tf{Y&4!X~(;7EvQ_TOIM?@BigXN0TQZj&5wCC7SeJQ@e-}QD%T@ zwMMHT{sRkSEoJD&KsenMZWyIqRC9L@8hT-L zR3zOyPX}r%O|fs{V$uMwfij!qi>8A>(ebMA&R%_iRG*CQ1JE|o>dS^^KAYB;E~_Xx zdHQ#YpVTFG7zAh&g6X4u1%FJUyUo>7w_Y&dRyZBf$vt|#Jte)*{?;kN6XVHIM}Kkq z39~29A3FArnbEewa@wVjGfr{D5z5#$nfS-@Q8BMpSWw~VgByalKr844PeHDIZ?th* z8i6aG+Wcq+IYcyjx0u03k(ipto%YzsRPQuNjdatGb|i!OMdlO^-NVD=r4?E$*;Y`! zg{DLVX3z$dz{Jc_^b_qP_co@YL*wrOM(`Z$^pw!LN!<8FBX!NA6S7wL$)N$#NZ_8F zS?|v6b<`M|hJFs4c5v{1M>+Ikxb`%Lj&=I2Vb5jn7B8cjNpG78aP0O5eUK^kDo_~!21 z8HZipjFN`-w)u+BfV5Ep=jLT^`O}cWe|9*WlAEtU^Gk^i75W-jXM@LZ8-R1*x-H{- zks*k9@qVc9ff#p{q%;~aT~c21r$_TQT<Dhh$O6S#9RMW^QruMy5g%v}qD?a5?mB%N_ z9{~KBo{}d-QiUC-Ya2B$kH1nW?Bp_g^J6(>al#Nqr{eTPNwp4>RMlvas_hmElMxe~ zy_!%r@F`MgN0~s2Kb2JY#8VZ3!1Ilfag>bkuvbuJmv8L1C^%(9W!wrMdR|Ch;`CClHb#wHhTwyK|*KK!uRZLbQ6`wXMhTOyqpeq_Xm zr%uYv`Ju}0pclYb@d0U@%IY)e%Sj*aFT`jlF+9EL5ynelrK=PZ=y3f^)7d?vH?VH8&o5iAxgXG5$7U96r-XrLh;u?qoW==yAn7!ZcFRbDQzt@{QXKXP+&g} z@q9#>OUn<6Ul1hd&64xtwIcjJ#7c&|V~Cs5eg;HRh_s{FfsRH47e|YS);BsNn!?>S zD}Bf{?+w5BsAN;zs!$JquO}n6w>5snoMFTG^=e8^3{Nl#+?{jkqT>_B9yc|4;Da7A zN@?ny=}qf39E>ZEWBpmAiFWBnOWW+FXRT`7^ZndyZ~pt+>h(9LS#Vu2bg?5+3Z54} zwJ%mSd*dPpY8xc{B3GcoGKb@n2Hk+$v%IMfm#|@!c5zKUIeyIf@fM4{g4UPn*760& zhfv4>(F&M%@M_bq`VWfy9O(p` z$4$31)jOi38oQYcQ4=#tJ#l0;l6c5gvfn1td$zE4zLQ3J{Y4d6?ge zq-{aHY(@40(dx1NVR>a#Lx7P@jLs#SqPI_o?{m}4^kJhP>3hoSU(-gzcOG7SxIXXSlXGg= zosHdUIYK}%jM5N<)e)$p;^WJ19WwCZDC+faZ#u64yb`{z1)5Q>rqnNL=1bvFikXB;7@$HV8<7~S5+nH5V~1lX<5;oIEDoBZ>s}lE!`fUlYngvE0t{NfLI z$_S&*xbx*er~w>s+lJ4x!1JJGhEX)E4`pYIQnZ__WsHc{G}5SOqnY_}TNCoiae}9Z zSe#qh9UXGrdd>wFl{C-?fnX9uR02hn6Od&Biu8>anEsgt#^-d17dYaH^^5g19hzv0 z-Z?fg`;W);=rQ{FA+ukAVFapgDt{kS?rw;~0qt#els$ZK4Npj0)@B+5(MJN8_L#Wh z3f$ z62b>1cq1MBfgE~@QBh2Trki889+Q}J%dye@M!z!n+-K)!pRPONE!`S-bhXY#+RhN;TZ z`@Lu)t*xP(u;!$UJAZsizZwAGM$@CDp!BZ^9VK;Y zs2JR5AHjN8nl|-QQ=)A~2Z#<99N_pGDna0_;tYY|dH?Wl#=vwKUEFWCOIfy<_xGN0 z)&<`5;U1p7;_I&$mFzt^#}-GgxgWXsDFCEV;!H5gF;ZsZwEsL zr5JIA!NEVo@a}M4f(9XcNr|J3V2EN(C^ji!B$S;+Nz4#0-YdZ&lqcT7NZP%d7~^0D zFU~LR4i2+~(WVy3On*uRc~=A#L;<0_p|UYqftVtck_sdlpRN5+C^>u76Y2}73Y|z; z1yC$^41^y_N+l2h-tvi%k`(0;$Y>9dR*l=vp8aD|HV%qOf1zhY%bPb3nCYY_zi!TN zAAGWZ+GcPVM*2OCwI7(N-D*uWb^Tx979DztvOu9HWSsm zz0QgZF&)u{LzP>7MFle9iZ)&(hlV?t!&E+w&8T!b&Ohg;rOyPz4Y#<3W&1{dTULB> zk7!$)4N{Z=@^sOT^ow%)KN4dO2)IqH~#_m7=^=Xu$^M_iE8@9w^_@df+ob|`HA zf{Zk3<)c^JFyOfbE*c%t@c7eLe=tt1{iPJOiE5)*j_`3Or$xpI|7fF~^JIY5(a!lA z`oj)-r#p(Re`Fh$P|`ELskG=y;}Dnxc2o2>+niw3U}+j+y)E=*vbt zHt^I}f*GVs3JR?D7SCwhVIPXatwOX8|Cdl`4BWO!;DO$=-?}tq(zp{6hx`k>&>Ncr zeowTGVc1|n`@QvyK5ofSt)exxNv4=3M~Xp;DiM7{*i_Gvl#y!(49K59a>UJcmzx?* z@1uBBCDnaIX#|8u*t^a2ZkSbceGEbZqV=ozzCPp#qor|Xll0lXy|?`7_uuaJ#R^Zz zt2^>t?$$56q(>p6?JdhLmr{;4kv8u`GW;P9Q*^ifqr z{#)xC$seCn!)@;{B|4`I_l`H*3CVuL^BuT|k=h3<9mRM)N3g?D1lCh1S%85h6uady zJr70HM2aZZeYTY%%FE|h^hqmC|J&=sGko-l`YNfi_;Zyf?y78W7qdhiLtXaGo@&gpq`wO7K91d2Gq4UXsEK6?0-H;-gK zV9)f?$m>~|i95@RZwS|D;j2z^Eg>AR!RNZT#5YMuNJo@hLe~X^yPM|*j{M}8%da0l zD?WMV#E9shRJ21B>rQKEV-#LJ@J|SWa>(ymzqUTa*hy1_KNvx=5(>sH`C1G46Q%W` zu#7?xZ6JdL->~GUTkEy)76P>4LJCU++Or&Q>(vrG_c+iJj3W;mw?6?#vMt7QV0Y!u zhCd~a=|~rlIF5jTT*o_O&jYB_jev_pY+PxezFkfmLTcy;U7f!&@A9xd3+6@-8NG7U z-8cRzW%3#hE#<25*IZmiN-boa)Bra|Au65O=x3Era+1ol^MrdRW$v0QB2veW(kHy` zPtT~5{K_J@eLc>zjE+SU-g#bTJ`aO;Vtd$f~#C<)0FDjc=xuv=a&&r`Jwgk)b zJhfh+CCE9z@_UZw@d|>Rr-TGNGg->YtVRWt!a;$N`({KA_ zHPh~ja}xt-*S)9uyQ^O%&8iGAMC`mPc0`f8d^xRcIq-Ds)Y^abzwJ-AMvtEus|neQ z9r{M$O!&4fsDr3+H&OT`&$m`8riTvs@DK4*e(a#)eWn=6vcP9*+)XR;+L0rp|8g)R zT}{@e5K{PXwgd#CTZa|=sSyA-;6W+H7Y5*g2US39r=TPu*lVODQlq4UGSu``Y?Z{t&Ubr+r{U=dioWm!nwJ4Ngbxn>OvSBtqRmi24S{~SvT3Ua zOQIZC96Vbnpw+al5M@QE4VGA~VbQ?A$S+^)bJaRfyO2Q3eAGAW{a?nhnv#K`YMo?K z)nuWa5Ze3Qe-EGegk&TcuuV8X&&==nGfV!QUVZxITCy;*6P$du*LiL-TvV0NF{0sW z!@<=<|1iQcWcSUHEu}v4Z2vT9(4Oaq41L0A!J>Tlghb%dS-5leD+qL9z#wA>3%Im| z2^Q>_DJj%kmyRYpl@+df@;Y)vKi` z=w1Pax=FE7pLJk$yG2p=B@8M1X6)5pt-o}}l-qjsy?A6;OaA1-Nl<+l3<2}^T12A5qJm;f>q^N|T34@P zYg;?4a4!mC{ht`6CZ!airAGmN+CL_2&|HaSxAen#>Nur*Rm5xo+vhNk{^_${}$g+hvY{Q3CWzNHr9K!f0)8A*}?_%k{r z-se8dB~`wQ17Ug9tI0RK@=UL*N2KVYzA-mh>3hrVTjtX(H8oijdZo7LrQWmV_;f|v zv2wCf+K$Zimh}9ggWtV8HfB*7tuJjsHVb4${f$LM_im-SP0+g^C|WJesVRUK@0JZx zsWDX>{Q1d~o4!1IqOTKhC*Gvz<>{B@XFnE-wWMAMC|F4gY2(iHnBEJZV0B^>x_r^| zhm76z^TZiXJ=AMx>g?F0o5qL7EGGU|myq=o2NK`|3|3Fqz>|>2t)dpPhGLy)HEmj| zwU8o8iYeYjtR)2u$8n|A5%*Bgu!atv{psKv-@QNf;%q147kCq<)(qWDWTxl_Fx$ zR;S>U;B+HWD4j6uH)0uLPb7W`i0lcowSiXJ>;acf@!G)Zk-D(eI+g012$gcn{QlGN zF11_8HdRcajZ&;eQVXe~sr!+^al88_Uy&mfM}}*A4!obceZrFB{VP;WTK`6p8%lqg zbtJ#Rt-h3PUzPKsh>x2Hbs(QAJuezv9Z6P7ee4NN_VcU%A}j0qC-(0Ovg_2*; zW{Rn34B#uWcr%bC$`+C_3S3YSh7tUV2NWJhd9Y%{>H-wmHPs1EWu$M~UQjS;Vr*=u zE%;AwN>@L$G5cwpSKo|(E${+X(o(WilP}J1C&$H|ZUI!zI!_MFA2Q}Fq5czp3$hLl z+f!9`?O9{xIQkg4x}eS!qG<9bWrWs<(x8IVk)SlOcaMIAN&53FxQ);-J&!tJsepzQ zQ7xUHttDj?n}v`Dl@!--y@e^#)g~?FH7Wu$R=S6}-MN9)ovHu@8hm9|Qbbw}uxmOd zMX|P193Tgrlbr9wu!xIuLAi!3qS$rZNdIEBLDjuFMsD>*v>_6$&p{*5;t!=cSMOIRDq5sn-ROD)o=Uu%^=0}j(O?n-BeKkZhT76@}i6m`*%5~?AEPD2}+upSc%C=@+dP2n*S0m?M2r;&kmijr!b zqQa;MzP0w3-wqnw5Z>3#i@! z!DXRJ-KJ!H$g08m*mbw|8rI=f#|3%miQk{i7_0MQQzYt+HLjP1Chhy7c~j+-4&cCw z!b2n8&fB=&)MO0`RqN@)kUqFbjQG*VU{?z8y_0XL7)l$r$UeeMyj`jKZBkcRDQy6i zKx)4eHnu$xQcVAQ<)%&JHss|!rX@wsHHbw%hH%H4NuJ}1A>7*s7JyN}y)DY_&-=$l z7>a44!Js%?Suy0c9b4C(C@r1bKO&-Cr`z1s`EYgF(}Hs?ce(DAQ7D}%SVOro zN&_8p%#VEPJ;It%F(IKdARQLcsGvGUX{}CCRuiBI4>XZNTiuMV;Vc{x0d%sv|OsB&e@8(5pzv^5N zWqgoR|LDKE@=yv9%DNz8T@+bXN`3gjZJ0dy@!4CqUbHkP=kn-)0H>Own{mPJzRU4c zVSsc(rW+`-$Po|!&fQmx=ZNzdrw+P^i|+-+G*EG%ylm8syS8sAYATu>?H64G*p3MA zoj5f0`NQdBLe*N4M&q3g~V zYZ9;Sf7>=^?&XcqW{09jB? zn>Vm#7$<&3X$-aG31fSI^5+>F5V|%YpW~;K!=cKOOW~H!n}Ab=1_wrG z1vEzXNF~A>UbQvsmXhOxUOKyWZB2tYDuOJec;AG8KFs57U26N$gB-+ZWIL*|;;ED# z`98@?Y5TojZ9@5v!-mb-R$QD>Y&Q3b)#=!&C3eCX0eE0>aRSf4mD25<)uBKF8r>Fu zLL4e8r{Ub8IV^$NU=b7IGbK6p)si=`xh_ye6R3RiZ#`Fbrr$qOQWmf$x5k@ zKfy~wL(Bhh^yqAIuD^?1Mfru~Z94X9m2oe6YgwJe!)gtr1m{LMrqR za>h?)KjFO>UUG&uHmdo-Cx;rC&>Kt?H~QvcO^~fKVRC zY|ks!k>Zd69J#8-6h8PMwLr8Jfwf0iM~k(TCfcABLOwlB)PJ-}rFnEn+;N&p{dHVe zue~J}<1ax2t~oxR*2n!%!1meSw@z-4-dL7BLC=50KFo&9-jRefDAEVU3Uq>hfro(q3p+oZ&fA%YJ%$coB_y3Q4l9n)O5rN~ODTekRC z;*+VV>Hp5ky7R%^yT8E+N_ra9*|)rHG~ok_$3BR++(TfUm-0MActCVb7FkK1vZ(At zLy#h!6w|5ucW$ILrdPG+8q)c$4bfTIQKaxNz^t^?Pk6CTWfD$%1S@?X zz$KK&x{Dfw0Uye21M#oIN~d$tR6LYW9O)RV3o4||gc)>d*WL$XhaAkYRPAc$b6FOY z&?W6r@phz14ygL&)KwbD->BqLAbXWG-LLa+l-H9==Guh;LLq(m?3(q}_2#%pje+_r z8x1dvsE=W5{75+U&>$JJ*u5b^=1A3NsD-Ahj^D9-!zB`|7I3f_iA`5p?6eyqb%u$2pbj~-0TTAO{ zEQd1A%AjK z2Tm?QT~?oOg?t3Bw!wOZx0@qt$UkXceOO+6Nc>SBX-2oM#>%oI!(KYGW*w~|jiL3) z?49-8VEW+WUwWQ_d@2WhP(>XyR1;wGsfu-AWn`ta1DSoHMJ=8<@wq#8>=^J(*2y{1 zq~zgrKsZ!E5GE9bAw?L-_^>7_l`@bg{;m{YkvVUfFs zhK4O25)!uf;XbLyP?!0cn_?$MC#QaL`tXpd25VAcK;X!eH5EyPW@8Mkiwstga*B1y zMP`#iPfD4d=s-EcdP8#6!W2}lv_i>rA1H(8@y;Lu1fGzMQ#>qdV?p!de4C+#Ro^fb$Z>J znnp`xq`EbQROmzAm(sZyFyJUjx(rZ9_1O1GR!Tef9rU{Nug8zS`D9J?{cGI z5`xEpiD%eGG~D8k4RjRY_k3s+*@h|L4qKe~TkeB~;5^5Mb-bDl|DN?w@1)##rqca-gr~Tdayp!h226*_TbE?5A3;gUwP4-#p{+{ON!_qD1U*Z{0GvyOuPel zuKZbd6r1oqK@r6|QCPZBp8-L^xnXMUqFAkNRlkcb-!R`x=hLhEPdC#PbpEUKN8~r5 zE!*%z;pWVRnlMX{{^4F1CGW2;>wUPgFgmlkENp6YQhcyR)0Zr)!4(#B2q~^1#s+Jk zMyZNn-GP44H(*i2I4b5B6v=|RT5_3WX6rO<#!}W-n3a^c3d>!%N~eg{>8Y)bWoClz zL=O6iZY6CX^P>*~Z>OFsX?3Xw`?oF+TNsLD$3+KtNAx9tRYr?*%ac7~cUa zTYtr%hbV!vJfUNQ4YmYC?Qt8DQ->D@Rj!BvpY~}8gD&u3eqn**+HUD09*hx(wW+{l zQY0A+`M*u+JN3Ci>|`GYf)_Ee8VBFGd;OU*t2q>wQmFx!tkbpCig|qoz4g(^NzX{d z>j`jgpV&WgdvVE}Ge+ZeMRlf8SeFTlC=@9*Sp!{cb{)bJyj^(D@rMmd*u_s?7D`fs zg4a%piuvJEeb~>JBqVg|TCCCO3)EKz4$(cDJS;Z7tT?#1!5CO*tTGf^Oo4QKZGfr4 ztgdLV>Z+~u*I;R!5}9B~F$BlfHq`rB8yZzjemIw{$&Uu62I6+TL8Vk=RF|AhE6cTp zYxGUQN?l!uR&5FNSDVANdSib>Xvr@n=kDB6a_+uJbpVqAQXd8^yk!=XV(G=RM_m%u zYoAoS?g;lr*0#sLK6l`q5ZdI_Tza{0F@1c{2d%+)U-Ia_bEAjA>Mn;i=D_@{pJ!~Y zJn^Hcv0e?o)9CwnK3EFP1|C)(Bm;kHG-H6TKq#Y>s#MY$YwYA#J~lA~pZr0Mi>=j) zX<0}ukTwQwFKBh^6uQZB_+uaID1QR;SK*her!@vo#1a0)6#I^glC4( z844+uSiti{AWf6&l`7+);Lr`DLnD9a9im$CM9RpD6+ZHe_KcZlC5xl=O@*RbN|oAT z-ZwojFFm8O^cGTb0}V>)A7xl0i?7pnPVW8-MdnDUZ+C?`SyM6!F5$e9AAk>0>C$C| zw0+)+n=-$+`IpL*3$0BJieRNf{&;>!4#iW5k%G!BrR`I{wx)_%5e*&Q5~ecHgiX&4 z4r5u*(&ufx z;mVtObT;h6nY&`|*}e77%QvrHy|K6;^Q~it{;{{bWRi)NHAK;~ff5L%lq;kiRbRY0 zwBwr{`-;s*268DiDlB5twQ;@X&Fq~xaPt+@X1;yV*sr0Gc2u2wwVW~Jw0&B1@_Qv@ z_2iqcq|_D9l-xNf(kqK+{_W_tfl_d~Bg{fNWvsHna*4)^^`zhfWJr=ecyD*)NoTj| zUuS-K{A6tjQ%Lpx8a4yK$1l;Sf~U|zRq6AYl+u=AT0rmMEG*B7P#KE!{$ZOsxM-g$ zPPUZ#)Z_5JGM|nc_xd#(H^i?kD10=^Uq{ocVp}OXqN97qB1?M+Tw*~1#m;#sHsGZ<{B+M{ z?^5w@KoLb<;F2hU>M}4qVpm^%;F8N?;+Nl>)c>&T4AMPM=OzsJ$BM#JkCF9XPnKl& zKyFgubF|KC_CHWl`hS#thZ~S?pLAGTl$c#!-ZzlkUr7&s?68eq+TbnHab!p-9C-Qk zy1#vt|LY4enn1SJ8e;@x1D1{9ia*EHJ#L(Xc*YPOCg5%j2V(fLdnk;+l?^7vn84(v z{McRRR`r}a*;3jKp7q)(SN`GF(ngPiybNATW=H(F&?LeG$GwxE{76b z-GHGEaAw{>yE`7-85Y~jYjf*WZ{JOt;Ghmk)~9Q%pg;@-Ry7s@C+3s}tI z!ikO_Wqv~Y1_owc6%+r)eSP{(*m}iv7k@eK^4Fn|UT9g}8GlT0e93juDeskfX)T2x z*AQB(cc8N5wl_}g?vd8gQ2&7O7Mdbcill&0tJYtAuytq|LMjKIJGtVY z-xlt9Aqom9Tf5H37l8s4PA;L`pM&Nsz3BC(Sstu`cQf!vtyBlVVTpp)Po)?Wl=P1d zD9)#gkp4;S)6I}8_umNXY*0Sd|Z8V;o?c=&64@$i9n9^A7d^5fAHUO=9w@aD0D)8`*aA0FkU zm6W+LB1LR`Xw1utJrVCF>A%~%{j%Je>g&ok{xs{`>dJvwM~e*uI%LX=dTRhq(2^Rk zwv=33`5h=Pc%E?Xl8V<|;PzDIjTht_7gDXa4E|hoeyTkWCyhPTI_!nzza7}Sn)N>zic5)gsByQrn8wIM?8|nls0O>&CR!`vz{NidTHdL zX|o>`pqu~xT$uX;1`}8~T&vR@T1bHaD4{iqlOkfaJe@kMTUt5(oVo9!Q&kl+&KhfO zSamLEBq=G(0*ZB+V($b}dFF|i=aY^NOD5W|grgZ_bpaJqqGDGJ3=RJA%7BP9lT%Xa zHlGhs8HaHIYonjc-1Na0XAV7;s1KIB4j3PV*ma&>QF!~ir*^;cc%Pm#FwUp>-K+yY zj$!V$u*bHZQT|L?C3HW;r9Czns;>DNh~V>G!?S=HF6 zWK;OQ#znNv)L@}C^IG%lsA12_8*b_NV_$nna(&L91GA!{s(-hA`xVEltM`^$EaBKh zgaL>3XuSQRAaryg(Ira+#nnqkl9O-{YnToY7IUS^@m$kg&`61Gq7!9EfY9RD<26{57SKnS5}`C$6%tbp~Y*fkFet)AAbhO4!8W5c4>#AyQ-C2E7# z%^xwM2z7h8vntrl%AFmZ@{d&o*}pfEwN&S=wbWwv-&s-kCt}Gx-Ha_Bn-i0JAZ|@< z*%)umyN3*eE3GM!eYbq+k+Pg2g#+uWvIhM9%!ZW}^`?G7B>ES6ktbmk0yLC|?%NWc|+8b_Sk&7RBz zO7{p*f=LnK-@2GC5l#~)Tsxis>iFelqckDTH`|=8tx=4Nh&*tApFXqh>ofQa$C>%- znl&p6a;GK+(CHpLv6U;R=hKdRQi}F%z2f>&t$_P{_NyoMMjbD&nSH3La#pp~GWo2r zRu88(*dPS{p}n0EP%btr!77Rm0P>^TI4U%JGg+hlm#EXP|7h%`r#hovJ*CViGB*AF zKRKCyOwb2Oww8i7IEaAyU&G_cqXs?LcjSqlz^^ZI_T2F9>79%9N+?9q0yg8p=ko&z zBZu9WIQEb;PPTiO=Of7?<(Fu4*?GcLknHNd-kRx&cOKyU<0Bw zSh8(H5gQ)>58tLL@>{B)X?%eaL+-R6$mkMljUrwX^2?IJk6hkq74flxWlO1#J&?Aj z&fMO;_pi>)ojx~h`+961!H#NJAX&f#9hNTmYi-8LhQ)*d$8i`)Aq2#MLyOadxVImt ztSpi$$#g8~{)(~@FCDH+d-6cq92^<>ZBADINA_)-8tbK%6ru>{na}Oj=e4cPtJoz{ zzR1oFJy2CNZGTzmtgo`NuP!m0!!bz0u|2#AKuCLj3hmcKya`r%Uhv(B`h=2omY&_t zi$cSekBN*~_CQkq%=Rl?rYz>bjJSU9tS&nBds9QbPVhx4&h;GE(mO)eRB3y7F>*X*3gLv`#IgDl@=Qo^F2PwLMV>?QK_TUM$YCQDDS_DZq-5(%k=l6yOU}w@9ch?KU;1?N z)weC_ysG$I$?RGAT&?5^wFw74%gVa(5Bt&=p@W8NHNt5a6vvk)IxPMi9h<)jNaX=( z!o4HLaVW=z!jx1Nci_6hBL_+$ll?Y4UJ5URiynOCB95KGEJ~FuHN(-p+Vt1K7tLEy zaC*|3qMQd}w0f$Yqf7_A<}uKLf}R=_dTiH}*{RJTd^hER^mKi`xolFjR)6!ZvZ86Z zCQ~n_h|)3#D5K5T*}+Z0F`uxq;bgH;mHN<-pwOSlx&4oS89H)z2UkTd&c=bq4sLko z>vKmQPYCedT1x$|;nC#LLmuukqT6q}xG!Vb<}IaXE|1b+bEvdXRc}^|4UJ#;#qc@5 zk%l2di8=7@nazLsu4w;X)sSDbUY5s)IlJJN(0#wY%f z&hS_=%^;Db)Zd>hrkxa^kiz{F1>>K3O`CFE??y-=_nWt8`@~X^`nueRqPp-1=n19LS z&Xf3U-PkTlZ+5SNZ~t6!`a!R)rPzsYsa5W%$bFiceqR@DzNBiesmu(2DRajtZ1R#C z@b1^r8o=R!F~3N~k>MO1c<|`rPrfWjzmHDBBKL2kkT#pLw~rF`F^6L}A5+| zD+~*uC73M`!yjf08!@QR`cj8tikyxKn6fXk8tFh1rSb0QiPy^tX>-2IN@;VRbgPsX zhYkDeq4e~S@6MchyO!4Xk=q@K?epAGh0ZN}wK_xbJ1!J#MNu;3ggBSS-BpG!Lo|ny)&%GJXr{sAhJVO9<=JY3k66BD z6*D@V8q%6*rMi+;UAjWb>j^9A(2%eXr}yt~=4rliU3liq;N2C4(|42>&-pm}_$5%F zF~tK#6jssB449TLqv?4qIo78&qE)ns>gOcAVdaE~UaKGK*N^R-@67tiWqanp_2J2H zuPr+LFj-60Uac)93l^;{RsB+Q<{6^?faemrcFxbm$H$)Z#h{orG(a(h%RH3t zJR-GKL3qDRjkLsx9OTDogO|?=8-712q_XVvz~J_I3LXlRlRK9KS8v|<#;&r`XOyJv zVUWVahM=B`J7ja=02rj=Pk^`G)7yg`jY41M5nLSsiX~n$_#kx`7a%z<(Iw&FN5TR) zh~rxtWw3I|orj-4rBJ?eDMA^pX##Ds@R3U*Ix(u|yGte|UmV=Kl&5#*b$(`g;=#&_ zX|z#k+8JZ*^uoG2HT<*UWGgi(fS%gY5q0J#EWxL1m|ER1DlBpfIow~I5NKHW%HUCF zI-(A88EwOXhxV_3e_{U7-+N;%MakIwLsO0Q&-NRedQal8thT9*Z&CSO#_~nKl%BrP zoAso|2CJg4K4SIa(Q~K!R%?8-HVblh-2LIX?H{TAlmVe+A%#q5vt~>Qq&kbO5Q5Zq zY6!*w1hG66)|84<1Q_uza_!>{;Pb0mnWmV&)VQUwUV+oXf|R=a zX<&phC@wUpk0qPkkuwzB-Es09yoZY$cp^e?hE>Hb@kb18gd zN)3=DrB;*Tp77pj-TfpusXS>3?up||-~4ypj;DiZ{iudEG+}9oST?tW%k!XEGWkS5 zkWDad;9j7^sWAwSBH_yM018|v%Cz62fs8a{^uR_aaVdb38er&w(p}w9hnON-9aI#p z3HhwQD&k+HkQPX#)05%EPp2pIp+~j-@x6OKe)mYmya+=Oo0g@nPVMKf0`KyUj_ztH z1vG+PrR86}jD`abFrbP*_JwLI0)j>O+NA{c*=)mMzz|&caz&Sh3lGAlKS0=^DAsZi zzK{hPb@ZhgqR|w6J$~Zg&QMBk&dk(YrSrRbV^P74nN^k7kySJrEz{5kfq_o1LcFsA z{MXiy6$80(47@8jHM?zV)w$Fb6=Yug>dCD;G=54yY(9|^&|fNP=lx^JpEh zb6cCq5jUVh_ZAdVJ5^i69|RzL@KwsbOet;?QcM}8eD+05$yoPeLvvG#`y>cGCbkH- z%F?K~BqHKeM=PX%I)+p7t93i87rrDNe)bl>hs3>lC$&b8tPTF>sN9ca3WM; zU9Eak*_mev=|RbeT>x-bMcxEjFYTwLJ|Hz1$vd6ak5|L)*0^>ffaiUtM zHKdISe*DPlZ)i!m+<@G-47ylFl^?6ez&ceziE?dcf^sPI&~vcN>z=PrZ|0=@ynFo)-h!H=Yl!l;Qs}a zk_mK04&0Nr92 zj@X(V!lg7uf_@-u8mXUi<(Fl&!4FD+QidJmn1Z<`I{y1X!7-2h-FD{sg%@o)r$KPN5A<(zsq1bmV=E0zc%Frym4^-KXc6$_Z$2*!gM{1 z4Wb~(Bq5D$V`T|87{omV0g)-8Z2F$y9HW#ili@nzVx^RoKtF7lYF37=e4@x{B86AS zOw;mOKc%%_VASjn`u=8BGjutjT{yt`-!8;uqFsXnTrtH|K8_m1+9`41-JM_2Yhfv6 z-Iu*V;;szqsL;ikQc77&_oSWkO0tl0%cz(>6josalQ^|)YDQ@<(UI%z0X<9*AyB}a}QOOPoW+3YD~>T3573JSN@$(8Rv@wKZ@9}geOAN z^0a$iyLNDB$d7?d0n0udH%?w?f4+?E26*@GTl4Q_1t;(Kb|*fTd(c|C`u`g^sn4yw z`sH+WR%|ajJM@vvmHX&pQbj9DB{c^hmo@bk#m#YpX1~~f$}&kvJpkzSGaH8-t}6UK z!hkJzOrdfqzQ=(F(|3OI@sZ5?q5^62lT9%d z1c^{r9!JN;7c2V^w!b|{ed4K>2*`&U!dLR_?;QtiK2kM$it@cPJs=X|wo9a*o> z@^(J>an6pn>zf+&5p?7;`xxh%ortkK>Q*Ubne+oA2M44^;O)e$8B0SJ<%zPHf{UU& zzQrI3d|Lpn7+*-{5DujjF*B_l*7&RH2L?pXes93sm7Ior?HCR;e@-1!u3U-_a$w%> zv;_-}9eqGpV~Xx+6AW|}3kfC&(4XyZkNC#c(Mci2+EJy-^NEvCNZl!_?adnOw#9l+ z2+?VAy&qXPe)0#N%KYn*1J@s|D7$e_McMR1vndMG;i07XVT~y0aIxkIzdh2yb|}Qy zIS;Eee4F+T&>x_qSC!k}~1H04~kxMD~ zHnzMpY;y9AQOWsI@q7_(UdD=dHSGb=G3JjkY zt$X{psd%1&mOp6e&+ZJL3q8lxLXDH2h6RV6CB=C0fRMnSz8HP^M$}+M`&L7y-o-g^O>ELD zn@e(jYi_J3YpL{|_}zFnGI!D(`22*wWMe#`d(Fio#NW4ep`FG zmh$HlYes!py#BwWkPZw|YK8TqkceC;x_L1iS;9v=8$(Ezu`7co2*-^Z3SK6i2Q4V1 zwGC#H@tV5PK?yTo?K5kgm!-x6!;ZIyNgN0j;RXsRETm9KS->Z&OThZk2Ee(bcl0f{n9{mS#q{{zcbMxN!ZNEW z?mJ_w8G)ldH8jPKwW72+q$Qc#Zq){Vz;h^~P>fNRNR6&!Xh_Ja5y4@L2KniJo;zfS zrQIqZ6YiEAxNG04&sP;@|2Cd>o(uLSY0Wf|A4b~vVJ2&7N>{a(E-OA7|H|=SPEd>W z@HiqRK*ZJ3deTe66L0-^=#1~B;B-fr$Br(4c31V;zmh*rZ3sEU7lc2_M(l=X;{YWI z!+>4M%o#vy@V0kb*xx!-t|A#R>32im(TwiWE}v z8*Q8v(tpN_$=7Zoa5;1m2V_fWCo$fai#>7OtY>f7w%NS7sObNo3^D5xs^ZzbdAF%$jQ4`N}c%|e5yDbOq*t_b>pNq2Zrgf5T zR0z+_#;G#>$rY?^uqdK6h7;>9zI%XV zq;3NE#+gkwEh;$h0l7ztj#L}$Y9wrtTqzYSl+<9Zlwu&DF@Y-=P!sKOq;sW|!6O#| z5FC=H3CUb3uT|4nNMLj!+JccP_S8E5cQQ#ka?en|gQj*nJ`rab*w4p}fBl7n`>NkRar}L_QVPfU>|CI@GyqDdQb`+cJSe0PIl{&!5a2Knol3Mi<7B4yA?Y>LubW3UsR(~T3RI7d(=ow98=fD+1v z7`N%fEU!6^07oDDiULcOB35HK`$*iBtFMb1ble?fIj!S4;QRs6@#V`U`Zxz(9zODe zzYQO8C)^$t*3~JP^2X*#gw8E|0t?gj{{F)Bx4R|*8vaN-LHBc4olZ;R;uD*d;AlU9 zrbK(|4EwK&iF@__#C~IUU3vY)FUL)KT~^LqVpEt++Ec59n4m0*c@p-bPwBvc+4Cr51);l zu>BzA%O1JA@eAOCO`8&x@Yl48{M*P{s`AEK3NI8nbv62x<;SoS|7jm=n%gSkGcwjn`w<6a1W z;1b=D%5z<>b_n}Sn?1!whhvD-g*4beu;CNIF?BE8i+{P5l&67`c)URzYhkNtIYw_? z*t%B}uDx|oaPLwMFJFCw1L9}q8#R(^;jp!$Y%Qs9 ze5m_Zs)3FWwaX))ZDHG144kN?b)wi%1!3Adz)&zCC~#GhK4{70=!A{e$HyDnwnUkl z%mME>aNC|0Uu`VTxigxapEp+rJkx^TPO|dXyf^Tgl*#e&C7vODC+C5T6;E$1JN;%D zZPt+*>S&WwkW!bsdHmgpwA{uU7D+9_C*VFjw`1m_{DW^*G?)e$l(wTnUET=DGsjv| zRGZkrroQM3&bSf%JW0s5skek<_h;e(57ZI(R4!9WiT#3KQX$W|P?E7!7$0L?WxK(>_n+7t2N`b>(B-uCf{6O-m=?*EBSG)f7h z%})?7Z~>*jpBpPFngi=87ZyI;yf&#CgkK%GaH^u|dAM*Qr}mX`0s2+Z>VTC)BZJod zx&J7(IpiO0QkqOe=D>wOTt*MOVvwZq5}pW{G_@0!omR<4jw zaNyp(+v3kw)-Bywls`6>&R18f8%Qywk4|?=DZOEA>YjX)l5FU<0gmnAJ_{j2qqUL? zr%faf7bS*<{QS=$W6pNlhRY4>@*H5+(vsZVdY}9N06+jqL_t(LqsZ-%Hvt=fXnkh& zC!?=Sz9b}}%p2T}hF#EEdLPY>vo9J}_Y&Z34V4ZXYjP4A4v|B``qx z6QW=xwGAJPkWddHg~u6L;m3vxJSeho=~Yp0Qp|}Q@y3fO*FGnLl%qb#0ohXOgAc{m ztMvJ(NqGx%axM?msu%y5b7oqChBgkkQ%KPeE;9sKtl0tS{Atdf7Z(+0-h%@|f|(b|zEr$SJ|uc&{MUyVlPcXCu{?)^1rvipcs(3NkFQu*fRu zw}PhY$&znQHN?#QsQ=vMF2%^VKFR^vQtG1*rmIwIOnAhK|Kup{X0pOfrQPkucLUZX zlF&wk2C|?)MBbU)_qkVxj{N{<7Ro{9Kv(9#<&p6(9jq$8#nRO1C-t-=^oKyQmYy+I z1uf6bdWvrU?5jMeYOq|2x(N!Av|8dYiy=W#hq{A8`b^f!G1;|cZ~s($C}(`vz|zj zPid0!e0>E*`dp2#)L5>EPjO&H{+TNRRoL*i1COSRIeJk@)c2KE@BNlWXaf{03bTK|uRJ@n zr7}7*FQd9}bP%nZ^d=a|bx^^BKy)2YG4`6paJc39G z=PTHN$8n*v;txT%*vjSrLYDm(xyZtm#pwrE7VJ1YmuCn#P_xTv{b;{{h~rPhPo5+z zqz?Xcm6)uQc9kdPqxC#mTb|@`9hyymNR)p**+QIk14UF#Jw;7d#L+ArSsUPi;DyZe ze~ntVB<7eDSOR%VORZ{XSqp% z96Yb!wir$gSCLJYZh4NUvS1|z2Hx9ht4R^330nF>udBvSjU0H?6ONqjyBv_-OMSNu za?LuC1BtpIL#f%+i8W}Sq9HfAGRhTE{%wvcEDd^Cj6{n3g<6g|%yJq_KHUFJ| zWPgu4AG>{?fK0WcIq+2f@rQ>6NBnhBu;1*%8uqPF@%8@#Clrs{7z@XfjPUh0S8OdVxb^GP#|}PqV8@FOq^Em# zmSJ~epxmA=$$_z037VEzPN^_;=LK{%(R{~ zAt2<~RlNswnG=7~N^^VPpSk$st)-`TXPHW_($hvJy}zd=3tWnM^8f^#=9tY>K-Hc~ z5y(oZ0dg1M48`%|2AwvWk_4`$9rm@27R9}B7eD`xem6Ym22f7wLLBg>pLU^U$yMzr z4ygQ0m!=RUv#N-=F{BIVmSHYoA>KlHxhRrio`YFFZbtdw@8 zr{#lnJ!7gehNwM!joW04c*@8Jo8Y-hE`rt-&^4PjJduD@D&lo|MUlB~$im#y|Gjy~ zhV{>8rcH9imG5N^_$mj+1jW7#YpJ(uOM_^`V@_RF;CIExuoK@W!t#QnDP;9baqX)u zRSt?Aro5Z{6`3u;`9j{8dAo1?cE4%w=89AAmROC!(d6=qPt~*fd1$zh>>-m7o9DPF ziVT2$TmeO3$P%)#=F@(ISc?H9@W)BpuvSt;$(kFWD9UsvByhQY{P5DOM}`CTDRBx5C2m%|6sh7l<1YYTI){5m^p>x^w{ z{_{e{oCyR_hvn* zm6jvX_oemj_|e-t@iDYm^b^N^y7Z=l-~9aE*&U0{nk$CG#Z!<{%ak=&L_sET$%I@_ zac4|1lsE@Uq4Xez<#DcVI;bGUH5KkiIR^QJX25(y6BN=YwPD30y{C+s6*KIhgOVKU z>Ku@j(ysmlJGuVjBVtZr@bVPgPZ@cF_KkE1LU%&asdijiIwd-8IE^S;Z>piG{XOL+ zcP%=XweODIo8SKW^x-%Mq#Tnu;CmcM(ucfCOLN>RIW5&Tm_AU?m?{Gom7RQ|CAf~t zBV}enb-kH6Q>Y-ajTJc0(a~)(|=9X|;k_UmZzP z-#_FZd-`Z`aZsxW?F_KDGVc;^*OOLQ>*&bfD4(*DE-W~Z^82I9K3rIEaNoh|!rSmn zf>m1Qsd@>#bm)?Tz0+~u60!g#{uQ8G$8HAEEJ2{;Mr_)xq=3Ns(USUFT2j)`FfC%x z9e+x``bhy({_SoYkd@Nz_C!0lJ$`D{-ei4Hy^(gSdI}IY9%PXxlul3QLXuxyE98{! zbmIys++#1ZPN}4`v~`M7OI^fASw~)eD`VT?S--BGck{x9aEB@fnFBt>fjbjYUqH_l zPB4>RwP0Gdf>WNpFF*d6bgZ_A+*OkuOD8!EReG_g9qUPP7Q9NK+|~9q@}Ag2a}|(ofCEAk)E#Gu24#-Mrw|bl%-`ZIv7ulJk>l*6yT0iNhX_L~Y z2vDjT#)tLZ(I!khPa=aEuQFIy;j)3KI#8p6bn(*L) zvb73u@#Y2&qX#DgmSH_9tid?Mpo-40kJE)Lc{cvCvG>G}-*cWUmC?Eg2V|wRi##Y_ zu4aEj$Z`mCOtH8Nn7;RrTJa`QHb-~{2@q`>JpS->s1?w5$$mC#UC2F|3!ghwR(>F}rsxgwzZroY^*UNRDpuNf z;bJ|n}yWpCP=3GdV zI6XSbP+?H16nS;ELpK%YesU&4z5kBgo8~=wVwKiiJ>)c*10BVI8{+$JyDYr-#uAJ7 zYfB?&C;p;y$DYnAD+}qU`ijdrZK}K~kTza<(?_dlQ&c~F*w(pza~s68+B^P4=9=)k z4=sLXZ$-|5L)FEv(dMi~xaA5UWmE_@X@LuiO5FqBy!Bjl zODM|exX>hBSpL;v1E)WoIQbRNxN=T+!G8|Uf5H6W`AaN!5dZebxBZ0wdDCgkTsqqj^`Xlt%TN- z8Y-O)4rE)*)lXvnDF)Y#a+g^)r;CmOje2LeawFHLBEM-M)mvGdQ%3Qxs&K$Vka4zwEwX2%cQIx#$cbFta`wWZ;- zv2Sty@uxDII`)*OeN`2s$=Vp_jek%f}o75B*`C151T29E|6S+IVD3VwIG;U%9S|%C8plI3c}K_YB~xQ=hsh_K8N>WnMyG=O447C$WF3~RsRdHmWe!=7M|1o*3%1O8l-G3CQknXkN_Bov=0FE<;FkE*m!N-mYb^~?YZWJJE25TXo$gR;X_L}#bfLMHcBzYd zYs-wn308Wgrc~7w(r!EN-^kiF=8+@I7kqH~*MrLnGyh0Fp2I?vI@-X*Eu-%0=s^}y zvWFaZM7&OOPutD10r!BcJSOh&W0QLT6@w#=Ll;VE?Qeo6H1FDo!Pmc#bnQzFS^nvf z91y=BJ(2-(quY)HyNZfpXY5*=Wo>NGhiT|^5jS7akWCE@(g%vRtDR>`s1s_Wp&vd$ zDXhD)Nm3Ci7pjdE;f4sTnIa>w5Zv@Ap2W-Hi~R*Ih!J^QR3M^6fGzyDS`~1;6|W1Z z=@%6GRZ4K+C+`lKxZed@zLh!9E*zM(Yw4C9WqFsyY7L}Dcz9Rclw3`RYeZ;t#Vaqn zCMDJ{w$=?unSPSp@o1$i zoV=f?t&IBiRL=e0;GHjQW>co7xXyHuH|t4J7JPpO_$zmwZ@I2`^D{REzLd4`-rEl@ zOv|h)T9;W{bQ7$x;c5e|8CBUnfNes-E+ky32%pDXJTWl(!H2C!6gvrL2+to9kVtl^ zWXI+aXDU3^n=8?FA%fHEjWk_f-_+1JD{}bLONQP%TUJQD;c54Ub$L~~Z$sslbsPt- z_~obfXrs;}Nrqr%fpisjc#-fwm6}= zMZ|z2hJ%$A0r-t%&A_eQGHc5dMjc>LpbLx(wmSiy?%^A@!fK|?87f6;P}r^}Kflkf ziS51Q>3$=M1Vs5)=0MwW;JUOQx9zSdnCPvww2G{yQJR3lC70cilHliOYTH^lQ~Tu1 zp3w_(($mqW)O5tJlmH8&xv4?%Sn~Mm@9urkPf~C^!7M5|+<#Za**kYuocm36gJ}Rh z(u4eU^f8V;EOc;8f>VEGB>bpsmMrezqTcS1AGG|51P^2e0-K#-B=EzLS(fm_l7)0w zN4Zielq!O2CF+0|ET!xobpUBcrV|w;^BS=Uf13b99LKCw)teL%YW?mj!&9GpE@|>M zCuI4iM{_`0kL}Sck{jgrlwae4MUo5Z!>1IXz{jMYk>2Si4WOLiA>uvlThh2>O3Cq-pcm5)1GRsQi0IVTU@ zl(zQouOB%$%mqchl{s+19JnnZbv}HS;-5Dml-8CWuPu-H{#1IquPr5IZ*0D~nwH~8 zAKn^BS)v{9CbfTknm6qd!_Ggs;gWkZe*FBM>}>~E6&?S-x(4e2Jx$Sv&XRpC|%56LiY-WQ0(HogLh(@Fefw%pT4# zx%tvLaLdm1OBbIzGb>W7rS(&^s}vRim(YkWe{MQ-$!o7$)B-QQihf{05Y9+p-}98t z?FmBZfD_jmf))4p<3k=>UrP6$IuoOTvIq%r-dt`ebxbqb004z3A#j%23=Q@&L^cb7 zF!2%pY8uV7bfS^YAJ-}_3XS|}up#u*Lz&q>{V=y<{Vq~7<X5IH zd1cmGMWQzB?5L1lPs~rA_G2?7IYH(Cae$AjGBacjv^fX9zxb-zQ)7C4T2B5;tE?8L zG`SYSET(K8%A;s?MY*7RE=RGcNqo|aAi5=xhO`w0+=>OTD9avYw0QwGeBSYdTV&b* zSX6Wm`ZgRpK@Slq2-rXY>#4c1LGg28&Wtb49$k7mN_pUceOq3B=)lH-9#G|EnFEqJ za7(Y$zgQc|R_f*2(okAkN~b)+21iqhxQecqIiKN9+9*#zw26f~M=o1}84OF6yGuvO?-5Uwat%dB1->j8AfNFMtEj zAKLx+*Jn?>U1YBFkJi!JDiYLOXn`zVLfkhr(l@m@1DS0UKo;d-w<hCa)V$VlJ(S80bNsoF9$D12qVprCKAi0HHC`uKPw!WR1Zo$u$tlqi*$8@L78>8alrW@OUIO#awRBqg9PnaRKM z{fVP~^H9>bg`RLeJG(c2PfhMLvWnh)w5IsdN^2dtkW#ZhJC4xxgj?1h9SN{F+LcOz zU|d7D1+=(x3)rGxXZ}JSFdPwt+bDo+0@WK!DMMofg>s$ijlym9agsSGi?Zw$qZu&z z2MctfHl!$7ANt(;18)ApZ9U~gnFAsYNb9vC1UV{mz*`QyGIZ>_FJM2vjy3|&@J52JkrHriivZf71Z5J+FjFe&-u=Xyv=VuJr9pdw;#5#O z9=E~rrn@AIDG5_*l)?uHai)zP(EW+WTCxHK(7IDvhpO3GUN~oOWzn2HhlANHKvXaPWsa{IyEMCT9s$6rAfP%CJcfaf+L` zXLPEMpQ4i1je<|(f)m&D4~n|~+1`_L-B6K}WDYdrK&$U_GYmOF=D-DT;I`eHZaH36 z@yuys%}5jZs0$|L6w~Nxa&j$}bFRv%SomU-kCp!L4=*s3SWG8sX?rUM7;FIIQ}a+l zF=$c|3|1&Z_~p$24gB#S&PBTT9`sP29fu;w$6u?KQXo-)LhNWQ5`k^YL|ha_+~t;F zMS&}&u2u^X2%@0D|6o0>p`-k;xg(U0g6th&NE;U#y|lno`@`pBuR7&|D&NW+aLa+| zX=E*}C>ZDM+EVx}O$Z1&^~=Ot`jG_>FMpebCl0UqXif2n2QiH)sSc`Z+77_$F!BWa` z00y}vz~hGg+y(|oIgBv-&;+FxXJ|Mr2t-y02n+Z;%WYB35+P%Gy=|CyWCAHioly*M z>8FgQ>O)mJ!H-p>{Y$yqW7yy3u889V2ktf{=?Xm!Q4 z6;_MBu+F52(FHJTCLF{=vBb*>1<*o2Sf_qo!jIDA!E-r}TF1OB9`Izpal!|dsPeBnDPQC!Z8((IF~zaKZb3z;BLz9 zdWvwkipiX?BJu^E%VLiPnzR(O+MECX-f z3{A_dtUNqAEHXPxt1(*|8aB_pjYd%F zAVi7Q`6{Knqks%o@=!OPE`?nT&xRmaN;$Tza*PPYk&Gk+io4tj>HOC|Py&!6iRvhj zAgd^)*=Rx0M_dTN0avhbMWLuAp5eUkV6~>Sk0EGdYGCM+kjB6@e;Pi#oMXsWnFE{y z*Z#U__r9v4F)?18@`P8fk`%$jfZ(jHlWy(DX6T;P!oP2|>=2InbUQnBO$t|E}7nqPCUfg_CiE_FI&tV9r;Ig2LuiSBjub5z6QK+W76!pm+9*hG zmM&Nk(7NW9QVa$V&-iPmlnQd&!{|T=2q>H21b0y61lv}wkO=~|uE-Tj5l!TXZUq$n z%LhQ*+i-1^SUcGuMp%*>^qNVpEEqEYhJGO>tsC(1sB~5zF-f z%2m(x9aD+o1twa1LcmIqR zk8fHLPnKJ61FWF%zbeeohT?*#6=YBeVEcfmG^HEh!ABoZ8dC1rL=}zVAatvp;N;8ecM+T`OKq>FMgmrn*;F=I1~>J9h6kDlGH|tFwU=)NqZih!l{`eGDOMORY7l zz8Q0EK7q-h2Xo+>9gEWsR2Gi*)>>LY*3#sFkdwbmx}|?xuIByT&}DRLb;&Ht)s$+H!sWu$K{rhuyK;t9&N$qNi6#*r=9f)y3pfSg!TRNGs#mH zyP(UrG6&9!19Tdq!teRK2yS_}pY{k_u&mmY|Lbwgf1THVcN06Ru*r znNrFGJ%l|4o9uVTM22VUW!zal;2f4xTS+d1AI2V*V=Ko7+k%Jo{gDa)tK?pg35H^@K(iA`3OQ{qpf4|D%ArX5L0s>cs_-ohvWyrWp z0+T}zdIP4fLL{7fTWc@LrXXwe+r}!FRl#dil4KkXitmvHRPVIdxUj z;j7oHfGX1;`idj)jzTH6sHdj!77P7^evx2TN*%~fis5-GrLe+6A$81lIBM(^a}glo zve6)3XD1w&8`cbwT);ite^oRX6#;%4#k7dj_lAZ={$)L@yLsNk zWki_+zQlo>(l$PP>i^sO5-_>0>dfk{wX1qjx76A1^$ z&rbZ2WylwX1P__SlK^pu2?=EQ@C0U@5J-kB4rE~%h)ryeH%WMtk*&>=t(L5%*Xr7< zd(MB(J@4K3s;axSw7a@>@7ML-UCuf8-2W~2@B7}pFFX8)FANWLcG4uMG!ZMjM~R>} zZM`70E0I!vi*mj>(}v?Jh(suGIpu}F;DnCb7gq-;2R#i+=&zOHIvNYJrUX%n%XkMT zP$CSIOKd^ZVXSk93o);~+9`^Wnk{rS*mWZhWf(z4I8`q4$_ZWZ`1qQ1*OR44_50T^ zT=7^Y5&z+@ta9(6GDzpa=K4qfZpSmjC*H6yk@n8H$(oJxXn@WiI&WV1kGH&k(`51! zmH%^JU;4|h{QFC<6i0gTKImx$I6^<4lv-!JNA5(%whOfh0}JRCh-+TrY+aQpQGcXV zWbx0d_jJVwqGU2sDqn*$mCz0op7cH;_m2rZ=R#=P_Zp0jmd4AGRq38bHnsJB><`wy zbIKnZn7lS8;Sdl6^wMy6I0ViM1pZ?0-sRspe(3j}8aj2yDVoXOP2c3k<0z$Xeylzm zD8~St)FcbfmR=)n$-`~9L zZ>FH)iQLz>Bb_Z4UiVz~#I^fI2j5W{t6p7uo_gX9BYY{5qJKT>xlMZ*1R2B$PCKEN zC^wf8$0pb`_~#E6HF%`d&NNpZ*GD#BhX0kN2>!8z=tMYAPD)`x+M#}6uer7>_y;sg z->jz<4US#jwfxhcU3cT3+d3}p5IC0z*yrB4wCij+1ezLwuk3%}ZC^R`;-{Y<8n_}! z3(I5qC=fcmDK~PS-^-*z9;q-w+^IBDKt37uNvYlWp%5K|UWVvxD9)V@jZsk4DzV~9 zN=>I?_fCe`>Zpv8XHSHyGkR>XUc7$2@K%DYgB;){&SGQ*t0oj^R0R{J()3jwdgM2D zQOEq}T3W|{^rm@BADb6zee9RlUh<+b=5})gfwyn}=FZ(Cr!MPFwDDOzm1g1m#%Sr< zOxK%HLht!N4;WE5W ziZi-~lq#Y0SR<|rTv>9T2;1Sx?MuU4iy|il>K{@X_w0BXz7b?;eP={Ujm_GTQnBpS zZ6cZrEZ{|dB}dnAB0}$t-nSsx^#{MXV%w3hj!QcP&Lslols%Uwoh^sJ>_OmjFFyNU zXr}&epD5-QU>O;#ZweyUD1=EVZrtdz{0_}%>fIell$(AAkMdPkI~$`RyO17|2vGOq zjYug;v7mIFs>k*D%4EnmQ`?I|g+s^<%{F`68~9~f!gZ)^X(v)3sY5iAAH`U2HW`hT zm!~sNM#oy7xTJf*k9G~6eCq#R`QH6*BsB!{EK7dzz^?cH_ZJ`i)?$p7o`&x@N9g*C z+`j5{ANb7Xw|qlY@ksvuzU?bFc6Pt%Xd!#mXtjLhi=(GDf$Kgj^J^}6(~HoZ;^DP>Yfa&@m;)D2_m2FEEuzUn`SC{kQF9!S7|23rz&k{0ub zldr1FsX80@Zv9v5lTvsOKg61?sU}fgqz{|mi%c8R^S7_0PlW#An)f_n%euHjV7d^{ z^KiQCJG%~nrbpn@&+l0BgA>Pp`}vWIf$%rFt9i?bfdsm8p#Cpfkq7@s5-?V8&_1u1TAaMPo-`x4^@ad11 zVr|f_cybp_ditgQ^3c`KWlz2#F&?|}rQ*O!`dV8&PuC?zG&^ZAdz@KO+Uh@#d`;@h z(x(fPb)x!FoTW%v=eiP9W53?H?WwS;(G6XTs>d~is_f&!;`iCHQlvMYdHD_P%Rl``8{U1NFX3Vif$2v;uaW7m$<^QxXmSKT_598^ z?HoAu`#T3uU01A*MN;%wKSrH_>0a1-5Im&u# zFCN@+(|_Od_ydbmX*w^0XU;^9V)PTMI*hfJA`9AL5&UzA^MZ(~STUoOY6I6EP6S*6 zJSeFDkg32__izz5XovG1cKu*o0aGERs>sHSE?*ZC#}-8h9M?*bp#`C<4%vErNs%nc z>_QN{j-gQ&m29#_43?h3H`gUSX4JVsF1n#4S_Xj#+ zzy8-R?f>}ELT)kMg-p}PDS|gbGZp8}6~=uUcM{T9ozsz0_@VU}pR|MJY})8R5=NG| zCo=NEgmzzI1SwC<*cEvsq~y#=sZVA-8)Vau`vd_#)8}L(^iCmvVJcrG(n5K(K5B_3 zx9p|a+k3WlFFs74McwtIohv)3;2)x*1%e)rWwzr17c)bC-* zwc7J%VqfqSK9!)S6fqio#|zlFaOwouMF~H;$H`q^td3?ViD0~_c=9)WEIBAgxAc-I3?cw=`;q|_LPzCOH1+zvUqo-i5lg0}9* zZ(VZfr+%jQ;(xKrUECos69{U0P+I|BEomW_a+UM{=Xd1<7P2 zVaVx}E*=#!J(qTX=qk`zNZRTwAg@V^hmr;^BVct@+QVse+QD*~HoS}s?Ky3H5o4N= zu1ixWv*V`X&<+wNkYQ~blXlAHy0qNv{gG19)e%<6;=NRin4$zfwx>prp>c{LlxfB_ zX8B`+T9F<<7U+@hqGVfSezFapLET5>^}x3IOJAYR_{Tr$f90ij&tLQEHJg^cysc$L zo(;Io86mL0zrX8KM;~6+9Z4^_q-)W|51xE!-ND@OqOL?@<4C2rdbnInRjTngy#eFB z?mX3sz`JPvQY1sf6o(t1|C}hC)%&C{Om*4kt;VHJbJFp7M{)Y&C~Zs$?;*?i8bKp) zZ3arA0XaGwO`CYwAE0Ks+YwXq|r8##SVccLf|7${%~VJ+-7bR_&%QqFqR%Y>Q|{eCsf+U)d8& z(Kq9xgnKEHpvh|(AuU&1BKa~M6aS>0GM4xUsx3YqNn*5=FP6rtY#tZanFJ`)PtGH` zEQ5s4oZnIj3viS+ro{73^VyAaL`sEFO2gDIf|dQ{`X*|#5wJ;VfsW589j}Fn_G2rO zJ)e2kh2vkkrRA3DL}px>L*TVWVA6B@wRXtW=MZRS1itXX?yJ6k^2jH54W7CI%hGhv zY~b)@DBJ%UQtGoZCSRg z+6Hn{q{se5s`wpYU_zsMoVSQ3<+Rgrr1$D_v6j{&gXR1yJ@K}YRq2l78{4~&)40<9 zZ};s#wj$k`+dOan(E51K;I-XLhE{ZS^&3}a#ctQg(cWEyeO(7eMmv9;KQ^yWDYpI0 z!p$rCtA#a(vI7ea=11n!JhDZp*4UcDc)63_m`D!L1hj#2KGIH0FM;Iaac`bTKh^}r zgtS1QAV5UC41s|mjM7trahDj-9BEOY8Bke6hBc-PEVLcMziBXgQ!Gea`oGUP)4$7E?QyQoGuSSjIro3q;b76|+n(Gej^`L_7=BW-LUXqBKY+k#zD- z&l4bFf*y-d5wJwSzF2ADpZCv@6isQ%qowo+KS`dB={Z(Mlh4nP4|T-qW^vP~M4KW) zFs3;s&J3`w3C>h$IpvKr41_uc39-d7z7LpMJmsK$WTR~$rC4K>#b`4XQp#5o=~c!n zkvu&q=!&PyTiO@>&&#`3f9^wzUw<%IlS?@SnhSvjmqc?p>AZ0WG%Erh+41mA&y5WJ z)=Q(=D@!zrl%e+K!oT zu|dhI5+xWT87x%<;ua^ih0#My!omn5kyP5_OI9>7iwFT)v^>>8a)Q1RXG~Pl;{hC6 zXv4%!{%J9dFqEBa!3Fy1j7tc#>__R96SNWeI6tFi zk0t^w_+#GU3I>z`vKWXO0jer2g;nBl#cVch<~U$ z>7R@Z>E5qioLThwUt9H--M)1fa|kpq0u3&S=5^S4<`8H`1a5o$2RH8<9s1ZS`Ozyt zQk0y+SME~iO5;8d3BKxdq*RF%Wuo&jS0qMCG5Ht)JGNmuN9i=VhzhBM8J_CO<7$+O z4vCNfHiZl`O2avbYlTMIugfoit=gd0{SuI_sg9I}NvV=9#wb7v$i7xZ&Y@h%Ct4ba zQ+t3Lf{;A}jb!oGZXYtdQ9SMVE!i3cQieW)AZIz|E#m?@w34nu)2gdVav-H_ z5js5M9417*)u*q9>jRS+>^AXm?E&!DNHj8`k<8}&4!e!(> z*Xp18v2WAG90JXcK*LL-`CWG&Is}>zfe$?P(9iA94S(!Ne)LTx>Qyo6BSt+kcP8Yn zbTx*En$9ZF3S5yS#JkYdshy*gLdz2LNKmlTgcSN%HigO|hdpvwM=MdEq*!wy$!dsr z!OwwD(8L}(Jdy*`o^1Wdgrw9~fg$#n_7tCtl!D-~3bl=!YB?fAOL!lXewd_kAvr3j zmDx_1IAkfR5~|@#Y6<0p3Q;#o@l!u2$|PQVrV=(z8$K>5MV1(1lqsrw7JjoaDP~#8 zP%ZHVIJ1Z(O~Q!tPL7*wks*S%kG8ZI*ZL^~zSw@j0*W>NOh!xb$R6hu9^d14u7f_h zhh4^pE3iQ_acYE|vEMyK13B8gFka9 zpZm=NBg1dTM1#(FoFAQHq)Z8%bcfpcP>a0I&BW_8GI+tNF69P@j3{cUH%i5w8Ev>g zb^J>Gn7E?VvzjJ&@8{r^1P}=BILSa@=_!)ss%Q_}5~zFTgyyJ(l-7_Ti22n`iIhrZ zgfr<$UA}FYLY|I9!~A5VG)y4WV{L(0*IY?i4d#q`q*Q#t=q_2(<7da=8yfVEI3bVCaYQ7-evt$f_$|S?DdOgs8nuab>{m!YE#ln6yQNbdE!FlVXy$!_ z$Y_*s(Y#O_8&Y&9aKJjNxW#zmi$3TX`1je79opb=A@ zW@E2%czmz#YU0%aSpfhNXGuzxT+nd}92TlrNs@}7HpVa@D7m_=M@rEM&`myc+E!IC zdt@_06ydlJy%YrW1WQQr=$bS&uvk=GaSE-)tLl_SISj&M(+t-2+>@PDsOE%@Tc*SN1R;h4BE z`w`&lVfHt}wZI|J+z5Q)nJ3@ACp++;cMhJsaiCO)^w1|5)Aae$F?tWo3n5Yy=)_1! zyEv9-MrSlh&nFX}HOlh?>w3MPpWi5^HwL?#^kt1FAc2(0k6M{ok&je_W^g{0X}wyt z&bUX%E055j0D1fUP*aobgvJ9!LR^%TYUdBWT`zdV5cN^D{_C6UrBOkgf|83Vky1;? zVyt)Xwd$U%GwS~ zL4dD^xzZTd4u?RqBk=is&%JrasaJpH$AhQd-(N1aVx}~{NaXd5=&8(A>32=iD(R+7 z3(;XB1A%OWNhx&Mj4{HZ6z4o&k)+fJ3B|+Zq>h#iT+Br0b2AA|K69(`2S(j9zY`1BkrWGVu9HzDirQcFKU` zXfW>t8~9~%gD#@2o~nu9WMmt)qFxU45KJ9hpUJ>cz!R1Hc!`cdD?MRJ9J-=w+1KAP zf7N|A_G~%KVs7IQm}3a&B{9dE<(lIVXl?}V+5Oa(e?4*dPMR(I;lsIHCpyMXdbE!b zJnqYk``lO6#3>h7u2)z~N|{LL)opCTjATI(L5=t^KSyOnvhG$pTyhws)V69>ZR!*Y zLP|-Vgdt0>~Q}b z2eTuqa#i|T4$ataqs|B<4c(hwq<)-Y+6kIMO==Uvq||#<%>uq9^rXJ7(loJROsmP- zz3H@BKh$Y+{k0l)A5W#!K2p|t;8j464I3jWWRj5MQC8Z^NGY_HL#VLiae>)D54k`# z@XCO)OW7-8d@IVSPvo`ks75n znnA~s>|o>(`P?K3Q(8x|RjdBqHqJ)4Dz#ptV+yo9tZg-keZeF7T$yMe?V*D-Mo3dM zLW=iEXF9-NA15TpLG>$ie%E-53=-$SdWeY)DH08~@5za{ZgJf4z9>Fm&_y%pH)VSN z{o>5x`xdQyDuQIXmSMZ>+4JZ>!D|F9vd6G{rQoBt8x`0 zr}S7K3$F(+Qti=9gG?cIb_tU^RiuLYq*OF~U7HRGahMP`bkx*oL!T!Z8R42ozLpUt zp~g{tl&{6Gqb_S6@9ShLDdi$!6S{V#a0ukuX!zEIlnU9eOG=qZLEY$^x&!=#&7oW# zHS1Ptp?vjMT`+0Uu!y(kCUm?6+g1NHx29Msqpez%%7m0^9Lc*MHg}s z3-zrk-e_M#NhNC^u-;<@>*FCjQ`tEprCgseDRm3RoP`ZHmNrJl_EobWa(1LtM@_}L z+O_MFcanvgDn=-me~I*n7!A*FN>g0zv7bgnHM9)btVWw`5nq)Wk95%2ngFxP8r2!! zwc;I`dckUp6%9(_`b5BqZsL#?YD!tiqd(+T=u8~06!~+mL`L^s+Oh2GS9P!a`cE(1 zvJWO)a0r}_2sFI5&POm@n;inpguq9hd}K{awB-XYWCuR5e{^``D2<+`!tCEI_1?I$uQJlmOv--(V~3f5-_

  • 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 literal 0 HcmV?d00001 diff --git a/public/logos/cosmic-horizon.png b/public/logos/cosmic-horizon.png new file mode 100644 index 0000000000000000000000000000000000000000..63a223b0b23f278ebad6659be133e018448693c4 GIT binary patch literal 253710 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℘=Y2e9LRU!sw!Uu7XKP#Nh9(ms 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 z zP$@flKw_*9(Y&sr+39%RSE2ImZ-A>JdsQXxA&)8up!XmegQw#QCg?Lt7okR}T-Dm< ziJT)XLvvo8Aao-FcpoBhsZ#7-p#-c8BvSy2k{sx1h_z!*kXo(L_?!=aoW4AzpB$3!Mbk2gzWGh@*%^M?^~FQXQ1^j147{s#H^` zz>D9Nk{*sehCTtP*i)9C7_2y^bRNWi$Wf+Uo|cb}{`b!4_9qnGsr1n4*?U6E>2G9r zuxxO9_9|A!&#Z5c`fOMK$Qk)h$JxiT{1*%651jh7ui{z-jMRuE;-=?cH2$R0%mNzU z_cw3n#8cPRP>QMTJJ|T8FOQw{!2SD`EdPJi?q9T6RzK^%g^n9w^wwML;~uzw=Al-A zjJ)~Hq;p2JbC8Im{pL4s0`}4*nYQu9#dD7?mx%zmEf6P&im(pG>4hcyQ77siwzKdnGwd|YR>4eRj?T%aT?$1B%#LPL*lBYhUwtmS{ zR&Cjhc3l70S8QAKwQsB{5hCv?-}=|^%0D?gn|l=5>c4#(a@l2+ogNa$Jm#{?=HB=5 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

    #aqpQcdyQXbiPBEp@W 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 literal 0 HcmV?d00001 diff --git a/public/logos/cosmos.svg b/public/logos/cosmos.svg new file mode 100644 index 00000000..aedd3e70 --- /dev/null +++ b/public/logos/cosmos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/logos/craft.png b/public/logos/craft.png new file mode 100644 index 0000000000000000000000000000000000000000..69bc81017d7ce2ad4a6f52261a9e6660ab9a2751 GIT binary patch literal 10536 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 X{QnowFjU~8761yeDl(P)gHpE2?Uh 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 literal 0 HcmV?d00001 diff --git a/public/logos/cronos.png b/public/logos/cronos.png new file mode 100644 index 0000000000000000000000000000000000000000..68f2db74e9df1ab9450e8117246fa136a0cbd093 GIT binary patch literal 9777 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%0Ahjf)+!l)A|Ko{JkTwu_@Z@&Ky;L{l|J5>i%v+ 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 + + + + + + + + + + diff --git a/public/logos/decentr.png b/public/logos/decentr.png new file mode 100644 index 0000000000000000000000000000000000000000..65f3adc225f9ef7378058fb31b3352bac8bd2166 GIT binary patch literal 574537 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≧!a_8I_uM(+^mL;j#a* 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�_-ZYyM=B>eI(K4mBUz1FZQ}5E*A=m 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'N{FwgWhX` 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

    uc=ZK(2$0f>-Z(ErzL3*Io^=*GFomBiC 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 dxH76Wcc2q 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

    #Ev{ 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 LnhI5j=i&bc`&wk3 literal 0 HcmV?d00001 diff --git a/public/logos/dot.svg b/public/logos/dot.svg new file mode 100644 index 00000000..17a12423 --- /dev/null +++ b/public/logos/dot.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/logos/e-money.jpg b/public/logos/e-money.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d0758dd49ad240a7680343b3b60efa0096d2df40 GIT binary patch literal 8290 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%0A0N#fo#W4KXi=n+OMgQEn~3E#27%r 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®|p;*X9iQF;gUqxB

    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

    lK*-m#o)y)Eb?SA-;Y_2*`Cyq9&1 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 w5oNj2wYtxCQ*QUB;i7AQA7$p zfC)n$^q^nCfI`hS%t1OdVT6^a3!C{&s7jSKE|FLbD+Z*G{sss@KIS ztY<$v(@$`K1XK9J8$YlJy%P1W7#LwgmGRKR61J&NJ&*M?huela(WOS20@eTzIyXfZ zHzCGcj`0Y*@MQ;IKmreThM65KfiXLS%w}#gnI+JI30Jttbgr{|i)No*M1m8h-~WzKY()BNC1CmPUd z7BmUgJZ3VVS^^{(fCL6G0A~!~&z#_d0xfLkT3aCwW|fr?nw+l=I)*~Ds0`0E!unM zJpaiSJMalT|Jo759`+;-j`XA-{pd*#IKc%z@TfEV*#CxB_OqJ}>WzDQ1QQpv*Guhn zaicoyAs08OSB`Rt9~K2u{CQF-MW{#%;Em(nFl=hF8_V46?oRbE5DvwJgd-uUG!le zoEmko11j7={WmcF4b`87F(N-w>#gBA>FTUUsAU2>o?|EZCJM<}6_O;23 z`evsd>sZfv+U>t=Z)R+%252ZJXbiVzZ^wJYSO0ufAPnJ1xSBZ zICcS8g$uW4OSpsrxOQ2XdtVrQvgm+gDF24AHi2$vh687YcZY@(IDzbEaIQvhdjM#t z;BS6+hs!7*c_?|6sE2hh1P3>b(O3u6M~K&_jgBaJiYIyIM}yR7jnubvm1mBXS8$$) zgh?ohqj-f4_jyytdJSi2O4yDI7kBC=hG__B3fGHh2#3Jfi&2M$14(fID3E)Qi+jM3 zdoTdRCU42dj1#F89S{jE_y%_1cpF&<1t5(DP>tv4h>o|28~J_EcyQiVj*FLmO4o@m z36oKWaPZf8p?Ht+czdANipaK;uXvO3hlXLuauGWP+JfJRk{($H1~33d%9bICbd{K-O1h*?N~*ybrBI52So)<~ zs-;^xrN;K9Tw133=>Kw3I;*uxjK+wcuePQcI+-Mjr!N|)!pf&2DxMtLr^gDS+c~1e zdIm3wsEG=r)B3DYi3*K+ho2Cis2QI-%B^MTtvz~{m58Yxsj2#Dqb1jqsL(2{9NV!U+npf`jN4$hp30=v7?SmhaMMVb^ZK(vTd#mNuV_l9k!z-|MzEBt16q2p zWqP>?TeVS{nS1)Df@-V}o2(E^x><|0daAL{N}gv6qaCZU9J;pS*PlmMiEit7sPGAL z%Z!i8vO21o@F}0$inl%b1ZRnK<@%K9T9s@WxYEd<0~fD6Yj8jNxW!0t5*n{-3bpb& ztKe&|0*j^rtEQj}x}m$Go#_nSIS5wyzPaEFm^lxD@Vb1fuz}2d; z&`P#v8~>w%ps28Woq3nDcbA*Fsk=!>oBgSWiq{LkJCVXGpB*fzlKQf6@CG;#fQtb4!rYrhVAtk3$toLQ``%fPW4yKFEBgP_2JV9FT_vX9x4Z>XEQ z3IE1`NXE2j%Sgw&X{^Q*sjVIC%N-2Ik$Sfy9LL4Hn$~!jAPKkzP?gomkbmsLiYvZ2 z9K$YL$TV!GJ^aWinxg*ezwpbM^I(-M`oEgonZB?GO}w4^o6hY#2;SVa=}gJKFuV19 z%BT#Zf&imj{G2Ws%jUR}vz)uRd2rvzef=qUxOuI+Op!1k$1Cf`#f!JdE5{@J2H;x9 z%=^FxN1fBzkc0b_)#$=<8m7@XxZAv$+_?vuT)*`js8)Hu?R?4jOUW#%ze&8m<}9LT zK+p7i%G0XAXQ0nPt*EW+z^`n1vW&Z7?6xUc!MaJ%O)YuPNU{tKmK?mTsfoN=E&s>! zNz5dS(Ip7hdW#C*D6*J3xYg;*Q+d)Sy|A0PqH*1wrVGzAy~&xpopa5nk$ja$+|E$! z$uH^)_e|JXJk&qkzYV#zZs5gXjJy9V#$)`cZwtW%9f$}`%Z~WAzH8NCIhG#m!QKki z@R_&p`PC(e(GhUbFU!17nX?_O)*d~T)tS;Fnza-wqJvPxSIMkLoD1=5&Ufw2@5|Cj zyw8Yjwh64oKV7XC+L%Z!(3Hn?VJzK9ZK-U#o8LIW{uz$7JPC2z*=ww_Sv|aSTb3kv%+1Tu7#i2Lt8-Qw@odM}3k91L57CU;qc8Eyv{j!NzOM zslD3Zy4vXt0q_k0dslfQJ*@X#y5lUKnw-CzeAAXp&i+f_zm1uNz2K*;z(k#~X&b}- ze7j10cOE(2E=k?8%;DhIcuPlvQ4PVAt%Dnm*&|Nk?di}bPQ2v3vd8Pe>V3TH?Zz?= z)-+Cnke9;LxTy_UtoXg>+Nsy#+@kYP;46B>-kjX`tl)=Dtx@@lkR90ot<+U6urJmZPoxEVJ+QqEeFRSYB{r}!}o~ipu-`&jT z?Q704ea<$Gz=WO3_`Kvr?c`BD;T68rkM8J^9?O*N;-R)36Jn3 z`RpX=-PYdaJji{L2YD1<@f_&TDtnq45AHlV+IWlVIeOY8Z~yWZjqYP@%p+Kqlvm9I z;IRs9%K99mDw@MKzq1B6@BqJ(S3c?1c*5lv!C-#bm)+%*-Jdxq^dK(gZg72e0NzdC zo}X~y-3rXaTi&5<_1_wY9%V7cJ|^ z4*CM!^UrVWJ0H;E_m-eK*#%#Y9FCT)Kl^?UiAEphZm@`wr^~mGtzwDh5a8{px&GYB z;*KxT!OyZGzx5TQ>ecHTu@K09MH}I)+OllZzI_5A?n1g0 z8QQJ;uwcWx5F_ek*fAtQjt)V7#E7^gOT;Nf8gtw-PoYtV0Ahr{{m9sc*OUXph~rYx?w zu=J0MMSesDon%YO*}2z|X@?r-4x-JUN1tB(djHRnu11BLI&ACNsnOb(`c~=_+ii2N zO$$J=&U(V4gpyk>FXVzd5HABw66mmlo?Ff_k|2z%v65aY$)lAj6A45R#gphIRLWy7 zMHN?MvBk|gh#)Giq=N5`)4-zYwc5Ihjkf!`3eZ0x1vJYn1ruD3FNhEn?jq(OdeE@I zCY&-#kFLv*!;!Aj(hcuaD$%8sWO`!~FkD14O*PkK@e`|}k}=NHP*bhGt#HIKzy7i! z(k(xOMC%Eel4S5mzl=*zBY_@#sH5e!OzcVnx8zVmjz^kk>PCll(YO6hi5jEQ4TMfRaX01)NR=G+U#~<^|G03tY$ZnvC9F=fbD-*Pt zVJRVE7Sao?gHFrp{4VT6F=yhG=>IoTGU;#<8sQ)JWL<8fB7*|k-+ zTz6c#NBhKTYfrZZtsCIIr*m#fpPLQ%VaBF?JFsj$q`e|hLll!EY)8CI%%#KawleR= z!|apEmuJ3tr!JQdtQxhB6}CE8tJ7X}<-K#OTT8#qD`&54F42BpSCrXk(^m{b+&|s@ z!iZ&p-%IVhD;!kDiMA|UJG@ogN}PtG<`vL@Rf7R+L{_6(MGq^p;@tPF2Rhf(OM>^w z*Bi7&p(|;~LKWJSzf1xd5klr9#$e2ca#on_SZY(%BHTt~$fZt+DS#(ATz1~jKd05< zOa}yF5YNR41-_?<)AO2)w*NQ1lU`JI zMZZm~Q!nWh`)US*3pip>HwU+Mx(Sz@ieoF;*GX9y7{=qHvOpz zS?K4HX#K5=UxW?`VMrksw()JZv!5kH^0cV6QCq*GUw1yWI5kG?aNTmrc#s!0I^NNh zuVfJz_Q)>S#3xpzLE==}<-nHlQgmf8S)S+x0fNb|BVKHwMUXid6}o|pb!aAdrX{pZ zIxLi(Oxl=c^2RitawP(c2^`&Mhr>+`mghvLdOlH08NCUYm-A6A4H-dN)&`J*Y*op+ zSCv0NfN<25q$3&SzWzL60o*cTOA8LMM~TiZyM2jZ>T&F?P5eGA=Xe z1ZhY?6A2_9(TGf}XA+-yIYYMefQPi;H9l3F!x|Xd=#Hcde;UN0c3<@(*0a%hZ^{IUb6B^Qlr*W0?qORmL_pD3vQB zt(0g>S4|HpuW6TTYDG(}-14juU>Ox5**1=}ZFP-Vt9B%^$ischeirfOYejT8?QjQF z8hfZx!xOdt@&6W%QXP-t4);UH7T35tVHIUXMw`tQv6t{%={;@K+01=TY_VzW?@WtO zOD@I@FH~!FJ{cL6ATCr91yeRTIjpOidlrxNCjng^=;vDJw&nkHmJh6`@~Q;qoTCIr` z`J05>VTBjxyYn)QL~mqqiP5+;-gYav8-}q|HP%rX)7Z>a?SOk+6`#xLkUybJ0ptlN;Lc-ZDQ*~hyL)D#bc89K5e%Ug)~IxTgt-<_o>3I zOa#unX~wb&#{vE$fhoHh%CZ^HTN`TxPxchrN~D>5wU|ST%#s?yq=r%BD;m!`nQ(b? zoEq(@cWirD%P5XwUp{PQ=6fPeH=C--WuRsCSSQNLxwBF_D|V;6)bK~OlfWc*S^Spx1^PA2M8?I+5bK#Nh9lK%h`zF%pEX~ ztF6cCo!a1BDe_#)I}`BU*HffC9=K~-CfZU=niX9yY%O~4|6w$oCpY#gFC9)5pR!Z{ zhyOV`-6Q8wn-swEL1|@uq{Oe)s^JsVino*s?`tY`Cg`S2$DO)A2~Q$CZww%Avz)k6 zrrgDp#^n7{z+k9TEqOFj0qR~zRwcURdPe!a_!m419x zWi@TxL*Bm7nE*89#GbBiNJI6@9fdu`te*G{7yiXtr-maSzk54Ew&0U@7q^$IT!g0v z?d^KFYLwW~yuxI~Q=UoD6^Aigryj*ggQL~!y{Fu_Yq6zj zzyu_@1{9As$S(=h!R2ui_G>%Jt3dWcwL8Ebn(LZ%$*9$;3?+2F^-{tw88fDXH1|rZ z6$`n;dn2x!!Ak2s@sm9q+`%who;>owG6cR)(nGw6!DMYA=-b3qp@Jl5;NDZDhq znmzZ5LI>PB*^@o+bAucd!$G{7=Rv+Q48p8RM6J3dk$DquTRN4)GQ>N;-~Xz_7(_9` zQzMdNK=E_0mgB^5`okSsuQDUVQ~a2aK}6z9Fog@kt-&#OvOqYfL;zhtqQAPML>_v< zTZB3UT)f3QIZ2DEPprdHyu&XuMN~w_a}m2$Ohh59zyq_nU4nq$GCA9$JKMv>!wNHO zM7F3CKiz_~USz!2<3duj1M^G9bnF;UW5#xL#0%u3X^WM~nlu$mL6b|o*F!np@tnro!^f;kz22(B`Leetzq&Nv(s!U(Clp)Jetz$1Jl; zyo5=R^u)-F%#F#+*+i31h=b0=&9e)_+v6=gtT)7~L5~#1PMplUWK7qb%)H!5-0(Nr zbWZkA#oUz6rX;4;)W^C^%o;>Yfh0%ziaqc2L&#jskbDC$e9rSsk!Am!&h;#{o7BcF zj6FCM$B&##KMcs71V74b&GKwc^z={j@IAp~&$6?_p2Wigy+ijL&O0PVjoeDe?9PHb z96|ig3N?=nhywxDP#nujOw_m5v`;@AMf@DkuH4V?1i$;-OABRD(SU&g)lgS)&;0~M z8vV}fyicKIxfCVO$}G=Id$GeYgcc=I(I7(@#myS|1F5V*<1Ehc?9m0)&%7i?YA8{2 zBt_jT(k=ZA_1sXwlnODUFSxW(62(0m)KLgc&fr>2$K0VcfB-I)Q_omPBo$29dpGjq zIv&;297WUc^ieiV&Ntu#4U$ljoYO>Iip~7e=^W43+{VN-(-QwhQ8fim@gzl3EYvk1 zr~XvbPc4d&vD3hW3O#kuy7bW<#Y;bZO-eOXQWVrRa05R5Wqkub_|fvzS9BEEkM)TdQAy5JS2&s1 z`t;TlZPl0%N@c}Te6`Yx4MSu3e4MIEYYW4c7cD$l%gg ze^ zbXjtO+O(b88&q05uvM+K+kYU~gYDX|-P^B?k3sEG{p5q!(a5CJhomCSh&q76Ajv`cQfLw9CSdQIT zQuKo%wcOg(+33vN%{^G%RW8GIS=43SHx1F3jop|iTsCD{*M-}qZC2%V);Y4>=v7aW zRZ6LV*B2XHP5n_TW!Z|A)uFXjU%sWq@-$v5 zRo#lM+PHOE^JQGOCEfm|+0w<>^TpUgjex9OU!2_lzGX-TZb!70+ND+8qs79%3-&-7x>Yl+oD+b{K)}Zpl zVo{FU{#D;bUSG^LVj|XD*l1(JW!@?V<;Y#y9B$fLR^!6OSmAY6LPb;)M2_PMX4cpJV`gq*QD)|;{bgVd=1Df<&W#TzF3(Ed-q!_WX6{!2 zmS9mnCEL=IGnS>|PaW4Y~P4!+u0hFy1t-PBEJg$80n=;C?K+>nms+!dLc9pI_`Zb-r<7w>ZJDSz82q@{^P0r zVZheuNa*RXRcojyY%qq6K&EBMR_1`V=)6wdn5Jo39bwCc>IleeIB@H99cDNQ>7M57 zbj|GiHR!vB?7U9xgMMtj=2XgMZFrXFkxt=bh7+&uWp*}gss-V8=4*nEZbD_`;)Z9G z?BdzxY{0Z_dIs-#7H`;~?u-AHT$ui6=Em5`zUK8VYwT`h3dCc!hGf14VWqxkcV=U( z25$78Yvz7$_@?7!9Om!70|STc@dod|o#suQX68=h##U;{m2j*T@TZ>MFgE6PZRHB5 z+2>~O{WfR{r{>kZ@J2>!1P|#I?{3(Jip*Yv$zJdEPHfbM@EebC^E~mVUSQeoZer%! zT#j%WzwsTWa3b&D%HHw7K5)Jb@66urCa34%uJM89U=mkv4_^bEUh;U3fZ6Wp*N)_e z-c$z{Yo+exm2U4M-|{YJZ7xn%+Ft7@Pw>o!ag3&G_Qr86r|~;*^Wt7eIv?{Uj|wgS z?Xf=eL;veP_h_{4?w)z^N>5ZCll*KsnJ3)fZmrSD28bW0ESeLr(PfKyeU_nfw4Sg-R}cku!j_C&9COviO45BO}4 z-(3ykVV7KgNAury_=i_$e2;Z?f9p6v^^o6dg+KE)*Z3XZ*$ww~IPio*C;5?&ahm1> zWIuUxziouy?gam5VVD)crW=w-}Inga*!@~LC5zy0Qnf-cbGqO zILLUV_h=Y#YuYaOOZWqr9(J*gX@JLi%NAy5H*Bcq`L(C%t1o+jk8?<`b9{$`n4fw~ z&*Hadbd>z`P`?AbXL!43+-ukS;+Ai@C-`BOdce1PmDbY2XY`aO>5%pWr~vt+Z~UKk zd&tLdU{CP0u7rHfe4bx)&PRFK4tCpKd*&{E)8BClG;qMI{9%v!cXs_`H{k^jY0;PZ z%qRQXH+Q;s>tX(SIGx(4pIVv+{>az)VQ%?+#`_p2{N=y!zeN0eU;L>hcj_F{yXK^eD3db%q95VXWZ5|e>acnmJfa7PxbbHc(H5px{vwtr+@6;0D!o3=MEw` zYu>Dh^lu@j3{v;#fla$V$7&@XYCr^qU?p&&b=*^v;Mvo#*s&pySrcNbx*ih-voeod0V$G^`E7z_yJHW8& zbu8JkX3wHct9C8hwr=0TjVpI9-MV(~;?1jfFWXW6rF3Gw05pKZ6b}dNk?Mrb7n=03rDV2?PND04x9i008s>^Z@_}{{a69 z97wRB!Gj1BDqP60p~Hs|BTAe|v7*I`7&B_z$g!ixk03*e97(dI$&)Bks$9vkrOTHv zW6GRKv!>0PICJXU$+M@=pFo2O9ZIyQ(W6L{DqYI7sne%Wqe`7hwW`&tShH%~%C)Q4 zuVBN99ZR;X*|TWVs$I*rt=qS7(BTJr4xw7TUm@{kM%(=rSFdaCH9*wbsn>q#FgeJ|pHAB;9Vhft&y0&eC5QfB# z9U#K(->f4TD6pH&nE;W1E7$y~fExq5&lnHzX}NXE8ww0509|@)<7cX0{~zDDgB|VM zcLz|vXEpivhC963?uI*f-m>eshtD5ygaXc`_nmj(1wdPW2=-+Nfc0$`-FnA)7XSna zR*2Up+tDYWcLeSxNOBg27?)`QKKER7#uXSL8z744qFVByS6_Y5O?Sp1>!qlkcrW%? z76c4BXFz??amdCX_!-xpk4%QO;1D#1n7^|7|B^p91O#;h7z> zA&4P|R$A15B?g$`h5;ZsU7ZpJy4wbpmikk3P@<>mm&MKLs-5f6|H-4NwA$olfF%wo z=6#*2XeD@MvY}tC#Lg6>q9*E^?3llLdSj0G2{LT4)VB0Su6>3X=YSA)Iw+kHMkok{ z)s~A=ByTqO=5|zutK*rza@(T0^nzrFuA1hmYIhP2BItVlc39@4$kl6bM;Kze=&DmD ziQgH)4jS-^&XRiY#TJ<+<;JV-D%*B#wa(`L2j99s4%~eLM*e5W#ag; zl>sc7^3DrkN}sYr2K}XjV|EL2tf9&*a+*9hZP1hXs;ln4kydT9t16ZWE4fZPeQUP( zBC9FPG7mg6xBdPrZlPW8Y?_7|O1XUZu_JY3-fOIHPSNq$HQFto-^dpoh8xB>RUaSzw$5C+_5T*R>k{OR?0 z2Yfhhf}pZIu`#CWa+Lcn8#~f=WAE;u;X->H+v8h0`Ske`4kmh2Lg;$gp^BK^sz$pM z^{sw~N>tQvg}J!}Nj)jDnb}~6G_wWoV>SaFnJk9DJS`|&&=Z`psCFOsK?`{xGoi>} z=N-~@utyk@8{v3oIb;n7g0lnQ1%t&oIbASjN;`v^|6b^#V=Yi@F4G_N1{ARD(JX)h z)8Pv5Gzg{|zKTD4p<$f%?9YRDQwE~OO;z!H^<~T z_TllHW(=nvCnmoD;3=TBX&wk=xW7$(5urBhPz9aI!}du>d*UqPDDzk#M_{xy@^M2! z6^c+0@^4eBGTcc~c_iZPvyT)Dr^x)6BSCQRrJTXk5tlkRP7aN3-HBDNBKW$8<`7x} z1Rz9>78_t9buy6{66zL6Q&n*Xi3W%nIA_K^MoMs}XB?E?u7C%3EUO0jrl|!WXe~LPA!CpOzV|wnL=^dlVY2T;P5^c z(eD@tvXqG_EaUhyTzN5}@uXX;uy;pj|4#6v{d6J}g=)M4Jpr|nncMQQ52j&SW7 zmy*+j6qi>m%2NK4K8!kTj-UfGq7Max3HrvqjXVdHu&}S zy4Xbwy0QhrvA(vr@=R!rc4{T*3WBrMZKh$V+gZ5U35{Nj?_Zi%))|J4f%$!{9LYw( z9*(xUKAl-8;df8F8O>x0j?ZK@N#ZvJ4W|;`lxEwyNb)Yy!n(vQBrhz|8vF6Q)C}=o zR<>8?b(F8gZD4rA3)of#V6flp>A==n!F=X%l*%oTzfQ?5R6JJ4cey50VGB=?2FbN@ z98iFT2UmyM*2%wGU+h9FX0BnG|1a#^uH5Df+X%<=zGR!=l8>`X=ek%@N5iLdJ&Z@K z9)}Ze=1UCYMju%^I-$i)abQIYF|6v+mTy(54q;r_tXh>|lu9&SG{#-N7E{7@mM6cg z3&1fqQ`4+=C{@ka;VE`i)OP6rDl}!#gmQG7#zZk46$PCp56qTJ#^(=v`pBN*F~BUY z@mrfahy>$0EpF5#ot4-ix}{j2;pGrvSvu|jmsid1qit?u9OaQ6_&CbDwp+Bj+Wgu3 zxS8YVzP_j%-iY$E6tt~+XAHXK?)Gf>M4GtbEpN39bh!2fGrr>q*a*wETZ3hT6Dip4 z9QBHx{3N(E-7DkHt+C;1|6#C9_o{7Q*LkL>_F{5h3_L?y&|i;qwYfp7VKO(jX5gBR zOHq!Nm5r675w~~6Q=PeDo3`A1mQGKPY-p+vugT#YrEc9vysSwFzC;(x6P#0Gq^J6e zsuK1#flVd)b7BFAAyb_#Dk4@My z4_vo^*7RDT4M`cx3`y4RdsVbc+0JiSiQopW9EW`8731jVIn>(Yf8IH{cUr(?HrmaR zmt)OmMWZDuJERW^Tb!m{j$o9s#vwL*L1=v1vC6pC(R^EpG7hE7KN5$OYem~<#g(2X z=$2*qd$V>QuwPtt{{>s`=fVaL^-$)UR-FxS8UM7Tm7mVZt#6eq_W1LE#c$!4&hOzY z@ljKkPf=!dd-idJ1$96e0q3p3Al6T=1iTkd<0fTBbYtXQG07x z6uMR-d;(;<|2J{pCSf=@9F!!GKeU5RiI^03pnXs1 zawYb1-&Z;QM~BH2E$X*;#K(BWCxnp~EIUVlil=&7HH6aFOQ3>1^LL6vF<)BLXspHMgcbHg-;;jtc21rGcICJexEF=P<%SCBj)nJHvdA6NNG8|# zU)b1%6zObQsD;5Ze%QE;y^@KYRfIp)Etyx4G0_2IM}dt6o>6-RyfEmX$Ox{RVT@3kBq~I=LUcO zg_n03b$jSp2KJK=^?`+^H4JB#G0_Vw*?FqiPHQP_PDw{+HJP%wUlyg6VAwgD_<>${ zdJRQVujhvz8DlIaDC-3=$B39Ofk`tmG~3pU_!W9k`H*l)dh;k7d8w1ZQ(pS$iv*UJ zBiLajD4H3kg0Mo4stFV3AvLLzdkvOtp|b_ z|2dk2=w#_ulqKha$(a%bagJL2ppFJM2hV@%e3R$3LoeQ$yAr{0W{NS(U1{LjYN68%dtv`GHDi ziE?*y!DEyWQ<4n25ucztD+y`!m4Op#XZ0D27Rq*4qKOa#oPo%Pc^IU2sWnrle8KsN zIwwWxmq%v+VlP?}%>yNSB_pW8axwy$8z^iWNSo0Jk$WJKUO0CgSB+ZZFVwY_)rel& zh?Q#^V=20VO?Ew55~U;2hK)E`vcy_J!le`!UUaxk&vAuUxOP2PjX1KGe5RRq|01MO zCP5oIfP=_~&vu|X$5;b;99CwhAYpVp_FCBjs!#cpY^kHQd7p^)EdL2SZhDPJCP9e` zp69on+v$;UdZvKpc41kHCxwQB@LQbf5feD0GMIKtxsEtmhwNCW+p!1JSW*VKs+jqo z$G3Ps$d^aZL<);$5 ze_vXgP^Gb^N{MY+HXZn}mw2LrAPBJ9t$|pyD4V2d+LgaKJef9xHO{3%5bqDbkv>fw-Ga>w#tp zwQwr1&!vsM1fBpjxC{|id{Q4@E4Hz@U4F`r@_4Eh8mKq5O&{a2|K*<^+juPdu?P6O ze72K5Sh>1ct4Q{(LD+GX+FaZdF2BmU41s%B`i2^U8rrwG^eLaP|7fG(<*e^2i-MJr z+bJnZn|#Wfw2+F8bi2Mr8mq>aufMCCD?5>7rmdaxRueRI*1NT+aiw2dfyXL?wX3m+ z+p`c^Icb|AX?sK7^1Dilw-hWc>uXU-%QqWLynEX@D{6H`OR`$Uvd^2O=GRQ#v!JXi z9~5Y@7P~*$hqyMltoQk+lj*FI8?-q*l@;l+TIsn}Ntmj)zVJ({{F=10YQ*=7#HLHS zOKLVl=%RKyc3^UUG0bn=t14UEkYx+6XN9)t@xbXZ!JJz*z}U2V$(#JSuaMe-yGdQ& zxp*dwWE*O?g{Wbo6fjU4!2d8`u!}m(NyENo!-lM*kiareIR zTe+Ugs(~n?z&oua3ZfuNcTaq)C>%RwNv<#;qXELbjp)TUYQr<>QE5BI1@OQIAdizd z1bZ-`z`LEiNxz)yu~zr7Zk(+UQ@ld>yC}=K{`zEYs;W@@w{@3C)u*)@6}w>zAOjqa zH`};hoJ_L}Y0a8UaA^RN%N@?TQjGtv0_zI#~Rh$KL9s#{s|!3jwgpC)#(=IOT-k|7OSumB?_J$UMBZ-wbR!OdOE9 zs*xm11;UBOLze0lKiS`?AdJ{;6og@a9rTI zikZy&txr6ZGUHebs%s6>uriI!F`Up%iPP}y-tkS&4^4>|>&@25*+Vb@{uic~N4#z= z$#H9ZqAkpC%G4g*(Z3AfA4s=GOUD9AzxD{;&+M(^!l3_Q&6LID9<{SK4dt66;teg! z<(%B|7}58g*~v{kH&o+4s@kC4fkN!Y6dd4p?aPxKzXi^@^t--uaTv0!^Q<#OHiocp{$2I9=9k|A*)iyd7HJ;#;oP^L)`s>!Apqtzs_YJznD+ zo#~RY;2gb~)vCPy8NbmQ!pbFGQ1`O9`XPv^as*7n1|5&NKA0mE6%4 zJm4N|$?;3qb;;V-edPYs&s2!59zElo$iNz)|pMd!mhT%j^*SW z^8CGhM-Ax4Y#~zjiLp*_7zwF0LC&JJ0pp+Qq!`9bMN(O~FDO_Ch|? zJ?`d5E!V^xyeCV)e@*1dg_EOgp40q-$~f^B>*qAgy)-@O@!ilFg5M3T(^YTF>rOpd zKK1wA;yWDjs!H~ozToc5<73Y3JkIYyYV2}-^EW=!rY=Exy{~8t${}myJfx|K*b9Gd z^avfFf}bH5+w_!a_}a1V$({RWrK41z+}63}F7BjdF600Hu{0mr0Z#MGPvFTf@R~W= z%KoG7tG+=z@QYWx&+Rz||G$sl4S|}6y#(#s#pU<3zVWnfv9(@P87s(5Sxw# zCr-Q=U}VUXDN&jfct&8Pe=%jwq*>GEO`JJ(?&R6i=TD$Pg$^ZJbZCc3bqXjQ!qm;u z0&bK}Eij~NRi%3hT-9o|K-W43!YUPO!0H~WW(PDad$y{9wQ%7MDQk9*fx2NG7A$xX zBVULEA2KA!S7Bd-gDD;?tT3=&!G$A3^f*xPz%v#@HdNWUVoHN-K8|F=28L18sa3CL z-P-l*))0ocvHG-*|JU1Bt?piGb*%2KzPlDMu(WL0uf^$-U4GmETHV7Y3{nZ z_V}+Pj4DbjKF82=EIb^0WNab8(Blp za!W3Q`eZhxXq%8J;CRce4h@6b3c2A*#7eoZ=vt936UU+sFX9G3OD^i}x@#?$__GW# z8-rAmM(_yx|4u%{2D6d9^ok^syU7k^RG`QztIx)fEQ)eKmqZgyf)2Vg^;A?-eGLYx znu1D936+A%)i%j&s!a=<`-;Q@)*65~;M(4W^I+JR(sPoS29%;IM=o8{LQZ9!qSjVvHpC{ z#Os`P|5#B+6`L5cW&^|cQ1>9p7Cs#vdQ4=+%(Kx)#KHw>zwOrbY`abcfhlLa^VVA^ z2kWqnLJ2FZ&bQ*wG!9=DeKV1(IPr=rEIrFIF~jR7m(yvw_E6T(=jsRqWhB4$E>V&9 zVsB%O!P`+XAPwXAz3#f(tm}^?O?e`aX7*I#nOlnaqX2r@dwAlDk13KpXbaOfTY(NP z>8d!~6~tZJGF-!@Ax|++WanHsYKM*0e5yL^nBsr&TyiDjMNoq9`h?%sbT6t{2yt7{N^XdD z|10W6je42`QE@a!C#X%$VSf5m9qKTNN!S5>5J1HnAb>vfO#*&0T2>%r^usEh!2s`b zAN$}pzxoNuQag%Pjs7CC`x!=Kri+y6Fm|q%UBo|&$(^Sbn36q|YJy`Vqn0{Az6Z&Q zH?^sbg>sXYwTP%hCaj*}oKvFik?3G6YuN9^qZMR8$a=jt#3H=OT$j1(jx4fzBJ|0ps7 zk=SM=xarMER05ph{H8XsNk~*o!Wh3q({uJP$x6o4i0?b%COOHq!!(9tRBRO5Mph`3 zNlayNTV=W6_Nkdo0+$PAs8OB(I5PQcIMQ>YSn_1i4gqXMcA6ZYM)X3djMsP#)3|4PT0${Y}MMVhKarZlraY2C6slGYFcbw%k+$H`aZ8X^KLg{gAGIat9)mz#;@=3gT~UBnhPuaPh;cMr>n2ylY2 zI+egAda6vx0u`Q;tSnJAtI7E(^{K5>+j^vA-zUKhZWCE;YyFGM3QDDyYVzPxfVq@_ z5ezQRT*?d0hYC9gl97QN?n%Qd*zMvK!_q}AbfLRf4@>u@raO(XcgC3+=s?7j%7jVNuT@C zjyQKD&P{0!Sek|qfMHUE>A4j?$A_SfWF+Z{WF&?LwSovE|EmqIH%DaotiWPk0cCU+V|<%7mT9r&3{z(}``IJcX30YyZItg><&k*8iCgUA6l*)hh#qvJ z6TRYZk6Xp%9(Rq={qvu@Tj(=(_s=8HYZ}(j-adX9NR#yia6lh;|myzki{C!FB~NL{gP-!~zVX>Hj`_U0)SK#86T)s%u`818kx+kL)h=lOT)W&WwiC0s2p~WbTQNZcFKz-aXw#;>BR&b7Kt8L$ zCt$g0yFkFZuH{QHzymzLvpx`96uQhK+7Ap^y5Ep z@+&&aD;U@SFo1zx=zyxDKO$rhY=Q#_fCD&Cq)IRZCv+(&#KA~tgekPVwF|(YBR}0M zw{SZ^6|2C&o36auGYTxjk~_W#h`q(SF6QgN{||ISL>s{;IDt5%LsOu`5;Q^U+e1FY zK2A`aLpyXxM1x3)Jf+pCm|rBuJxNETc?Ag#19J z%*8o;%3o|qz>CVLoI{74NQk7!9HYaEtjJ?rM#tO8cpJ;?+dfX{g-<|BZe&TeY)hf& zfN)I9UWf!BJV{Q#L&2LvRQScEWW%8}IeXZk#f=Y)#kH8At?!ZG?eE z?5@1BNt;B>9m6TRLZrbwB;F)U|HfoYzJyB1oJ^~nOw7beu53sWH~|v4%NBS}S#UvX z$i{8##@F0V?%W$86vAHc!E>a`@T$cK*fBFhg`7Gh^;|6R8cx1kPWi-4t87Rna84$O zPOdb`lT^v>{7(R-G9lzf+GNBG+snO#N+v*s`&>{aNX`ajg8Rfwn9D{m*nmh3Pz~MC zmHf^{+yEE|(GENTy6i!6vjf+PTdOu&OC&4gcIQYpoQUwBd{&4eZefFO@PR030y=eq z3#bAK6@$to(;wu}kM(-7Fx6_C;= z1pp^~)Iwc>W1Uh&Wz<8B)?;0PNX1i1l>}hr)j87>^$$bu|Tf<++L zHb~cU?NnZ!*j*J?|BJ=b7?^+n;L~VzQjg72XLVLYMOHtx(r6u7K3xGx%~oxt*j)uz zi49kEomq7y*M?mLOvqUf5CI2J0R;G2I*t_ySXwgh2Y;A?DUgCm z-~b%ufOwMyv{cKK6j-iB6-Y!)N26M(odO|v05X6CNT36?RokC+018-zRagX?l~|W0 z1Z}-rT#y8e-PmL8*l3kfCJkARRaTRgR%#6ZJ)KmGo!D;uRzeV0nJw3ErP-QogGX2d z%*6x>0D%v1fS*NxwGG|0)dgK324W}z1yBG1&;-`yg=Nr$Q`iJecwGTVT{0jBG5~@v zFo7PZSA4Aj|HmZLNccfW)XuIw-kX5Slk9~WAc1>DSRizq71leofMT5hj>S?Y{a8N@*=H@;X|2+eMbu~2 zQ#@VVi3L}frCiCKS%-ZD1%3p$)!feYTm(n}&<)z4l>_fBUDH+F)n#2xNCejPU=F?o z1t@|dAckPj1xQc?I#7hR%>hh!hDC@5J(yu#l>{DW0vz4~CIC}ouu1XqrV#Z(A2eR% zea!&{(Ki)?3&7zf;DJ)WS)Zj~NDu~5cmNHy1x>I8>lFa$?OwE9TNV!A@x|QpP2ZS( z*}An@|GkA@`5jb}#nNTP(vUsb`ejrsrC1SHkOMhb07&3o>1_b&#bQj>Vp~WAEY<|-ywF-tG0`?_FC2Z~zbxXH-UCb>-E(U1Rvo(^;m1SypCB{Z$N@gE^4D zUp_b(XaZP{ff$I?Nag7m*Z~WW0Rb-8%>95ASYc_N=IP~Nr}kv+B?gaHY8Fm`QYPtC zMrZY<*i~-dyv11g?OVT1)@FUylfBX_o#$#rTxAy40S0J+9%#$8+?zdUMDAHdURy`D z;E0~&Dz4@Y#^fyKWT&QH?d4vyZD>09S@9)la#m$l9#&!nYFX~-%GT2zkO2$80M33~ zC-BjmX01sH!rQ><7ZZ|&G2~b>j{%7@#SU`?zXTDs! zzH0~uT1KwmzMg2nw&;uY;7t~6PuA_J25AKN016;ula5%sz1STH0n-L*0O0ALmQ)!a zYDt)BLg0eZ3++`i1q{&a{~mCjR_$!v)iTxtC{Ah>Mq6rD0H+3F)-~)02xSyjVHIZV z4=`m^&g!k^)pcg=c7A6zcH`>C9uXvm0cIRrUMkFX504QL;!IS9`Ww=^A+}OtIk<6zVK3* zVM5S@NLS}Chw;3P^;!O%QYr7Jyqg>@276t8R3YPUnk-NS|TM1pyUE0ohgrq!k6#y@d`QbY9nl+%|L+PTO!t0ILS>70>G8=G1gX z?ihDxOb=^N$I>e8bWi8>P`~3Ix6?l6RRT_UR3~UXxLiY~fV+Nm|Ar3TCUZ2Uf77nf}K{cmLtaBSCXH0SI&Z~~i__SO;u43LBZKkd`DbBo3E z89snL2Y1;)7R;1?Hig-`YKb$Ek5WF=qh&_(ZvhVll;ZCuy*LC$A9taSi>FU)@ni6eF3o;~Oz%Yjp7cl=8|1)mv_%YPNck0UpRyy$)Vc9JVHT?~*C*XoxrWy-|q{?W`wJ$qsbO5p=r zqe++2k<*$W z34+C>SY#EK7IGJ2asXTf5dX%|E; zt>+$|HZ9TyPd@>Li3lGQr5{rK{byEGNj4zBZU{EWm6Hq_I2JKxp`{1{Dtz!(h8oW0 zp#?gc#v^Jc5~kuDJ}6crtF5~FDy*(DK?nwQ$xzy9J<{1yYp%tXf{}{oqKhcG@fNA1 z1`1c)aaC$sU#HKN!ev7-O&2Chc4hZbn&ho{5lG!~#L)_S+4YcmGqIN^PVmXs=OXpp zho64?8QK)0qD;l;fsc0O)xQmDVqgQpJ!Kqn7H*p5LS7Qm;awr-$|Hy}ph(CZb8x|8 ztQ~v&F~}b?aTo@Ig}9eqsg226uS2R(|H6^PSk)x5l8P1KlvFCh76@1}tRX@{fB7Xu z5>aFkMkRU2tw`c}E2m1U0SP2c?Aiq1PJH$R6b1J=kY7^vD&?P90_sZ@qmI_>+rYO7 zR~95{Rrx{BokI7}Lv~pJVu*g_ikb{7ol2{!Asc=;;)!QAa;>A8W}3eXSKWV z#@jW$gc?dm*=Fmj0Hci_3+ca4whf_#XUT10>CL%jC&Zzi{5N1BSUkAK94mf4`ss^I za$Tb4sd}tNDZq^RZkw+S|0Sh4JL{Iuo&&UmRO?!JLr=U~lJgq5iZ!OgZLuGJuGmK3qW3c#F8Mzlo}A1D*k`i8oCba@6Vk6r zPy)~?iDqkSn*u83KTM^7|8AVh5akRaH0e}_B@?L#MjXfyk6@%t-5SqHR^TJNRf~?j zvs%{R#Wk;~pkButAylHGfCBX^g^)s4=OE-lojnUnVr0l_CP^Cbl}LO#EKCnq^~rhC zGl(Ojl_c|GroW^ne!l8pu!Myh-F&5r2JMX$J+~|_j?Rk!j8;LWCA8_d&UM!@lQ7c= zM>e8qJHkY!nWBa+XWH>5@X=bIhI^Clr z4l5=&RF$uuMm?(HMn+PKPFS%u_+&BhC5@g{2~7O4&qF!UA>9o4q+C3Rl=d zgjrQ#b+a3g(it(Jw)36vB!mx#0HdY-LZU$CRD^?Mq17qQE zhSfzFe({mcp_b~%ShR}<^NrqN<4KO`tvNka66w0@1@(&3JPLxh(T)ygnEgh6|QEac8yAQUmF zmG|^QB9-CopR$43Rdu7kgKo9IOj76;XG=O7qpo4QObA+EceIagv^%(?owrajft9&r z!yL|<9>;1Q{5bcoOp&hHrb5`=81^fhXswfg^ESqgPE)oGQ-iZLS$+z2Fy!+=2Zk)^ zNmC}2hbdyHNU1CO%CB;!)h{s!I_3WYy1#8R*nq7{+fCgPXsKfz85@iqc_a|RxYL3H z%{(q-MldBmni_KLn8!SFu!DhODW*tVVnmgYd5v0m;$7UPb^bc_NL0c(L^n< z3}c-Ei`6|%v>CmZ#1aYhyvEgJFVL-XNh|d*9wH46;a6W&;#ZZcR8m&GLS>U@R{_-q zovL9N!!UXZ)(l4U>wbBr@kE$`No)A7<+|plPVJc-#vn>TJd{l72fE6}vw%ui6+#v= zLH{asi%%`fYlju!kWF+AyhA@|M`-(E|z8?;UJk<|W~gL)6E2n1C+74cwl z|5Iysp*kx8_DmOWEw#o=4Aw)KAB?7ivtUh4JM+W6<7-?n^XyyNQU>`XX9{#2*(2u9 zOS7pc-85>7PQtraHYaFnvwS)A(ROR*B3bbYzR~9;st+IQNC zMOS5#q?lEM>bulUUnp3;$m+48E_JB`bHR&7Yowv6!fs`&MzNLbg@DvhM@)2y?cq_J z%^6$F22#8oUk1j+}L9t(zDW6RVSX#gguoReWksiUdPJM|PM)e;@v>p|h|HPRI zpqhdFA<(c6>s%cY z_7*a^)vjei>|F$gQP8vm8=iRBuxZ?%0E!>|5rr%pR5V-jKwG2$RY0o0R8b!w3lGB9 z$`RP61l&S=3JC6)%AknhouKyRp)dkbk*(XqINtlH2KhBn4PKSz^j9Kk-hWvc@%0ZE zLD`l;OZ}l9>Y1Jqrqvk%AbGSNuC1QJd53urU;%nq0?x!J65GZ#mxa*A@2TP{#{X2> zT!ryr-fFoYEG-M)N!=|*3z&eQ%(;_!WfI09-Y_;~`dmN@@*zGYS;|0OyvZ9Ou96|D zU*=_=4qg%ez~2v!&Q8IG43*VF6d~&z5H76M!?6G+nxnU*+1S+y)qvtnh$7ng#3R&) zvH2B+yd4Q;&YrmdBfxdRwR@q>7l}9AH2&I;2(}PBF#=ha_1t za$0K~fF3mCen}DLNu%bqR;eWvwfW!=lFlPSRMq8{U0Re~^j3u}O~Pqn!f|56wFFEc z;MwI7pDfq#tP~ffqCF~4=Ezi^Dczr4AT<&nKr$5RKnqzWSR}on_^3qSkpCch)nQg{ zrD=K$L}rW&(na9JAYNR@&|zee7#&t2Vl;jQ58h0_!3;@?71bqJO5&gD)YmU5&MafIQFz)leZ`*~BQORJSep1*JVk$W%npk{Bgr z0vg_>+|Bq8=&d0^LS=fs;XC~zY4Rwc)<|l)pn4!vUR-F|J(=B%Yb^?|-6 zUsq|-fT@y&6qrfYA3-q0QwGg&qEkz53o6_hN24URB@sY>v2Xu|7 z*(8axohXX3<*)MKEffs%VH@3yUTz&Lpen0-)?p-2tkzbnYGSP8<)>IO<7^tK`f+O_ zSgKkA*jr|qsvW2;(VuHbR2!PrN@m@*sO!?$Y?`&|%G6am^6Z(WDerxab<##E4y{?h zDNzz1lZ+uhDk4aB-dC~QTo$YAbjY77D|*r49F*qPe*Z2gg~G+E%P~@9Kat-7w1X2( zUdU>zR#7V2F73&l;jloN)McAf0%sdeR4%$s>_F&oQbFr6=eq`Gy8La21@2fe7o8c! zzPcUqeBp`hS->JoEJCigGRcYxD}l9z)VhS^TnDHO#vBqALxL{)O2(mjZNzLEOOzib zjO|$_T{M#HR(-312w3Q-EOTJOfyHg8GN>eCX*jMcUvlZYMopb`33R%Lhv~#&rc_Xf zKz4nq{%L1^d(*JF#$}Dm!Czw{~nApkfl_|Xr+w#gw z^ExkfqD9#d%fAv52Op&cW^Y14$guF;i;kY1(9lZI3FfMB#x$!7&+$J%q_iUHjfvOT zk)3^wZ3)z7TB0q0mf?6pUE8)Cj6zgO7U94-gjxYF&2s79-mGB4D)QzYykKzy>Z^$2 zS)#=0uJ&qz4D45EmjVcu!KOtyL6iq#uHd+F393iNL@XWCF$^PW#wO9}h6!2TaO*0- zl#%S&YM!M+F8)&6LfLK*vf6o)>HycRn5-27J8|BIl*F}JtXA<(?q2WNDt4;Hhzb^U zZLoKa@)#Sl_Od8(xae{?lJ;=pr|eD}zyI;gspeIBZY_VV_epE%9^{ztaT6VY{MM!p z3bT?j>52+K5i}zIV#pDH*HbF7wLEB-Dv*TUEbovM@?wq8{;XooMw^N#jFrW9%2diZ zZj~WlZpMa)Q<21#pTi1SHx9u_wvM$-uuSb@wAmd#%CiNkwfLkPJPo<8_DsjxV zq<4@bRm+`hwQV4m%@EAB_QT+)Ld^1P!?)H(YkgkY!$geUFlsONCounK z4@+Y)AJj1mu~KgtxrT{?cmK(&MK!8=#Q&K|b;HDU7iI)c=kRp1^WJI(w<5~1*yENq z@gegfrQx_n%R$V=F{=1zswN>wEQ~*^eAlOaPSV&hDl_`^A0J{Z6tt!OH##S@{to#X zKD68hr_ex0!9jNLQZp3WS?AR ztmRIPYs)o`@}X?E`PN43d?#xAtfx<7WRZ$&k`goQrmeRI@fHm^g3=|{y~LN@O+#o) z?YLET%-&T?I8J2EYjE|NYBBUmuhD8br*pZNUzyveHMSYrJ5N-iojHftv^~E#tH-ws z&Ul=wr+ve(oda^o;{SoA{uwN$t^SPoTMoF}UWpoe%BU*Ds~vhcdR>Js(M>Y@6i<1Y z)+(i6@TE_$oT`>6_ao$9Q4eY$JHND3+DW*__2#BKA*}kjPppjd^Jh(xevYNQVXL;H z<*fs^u3HhluWjwBEU6c(k-Kc6H;nIQ2Nh@m6%dn?PY{%|%SoM772+N|RylW*n0IGW zha;^ROPjWDJM*n|wy`pU85h^9hu0sTYMT4V^XQxVPCvgPoy%J@ZY2Hc;GSz9y?3O= zQyWXy{8Aryf~|IAH_QPZV9{WdM`*#eD7)7qm%0lZ+HLjEc5}m12+>9e8ECMSi6ORs z`jy>GS;SbkpZ|C_wocbyH62Q%$d7%Yx;n_O`+CBr4X2VbqGg_E9@@q}+^21S&3xUf z5)pfEGZ#=o%mkT!B08N>(0jzt3r>dO$|+O4yz;H6 z)yEjts{pjv%~OK!ieEKR!S)=8J?Y2i1z^m4%W%x4e4Q6!1{|WEuO)a6GWIj#Dp?hQ z1B40?m<}w`b5KvIHl-30QuwgV!iaj>5F&)j!h{u6IIdVRA%q1qFb60QB8CeYgVmU zYiWWiK>q&8mb6^qMic_B0Shek42It2}z=BQRSRD8Y2Dk`xkIv!Gj4GHhdUy zV#SLYH+K9Oa^%1lLb+5)sA6477C2kL^|=(o19}dCNKpbcu_Cu>UB!bZ(d*ZJX5-l; zJNDJqwQ4~POH5aZ;HXoiV7q8ELWU0GDkKy)Cg$f3GjgOd0Xt`0lI&uBdGZm#uP^aF~y%oT%y6Ww#2gE8%7oikED+PftvB|CH zNSdpz3hBy=5WVK;OR^3<{1C(tMI4dDe=e9K!-y`kh`Y`>8!0r=N;?fTT@+xAx7cK( zt^YRJZiDT$M0VpZEM0 z=AzId4DM9Y^N zrJQS#S2s-vyrqG#2sLy;231fLLW&M@?ykEu%uquPIsF&lfCUEl#0)<*R{vCt zw2Sc|R82!oIAU;YZAUy}t@uaT@MulQTX98_xDR+`)JcaVg2=mxEK=A4Dl&SpyDyy$ zucemAq!vwLuU!)a3V4Dqt+a|7iq51&xie3xltwo|b-lVpfd`bb@2mw8m=~vd-+IWQ zeCeW;(!Km0nC!C6K0C33^O~}x?X>d@M$$-oxJEoF22$gTbp(Z2K-KI@?MgNERJtR^(f_r)Er#`a z-2C*rNFyO`aAd@}Ue38;WiqyTj4?L@6~{QbQ%*t_7p0sTD>GNx%=%*Xr7%TnJT*(=m~dt< z^*nJs?a|54fHI#s(Mc&s6ChLyXh5z|g^RL_8Ux81debRb+XZaocvDCnM?ULSodz+x1@fLXFj`H@^|i_i}hbCpD)zC;$7-bJ({XW?2p; zNTk`bC^aqmnQ0=ehb#b80G_xwAU=69P_i?SSnM-2t10O?yBk)%GLsp- zgl!I{sN*n+DaQ}uMTE?QTOS*S!WsqgZW_y;A^8TIOvsQws>v1Mj5D$wPH1roq0&mE zGZOa2EM;LD(|D2?t;~U~iD@!Ow%!A@(#c5?bh^)-R@X{(dGRV>B%p7Y@-BD@gQl{IrWd zRy811p7yk@4r(m6s~WddK!L0wL}k4D+CzgE$F<%Tw<2V(NS*P~STh(LewAqrGe znIEU*$t$iLZEKz;#s$)8y=dtPy%wRKw>XY%WnG(I(EplS10UEiAM6f_GQ*;{cC?wM zS=Di|I;)gYQ+u`8nBN{?Lq_HxeBbP0PRp}h6`2)ULk((BJ4x9zS$3XMq$2<1)Y<jpyU^o_L1rqp(0-%zYdIFQ6PS5X{ezA1#1y((ge{|XW9Z&0|lP)s7I|}bT)XS zSNiQ-OOpeL1+G6ZF_oduyvxvjV-4dT9o#CySp7osPJ@w)RKxErxe%be6-W>3^-7N-0GO3*gm&>F{ z6^*91LKgOD*8R3-ON#&;Mz+~kPkK}@#YtJqbTX)V9#6wXKU6=*)3Qpv2_`<^Cep1p z(fGkJRlQObbGbd_q+R=0X6J4EsvIpW&stdRrCo%>v$mlQ{PHV$BJRlG)H@eqjDB7a z;;w3>X%>>K`HghEC1M)fdpgv2HT5T5w`*r|@nl2q@U53#iR+~7=fpnt55z}k8pq;N zK-(X4`6nxIPvrDu?Vf@uq~_bet;phIUhd8yvP)*XgTed`%9zgrhv|b}Z`FVji#is3{X*gEyE?0so+jkv@Re5@I3X3{rdwXDnmS-p~CUj-BMMb7G>| z)TH8C58BY;sn|>Qn4+KhV`+RW07Xs{qOiUMK!Ff2wdzCVR&HKgi#-A@yM)cGX0GNg zkPJ0w@GL+EETCDWZ`B~|R1V++Rz(+z;6|{bV)`KRysx>!uNKrSaK1;T+M*rqC7k49 z{Z1?|7H$W15YISCyjCJ6oXFWSYjh3`_VmfUsA_2d5ahHi3gK>cXy^C(Cnzutg2+w% z^e#o5Ohag{3}11B3MLH;&w>tbBtGyU76AlA(6~s@1W)kj4#{s^@OubLe0T``5bJ%) zBM04Y6*S-(cM#7`uXE_HzyAj9100}~g5nZA3u#KO2}Q0GZBGjMqX87i+Y&Gf=>Y!} z>KY?)83(Mk#t;_kk!+k`4mKkMpwD-Fj>}Fc4o5I5G%PmyAQ8wc52Yy)GU3(~fDFh% zu!;l3%+IrU+=v?sSrHs#r&9oRB4};uAIDDX1`N zWRFhdAPa+!IVa9_>*mk!KDtKn6k}1SA2Y8mt3v@#msvRZ1XrsE37& z4i9Nfnl>zvwh4S3DRIybQp!WT5>XMM(JakU8Z+mJeo&N_>Ssy`_7d$raO}OpXeDnC z3b$n3EmZk>y&B{yIk|q_kQ%K7BM&sOQZ!evNFb&Q1Ohp}DH$ik;Ft&{lxP*^fHw0}2W^uYe{d$uD<`rM zXxQ-xV=oi)WH|T4#}xDv#V9!`?JprAFxRmiT`Pj1sKkB}n1T{JJM=^Fk?^*peNb&R zpQOt+Q|RdMpZ^}uJkc}hHVkTrQP;ew*A^$v<}(aY3_lreHdlc*YZJVB@DW#n{%Qhr z0<`RehP}M;0UAKZgmWCFaQ9Y+3JXd(B~(J4^Epj%+-l-lTJy<3jYB<@Od&%SLjWW$ zi7tLC%a|hl4ECzL{g!T}7E3%&Gn6!Y_1@$br%RXrp! zB_Rd^pgX+=oZO-y$PP7-1dtS9Me_zB@o?6p>6*e1DxfPObBIwwV+O4Rlk7}>I*H*B z6&h*aQ2)_##inIQVIn-5Z6pgV+OiN6wP*>~j)0s-_l#4kP7AfhB0}ZBU7M2>8PEYl zVEByc#1OGM$Fx=V^)Mn+1~fuhdP*+7Q!aiEIj)a0kIV631EsDq4>3$nWi;wy5E&mO z&TLRTAS*UC02)_;2Bx)I(~`xA?a$8R8Y^yF4($j7^Ty~hwE9E$%Jn75rAn=|U9pro z<$xO*P-G6%NbU6}RaIa4m1qT{U?c%MVn8GWR71a&d!gf7;K?pM!KRz#B_xAKMt zj_M}l7Mm3jp+y-M?og@KV`uYYpK*DPsg-usmLolKE#pa)5Z66;lNB;*cE5r)h2ZoIuT%0DZpnx$EZ>jn9d4vx3@5yKm+O`1OfmgXmL%^ z4#AYBz0dR|7_G z#o))q+ER*q#sSo;K#$@t@gsoX%Q)8#gS{eo|5g2s-O9zu@=@k=J!Antf=Kp{x z6o!_2`86`rK_dVlU@Hhp-V_dtjMvdJ`Z%rq@Ef zbWrcLinEu%TG)>Nq6xki146(flvYi5&Jb;t^-e=q$Fo;|xN7D1YR`-hTkwV^l6Aon zY`=>=c=ThRn07h#EE725ItOk|b@d$h_3T!HlhBK~D1*xpCeyWyY4TG)_+5)aXWMvQ zNZ5phias5ywvvy9@3>5zAQT)Td}TN(nbr`Y$0ksykSPo+3{rIC*G};iM*nZ2hQ4RI z5NBC0bGBZWJ$m$P2Y7&?I8op4TG0(86<4WNL0i04y|_4dDLBW*_<~_p3X!u4Q2;{y z5`@(_jk%GH6F>#rxP%{7T99v!RdrQ;nR}h!5eQ+AJpurVIbSxG_+D#gVU9R&sdEG*Le|ujWKOh=@oHr`IAx=q4gpZI6IaX_o@P`J2bt{r@ylNagqu%jAA) zLY*zn0ZQ_BW%->cxLslrm0xlykn;fXIiD9`pZPffnlnBCdS0n_pmCYcB2GhvHmes} zk1e2bWf=OHb}rmvJwQr*)z?Tq7XUXpt<@Tc^RzcA&zg0JhvJ%GdrPH-3RMoki9Hsa zX&|pNS#34hyXM$!?TjU^(f&#@3xjupaV#ZY7G?ziCZFOQnS!zxfV?3g53*E^pI5X0 zIiNecgfW57%7i?sv#J}jv>$h?2_bwvA^?`QA1mT~wS{vdCXnp#Ang>I`v3<%T4Sz> z1=;L9wUKrO&++NftO_$z?4%m zCZo{1BU`J&+X_2apDjDRF`EvWT6$a0vwbwaeQ>l}afR<2a=q6gEMNryfSCVy=N7_# zY=Z1kAYP25z^@{aM;8Y=dXZt2w~1pSlQpi{lz)ASomLMMIySl6{H2>)^pMT3Z@QDg z<0KH%CRTwYS6r6sgJoq81)7v*cMm4NdvzvT_B>b)V40ugAhUsjjUC{rsTXmFe17DS zj`czVt{TZ7w+ZxOGXemjCE9lY{7nZL0b)CK>d-X~Ji(!P!Cz<^U=(nMV`53Bb$JWT zhl;LBSf-b|!>P52_X5O$3c7LH&c|dCc-P_t6#rDtUH|>kFN1nq#@M?Zdv$D_vi(xg zcRam&ys0_+14O{JqT14bioOxLmpgqZy|*GzyUDY|n1w|la`7fOcYSx&cn|Wnx!lXY z+*VK*rf5_Kk9e*RCSwVrggxBNGx;ngAB{U=yYJlB|wh4k+GA954G64Ym*qBYiUJf=6 zQ++{p)$wlQHeMZAyIjG2ST?eDJq3=gV5=g(7LyW@r4RSl2Y9)KUD)Hi*!vFVZ~A7K z$W+yt0z}}jpIx!DblTzB`Oadr}}Gz)i#G*LNwV!ZkL5>G9C%75plLm^WJR^32ahdCGEd5I;-f z0J^^6;arpb`mfv8ijDMS1GJ}sB4=e;+Os==PI+|<@%Oa~R3b#3dPY~SSJ^v~{KRu^D>XK}00nOllW?|^3>r~qP48-WAc7$j)0&7*{m9<5rm3KNA79~>aKh=7hpI&$Pd z^0+{hNE8nqG-x0orOK2iOFj^VLgWHS3;$|%%+oO^odj|aBuL=XfrAesC{Vz(YE{Ff z4F%45G$(3Qs8Xw%`iC{E)~#H-di@GEtk|(+%bGolHm%yVTfy*%Dro|M6#xQ+kR*wa z-o1MD5Yp2|&!WK~R46*ENSCf6w{9g$w5dM)YIos#d{u6;vp(2V>NUF3c)csERS2Z4$1}CsZ zV1Wi6h+u*WE|?VzPWV7bTmYa0K>rLD;KdgqZO9f_V2j|ULJ9~RrkE%KXz~~yiDZ@; zW|UzDBW0Z7;n^)kC`MXo2P~4BYOE3RV{Cj8wBITRJcHD36e#H%4ZjITT$E28N0o8} zDOb>J3O%QgbP-`( zs%AE$ik}gq%V?#Y*5hA5>J^)i8ZP(L0j53K8*fk&2c>^fLB;EG2Wh#bbY4m{k(daS z*_}rn%_Nd|Y@)>No9T%%=l^%^y(dSWK+RX5QTXNehz9&oWh{UJ8h4eW_TGzczWR0r z#s(2Q!NeB2YPjpCAATU>VUXw|iUKG;CfTZm#Mp<6E^3BHCW+Kyqb`c%m;)v}_PE+! zu4OpKu2X(^o0Cnx{A83;x;to<$!3YrLOL%65t!FWOD0EV&Y3MqC7p!ynrp%dt|(|O zfRmkea))OE4p{8~pGK+sr@IZ&JZPa+g;K@7W}l6A+6Z<4hAB)`(F6~F8Kj4Fm|RDP zsHC2VYO0kLQt_&lwOS*rvVI^k$v>W)mypZ$cUo@20xPr303LU2R5xSk+;a;>2a!=C zIG{qF)s_iK9%qhZbpO&VH9*q0bFwD~?NfJzr%&?jY2ST+=4TwdQej@zF~<4e1Q=>B z&wTUFd({C9ZeP$uDLgK6T}Fy5{J@D2`%M|(eM}s9`7Uy{amOB$_Q8%M`}HHP8S2&F z94uqvB(TCdIo!-uQZ*2#SSeXV@?1l{R2|Y`q$g#n6HRJYlWd`9JSK4o3Str`aIwcG zQX`j7ev*JA45fGLa+e8_vmYPuKnYc7Arnji0~mne6VI!m4R5G6woNY!UlsxyaRkOc$=5CkGb25|HopNqtIL{hry77B>f z$Dp{QMRcf&d&$+1XagN2#q2k@6yq3mX-4D(P+2)^)*6!ntv3Q?S`EAj1mz^n30e?6 z>ZwT{p#PSKsJ#aWJurbwNl=3tSmTlFtf@_J%Dhi}!VwTC02_#KPx7@$M*HliKU1Ir zk?|-ntd!rtG$cT~A;p%!scMvRSscs}FKkv4ATYbMls48!DB0m?N5u8CqFr#U(VQLB zAkl-kzO)4`utqPy00v0nbgz8v>+(9#3q$lY2uWC#J|DwRk10Y#h+8UP2wG725#pCq z8O$PZY0EH%(Q><#mw#wOSzhU^OI=dRDnv)R_>AjX9|hO9VA2B=m_P_7AOT%v(TiSu zLa%=9t#5z(*A4L04nGBeWn85ISRDqbB74MR2`1UtY-%q9*$*2tYt_oltg~YCp=Y3C%;uJRz zu#w=v0H#0&f2x224VlgSq)R`j!fU+5;U9#zd%1aW)w^Eps-U2floeVb3{_~aOmmx8 z6-#-_RDK@YtU&@2WI+k5uyH{*h2zOa)k{6ru9@W}+pqV2qw*5r<&6TEJrf+=#XJC2+yUw+*bv=R+ zIAhZ%=yWgUJL+UBd)Zy-0Hn$pi6<};6-rjVDB!2KpZ#=!3{`jS*eCboCIMr|6b&!`FD}Ue_q!Lkvm*igNDv(r5I8*I6`%Mw zBp&h1Up(QT&v?Q+9_iJtcjTc??{>!swyP44a@ISoT6BqrwAx?gWqyO`zr}xPb zzV`SxKK6kRyxS)Md%^4f?XtHyCxGv4yeEKFCU7$}XVK<&sGxtxSN{iYFbQ^Wd=9vL z6Nr2j*nEShe~hPr)0c1!Cjlp?e()xG4;Ox)*L@=BZl))BBZz+Tr*tmJfoB(cv)6Vs zSbO*<0r)onb+Ci@H-Y>|Z=8S%k#JYYHh@QnPQJ%?!S@8ihYHO%3CiaNs4#_7SO?Ug zcu!~t#xMz7SO;D>fy{?|&L?tw{|Bub`fWN zE$D%y=Z0sebVrwTH3)n5H*Z(s}%sC<(^4T*<^sK|g0=>G=G2a3x#hGj^BhsStj zm~d;zh6z`FNQZj$7ImR_jB96%%qV%(2Z+%Kh%hLP2}gfMcZReFcR9F&ImmEb-gcxwoK60nBCIE-<4b`9r;XBT>LXon!Ug3PFgk!O9w zIEb=Gf3;_SXn1twSbyJGhT?d5um^qL_-cHz2$X5@2}5v;w^#smPyjRRgP9A1nS=iq3Az`Q zkNFiHppTPKl=g^}NlA}M*_BQii&Qw3if5H>z=clvg%AjuTiKPVshScAmaRFKZmD!0 zm~^rkgR}{o94LrxCw+EFZ{J9lc*%phDUNr^h{VZ*fmsJTNtlO8n9WI;fv^YAiI{iFgH|ne#XVn%R`hCz_NQfe8tLs|lZ7X?$UMlVRDK zWOjpbrY2fshLl%AgbKoO_T9 zXK)7dP@VKfiF0Oz+sS({00G|Vo!|Kec0ig1V3Y;0lkzB!$(f#r=albRnKina7RZ(I zDUtR0pNxl}`zfR-nVT<(jYj92j0m80379jdoC9D0&Kac*3ZV=dofB%I7Am0;dZiV* zr55_2ggFRjFbKKe3lb0kB8r5O;GGd*qTh+4@7a9hiInC!1O~8_NI9btsCZpSnmP)f z^Lc^eXrHdxn?s7I94MB-$#^fRq_Fp-k(!)=xtxO;rOnBu(g~es5TO=Yoz=;upbDnd zxd)(%p$?juUrL?SsiCW?p#z|%NB9YDYX71UP@=bbtER}FGRD zX{-_Xd_Jmy|M{OfAf(PpZ_p~ON(ZeHpaX>GtOJ0K+iI=a>aFM~0XvC~e<_&Zs-T2< zsZ|;Xp?alTI+&u$uI_58St^~LTB@wdsv4@V`dX@c;0UpLgdOk%xZ0)=;HKaCrl$Cw zN2#ZE@T*XIr^%_A3~Q{%+M`}csLBd`Ly&OLDwft7tsv{H(<-tZYqB6)vVyn=vbVC@ z>UP<>tw*=AluEM~`kW4$sS~=X?P{-`>a+a{ul?$-TiUAoI;KZkw3W(yc7O^Y3b1zf z3Ag&DCwiiAYPI00qT{KjZUChYEB}vCDvuLev11#3H<_`A%CWt9ts(2IX=V8?)ewx8HiMHfyC3s;WIJv|75Qn_9S9inu;Iq5DdvjeE4K3Y~@tg$7Bv zb|3*x`?Pik15+!t23xCbTD2(p2FS;-M|qUL3bs)yu}nF(gX+2)D*+sPjvAP@hw7j7 zmbM%_vUB^gcFVVUYppYDuG>1ZI^eg*>$C8RrR$2bpz6HQ`Kde`ug>eLj_bH%>Iu=9dNKF`lg-hxmRnjJ`A3u z8^23wnDx7$5v!c>X?z$v!J!gb84(95Zei^3_~xa+#T4BMv`2*WhWo&zb1 ziU)y_V8fW$0X)3J?MtYk^T5XN`l%Z%p&Iu*OT7oa9LE4H)z!(+ z8EnR-ilq#l)u5fB%e==a%m#y?%*w36cYL5wSb>1dkkXviRf&~?Ou3ZXiit;xlYqH) z-FrEl*D%e)B|6jX3#SqA29%84GYzK$8^lK`$_$IAhwZoNI+(`0(~_OkR~@(sy}_O> zp$5IBaZKKDETNkn$4zbCNc+`fI;Iwl+DJ>PlKaekdX%!wm0CH0rb)=U{n3a=*A3{_ zlu6*TsQ)~^?T)hw2X_$Mp!?0~ORzos*KhEhl>D8}J+SbLcm}Yfy)B-KomK zoz2jm-LGeC%ZYi$%NxgR{Mlxz!D0>8@qGpsO{QE*j%&TvsM*mT4b8g-r?)$zoZL7&W&K3><&W#Fo(6xAqc*>csq&nICnwTR_ zp=uuEUz*}D{>uk#+2$R`Wm@B4O{O>w-x~U$8Qqoot>4kikR46Ux80}UE2pOEfU~IR zlyHuhrS&-!0Wl z{r}xjozQJ8-gO=bG#=K2aN0ILrVR?5KmOxdDeS1(((DV)%YEFRZs8U_u*8RaJ9)ZePMB$q=BfVF5dF(<-qi_R z+PNOzx{keI3eS@ZpZFcy#O}gAE`jff;w%G6iE`eA$ z@Ow{-aLu$yuk-^*qTEc}+5YrYp7G-BrcZF`KaBN~-|@;lu$O=NApeA8{+CLroETc~ z_|EGyKbU@Qv4TGLIM45DJ@-AY?6fU`hA!8D|LlMdzfE5F?s)hNKIPgzwJlAsFO9I` zeD$0@`QQ%fR!hm551x7orB8a}$$aDP&F9P6x?>Bde?I8=&C&Qx+YE^C{>|))zVLIs z_qkpB2kC$?ko#(C?IqguP2bJfzUdC$?L9p1l>hBlU-Qt&#tzN~NRqIx+UA=w<`}I=y?y@%{;vbxvSi!V z%_|qK+2hIa>U9g9;9$OX-w3?Ux9~!Q0~IHZopLhE%9AO(6rcJ0=Kq#EJHIR{RJH1v z^(W0vjeq8BJFV;YcY~AQ1|+aR0}n({HyGA}ay=h#XMuIMbRF2m}m%MQEhwDWE;hgL$9#q(A~FHOy2qRg|< zX8dW#_;3=cKGyUkil{gK4KGCwA>_Uc z@k?JD7zH+1VTavn zI0vbeGFdB+rSM8C*_v)s=REBz%<4K_?2Yh9Z86PmUsMy^8#@Y3Bh-Y-(|^S`|K?==brDzJMY{aEepbCAvM_G}99%@}pbqa`u4{5tRaVjc z+D33)1sUwpGS4xm*VGNlU83N%wGRD?oaCss=ao(M*6esfZ`o(3-6}_bMi#AOnO%Be zqno4j;ZQS78fxn>euBnWOMV_Ba_zb)Bp4_H4&_C-PzwMY| zKI#or4z0a?_hlbzV85$eE8&9+FM422AKvgdi6h{W;zaZWI6Pq|u5!=wAmfwFR1ZgE zn@vef)3UGi#27!~Uid6Xy86T|UvEea&Fn)B)xCjUZh!#$-nT*)>TEbvf}!r*BDgFe zhj;n=n_aY|!{>O(N>7tZ=$Q8|%B@R+>=KFEr2l7(=CSH?Zg?V1(zcVM&`OBO_!BAhAvosMk?Jy{^ zljSI9vdKyDCl53oeNslN(XpmaLwQ@EvWOJ_w9QsA6Qhsll|GmugTm>8C(Bvx8c+*)>TxR1#*>W^RapMx{Dc-UzIuCWYga4i+V$!Bb)TyQ3

    *XIWA|;z+RAyl9u*ui8CY$P0 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 KP ziaKgg>7YkN7iF|jN7L${uJeL)4=}@$ToO~o-m?!%2;Pt~RK)h9l0Q`Zn`wy32xJu_ z2w!b&p;&QKa}bs^Y)Q2Lm_8J7P7s9ys?Oq&b8e~SmQwLW=1?)#P(Pcp<2tD9@GsFv zuf;Z7ZN~$Ht~=Iy@4O)$GpsL6FGVcA2pC(}F>;v{b=1fFD%B2V3#dcD%eW*+HQO$% zRl^K<8)zp9=)BV=UgfkiSYRCnN~vUBJT^t6uqvuh7yXOsjijDJ1&nP+Cb?vj#oFL5 zyYlkZTXSE&bT7i*bBwMhgnakD#o~1mvYzE5l}gAagOjsW_YLhf-EeiYU|xlL*e5uR zv-4rAN4z+wWR*%Wx{6^`5!$8vYYvs9nxe*yUQTAaZMPqdZ2(FZgGtSaPvtVE4ytCIhON^Yj6(P?0SesBp_Srz2i!Lc?G4{A9 zszTT9ZPiz2eZ08gfFsDcm888r`}nrI$=vw{^NcUMonx@DG` zQ=OxfulK(@jZDw%<1?T61r7O#xf91jRjSJmqv5 zD+qXa=FC(4)6aYaM$jdVb;_Ria|HvSCFkZU|imNr)9hsnCpPTwO0< z_bt81&M!fF-~n%Vf)QS1P;ofODY1D?w44%|SRA2nO=}mM zk##&L9V>>;iXNOwQKmA&64FRo9jq1_ML9~7eL{Xhg54=+2)i1}P-c9&+YRZH!yoSN zQ$4IDxk}}=U`dXN2=k@#ghf5;IdNjpp$Snq=(#MCuqaWn!`VpqvFlI^E74gSDYd!H zYeiy>^J7^m;YTDF+6|TVvz-n#C8ay^(2wu@A*mR{tRwcadBA#JK6OI9WMOZ5#(0qj zZQ?cmKy6WrSDDJ7$hgo=UL`sntERL{m`!e0)S^4;fFo44Mwg9qob&7G%ZPMCbCQ%( zbrcdVeF#sT714o(l$@{@xwWNWu!_gxB_y-=MP_30bK~2jbfg*0jCF8)B}CsvmAcgN zL@Jd*dSMP*Rw-4|t&Z-2CExDI9#65fmO^}te-Js=MAF21ja&*q_4Jd2PSJ{2VM=ud zMID|xi>IKQQ71tOM(9kZeAKE+Lfya#rWV$)-H8+%qZ+$$M%6G;Evd^`mL43^%!ZfU zp;tBgsmBo0tWZQ2KlRj{3M$bk(R$HmJIA>fVbEffv{)rSCREz~m8gFOqrI$kSl;&k z7A-IU>9^GLExN4|q~_9FR_BPWB^l00yg{WA1a%3Io`6pyn@T@fv8(a}8 z6x99nk^%kV2+MbsXi>|WQ}NhC{R&F#*y|I%#czJcVhFiK6|#9Dt~oCSV5)W$T~dY8 zxdIbi2D|HULgCX+p+~(5>S>?Je5+70DPHfL^=qPA)o~{%Ec35O z2kgrFweqB~L^4a~iB{%JajnjQa)q^fWw>r{DgNx@=fGFcjZvk&=`G<@zF0!Q=GI>1 z1LKOP>9Os^+0?x?C1Y{y*ctvfxF!8DW$Bl$lI~DRdNUGN1=G9isP@XKy_hk&_vo+< zG>V!0vL(43W`)iOn%5DtjKU05tcN@tFKld>w4(uen6cGZ3*7>571?AX=naV_=YfXI`=JIyX#GGu7ZH-Fb5ayPz>&0z+ zuW1L7J>BpY{n1n#8`2!7w4shJ3f5+yq}OKZK;)4B1AIT(RC zyXzz`nyYD%EsVLXyi+)(lf9?tB=>VKinG1k;FL<8vXD zW4x>bCw7ZIIA9D2U^^yTwt$L2(MgK*f);2?J=lXLj48i{+p94$x)swqgsTc{dpM;t z!3a>nEfl4w3%=nqzSxPi{*oUy8m`JSxyf?8ksCK%i#4+QltyxcPl7w}0YB7{rq5%q z1`M5PNw4dGHit8vpesLXIy(Pov)i*mPm4JCDq308l z9pku@6ENf&45@>)!-%-JmvAR%%9p@r9%Cd`46vg6-fIrBN@`12Rd$jVx z3M3?*yj#Ha>Yz$WFTskY-0CZ6i^bbZM2Z_c+QU7*E4*UVNA*dpHtMfR^e<;5rxu*S zkZYkbnSE=}fX}G_GCQdslFEYeuYDZr@y6Z?fq%*;K zgunRGy?ta!^{KyP1jCIo$Q&v@BteoN!#@HXDL3j1GrURp|A7y^$~$tr$ex=>Kinii zyfnZ1q-lYUX_+Q5>L8<=7B)*dMl`{B#Jv(KwU+cs)p?y{lu7%8$uRUp;#$5^E-|N#!wSM+X_bdGD(%(t8V+s z$9x+@m`RvqOXL%`%2YgrguWLXDd3Z};gd@UsJ>lHGmjKAB(%HFTS^U#NAjaZqADGa z`8(WmuPK~3+ednpW`xGHyuVA_F}VaVm!Y%J6u$US zP3a&VWa2b0%1)2jq`nL_+-k?&3_K|myzP|2U@Xr>{}jRWd_>@M&yr!GW-LqjjLCwO z6uIm~aH=|mJP*lxP96G#yu3}*jFG*BHZbzTz$?1hJWrzwPuw&_d2B@VRL`yS7#Mrc z3>}$NtI6XuOMs-$b%ROC>p#YlOX7M?;bSh3ge~vsK)<8H7v(ha3r{kmukXyZ!Te5o zY(#rxObVs17t_!o9hnUn&JS%%&`eU|jLB7#zI98{llvyf;z8BRQHOicpvtsslEP{- zDkyGW|u{YcnbI(XFIVHg(fU|6Pl;gi!8HPMgSPAm;f!;DpW^~FYw&_=aF@f_2=(#>0~P+Y~(a3xqB3AfmZgE*bi zOr_7|d`7WMRz00gzSz<6d{x1mP(zGW9?iYP#6mUoR|@@6Ty-%aE!dOQ5pPo1IEBk2 zwbMFX+4*tHkc&e^wMvY2IA|?ND||m}|20fSOjAe=QjrzUi9*?<%@LIi(O->Iu}s$v zz0asstb!C5kCaiI?M1EpS&j|bqK!~n9oc}T7Lt`zq%~XbIL4I?QFJ|5sWZOkTw1cE zAtf`^Xw5x^yHa|TM~)p+uoYQtWz6)9I4wNe!VM3nTG=`?*Tsw3`IOkHvmYfR&%tw5 zY0cKd+*W?oS0IhhM!KT+3Y7wFQhAY zE(_Cz;Ua$FU=?8K{n)?tTiOlV-2|l)euE&DVm=UEA;w~{kjxM@;x3L`9wgwRP1Bzh zT4xS?q2_8Yv}lUHXl8!tuNGz483hNPYOftyr*`EBhUIR4gOm1Y(7gk$wre=m zXQbBWu?FjwCRf-IW;{;igH~v`wu6O^Yib$fHE@H4&Sr*IvaF8m$aXJbzGAzM=nkj^ zj1FsmJtJ8|G&D)oHm_GM_HlxZY`q#%yG+<*_d6&i?9(-fP$i(9!-Y$u{gM z#^#?E17Muz5v1-Z9^1y&-JLdU#NO@)2JhmY>~5B2@eb!LHgDOs zW!gTsPwDB@e(W^fW_M2L#fI#kzHh`AR z)*fVPC~0lpZu(~J5~u9$W{i5q@MKQg4!`9NM_9?#WYd=4%C^u0w`$g&@b{i@7jN;) zo^iW=$>vt>CMRphUFvxrWa=jFdA4uWPVFqW@)h4{VfON!)^3wca^zlS4S?(!jKYIyUUZtoH==E?qY zMF;Po|JHN=?f?L{ZS*$kCWjpsf9tot^B0HfMql(Tr*ao7@x@MUAdYnLu5rF5@IPPK zxwwNhm~w?K=HNbb-c4)@5A`pv>My_WRL5|Z-s_k)a{$Ki}-U|(rCK!nHm__(FYH;j@_cvj z{9c1?-o1iP@*2B@OIP^3?rc{2Ze4fwZjN}wHun|}^Dj4bJAibKAM^S{1Y;LNgunTm z|F3kk48xsPZ99i+iH~k`pL6i`^0`jzH9&Ql?|7YO^?5IL^}cQ`S4o#|?{>d>gqCE}d~8qT zJ8=BHhy2(f`>;N0R)TKBXXx&3be*2-Qs?~1=7awJd`WL<#vlFEXMEA;`QejwbC2!= ze|xsy`q{7eHL(5L_wNmGa_W#6)!%_h>>EP4*x!a3@LIX$&w~dqD-lBCCipBU&4$jb0*E2HgDq0nX*GA zgO?Eg6qpd<9YjKpB0OqzAe=ZB*DQS4P$Sf;ZyH{tICbJwiZFD74J&pm*|KKOqD`xI zWQT)p@BAz}bfCe4bb%6uLlC0IiBKgzt!R}G)s0XMtxc?WG2_OLA47K8_F&zll-(ko zdsOdLz!bA;{7lua;Yg8BqfV`QHS5%dGXFFcm>e$U6oh;(O641B3L2@T|C63)Tb)XNm>^RF z0VWlGJqng0rK6HsYD=H!MV+B`vPYkppl0Og8ylEftF5~Cv0f~&I2O3KrhU)t5{k#`KMA5}U2_SqfGa@%d2ld;Ncf_mwNEsyoRfvun3vfFNu zs8*&bUcItMZME61LFF1wow=^N{{n1bjP#02os8y2iLaCunG0#a4?|quYeY>a?VLwC z$*7|UKZNZ=Rz@7M$juodt;sbCbV;xtC%iACh>aYx%*S;QLA+h^IxWk>@*G&c$AUbw z&_h2qV9rY+l`fzf5$az?!{U;W?UPWv8xU>^^&_20`KBaKMvcBWIt zfuBCvs-L|VzfVUnyZZCb9OrEqXPdb1^z$z>oJdLz4x)R=AC%X>1Bz@i#IqNbawI$^82^>hUpuvL(6DnNDu%W|; z5F<*QNU@^Dix@L%+{m$`$B!UGiX2I@q{)*gQ>t9avZc$HFk{M`NwcQSn>cgo+{v@2 z&!0ep3LQ$csL`WHlPX=xw5ijlP@_tnO0}xht5~yY-O9DA*RNp1iXBU~tl6_@)2dy| zwyoQ@aO29IOSi7wyLj{J-OIPH-@kwZ3m#0ku;Igq6DwZKxUu8MkRwZ;Ou4e<%a}83 z-pn}?Csdp`iyn=!gPSv`4Ut~Wy5Xlf2H2oxqq?>2+y6R1C}04!?@zdcla64Z_!-%< z_jC}>JaZ%i1$YPWeI`Ji<;}B8-T)oCZ{*ccY5yPZ_|uT+=c#`W;E23?#HM-6k6rz^ z?*NhB>lfSs74!n<_4eIt_5ruwfqW4MV0Q%&h?*eOY+B>eGt5;qgfr)F(Y&VZU~`l_Q{6dj!1&l z!5c#`=mvwm5lQ59;2jshgh^(Jm4fKWcOH%P*+(6OziDY^Rfham9B)s~=irUgkxAtl z9-e8ZQ)$ZBCXn6TD5Z*G&L%;NcNS_?2VVxrrhE%JNaTRW4KiH-IT~u|P(8{BByUa5 z_b8b|aww)C5nO7jPaRCcDS-2RX+V(mP5)XSgegLLS2yCY6eh>fq}3 z64~_FlTfXFp?u$-G_-z0>AZcR4qo{9fVOTWCsU7QjM1$5}=*naH@NCSaXQRHHruaQoS`&-jQd6f^Hp@+d5`UZICe*0sz(BDfn$ipo-}<;JfC&+6M2wjD z0L4UEH875cyXB*5iT}rRHfJ~INoA{SM=@-!DS_2OU&>U3I72RUXRz!hic|zZf7&Jj zlmuq-)?~WUu~D0q#HSqZbDR%Jx{aH5crtOx*=fo7L`l8Whm_zL~#< zZccUQx)=%hcZOZQ)H2AU9K{v{Fkf}=Z#XScJ!AD#x&d`%V`D?GMw+pr9#u3yY*w>K zbkl&s?WUE}+Q|&bH0r@JPED*T18vz%)S&aLm06Oj{B|^(y3>0B!>IyC2q?mqw5sGA zTiL?Nzlr)O0A$4LWd=yl#5Nuw3mXNkLn}tY%Sm2e%}SYqUFkB{`K? zK5+I9r8c5qa2w;x<9d&1ic)HLQ~6Glb%&Ppj1&^P8O}c?j;eGupKOe}UH-Vitn$++ zpG3F2v~~wd#aXOp6WPtqBG$PMRpx;mTBSYEx4wSqksoD**6y*5~|F= zp5zd3?^U;ns%QZ2gD_xp!%mH+a=ep6Zcb@iIsy?+w7m7Kj(MBN8A_LtbVIF*3qu?? z(A0ESOk*D-_EFltGob_)tTGG9JnTo$ek$?tTne*t$okAgFV_X<`1=*Glp(T&9B zlAxR(tY^5Ghqd4R9+Cz9$C8=X$xtRRqv0IUIXgGR5Il6w9!2R&vqi5N9hsPk2(TDN zHO))~7tO*2C|N2jw4)Ynhlll9SwY%_e-gx9T^*PH^lj4_opn^r48!GeRIPJub2me2 zU=j|Pst?@a{#Z7f>@j;Tcc|tdHwfP2&X}YBMe}Qcy66B9R@lp|Dq*YVToNNuXOha} zx#My{q!Bl^whm%u(JbRMLs_em619|XOgBltSz}qYYLs0%aJO*B$d+whMv+{}3s(+^ z#sBfB*21Y!io=!LEFUSgzPa1hwG3Z*?l@XrQ&}*VtY(@*YngZVU$qiaMK4boTS5G0 zpsu&QfFd_|VChwzr$xdpj&X;jbm%3Q~Wv(23>Tsp2mm+ajOlUKvI z&LF%yyzgIo9_>1=xR2dFq+@?kcs3IFSc9(U4 z26XWEbzawiIpufS$9cOoLcRxe_~vGY^;QmKV7aAB1b7uo!a}x_ciq!z)#iTJmS%8M zeQIS$Nk?`PcWT+UP!d&L*fms6_!JjHa;_&(frCvz7;i>*a+2eB^05cS zAu0Mdg~YOS_?I$Qs9tH;g;jPgQKK-)7lup0XCpX7WGH*nw^mA&Ma-WuR@0UOpLtrmh z9s3t^!WM%BhB#7ZXE#D@$W$EzNQy{-b+Fe$LI+iTHB5mfeJUt+kJu!VSRI%c0JSIx zl}LrwXo>lUTlNG_5vYl;^E&fIj7JfI$cSIngkS6kW~ekU%k9SyP6ZCRS^-DJWNH86uIi#TyctdG)wS`2UELwpey`Scjzc zW7;NqTF7Ae#43CV7$vxKV3_M$X87XEu*WNRwe#0B~4il(+Y> zaz!|5*LiCvUkWpdOKB76cZ%!SS3uH^Gv#&G7FgGZdw`Q>aL8z~)RXr|e><6vi8Oql z^-2^+T3cvc>_sNkk#lQF6Wr63LC8EWR!Q^Ncb0iNP6mgkGj=k#mDqS{l^B}n6PC3o zc%-&iLFR?CG>nf4nW$iQl*dkqvP$G-dAn1S05$}iS&?vP0C2dMTq!npgkXY+V1|Tt zxd={I1%TYdi;P7it@fHGu`46kPEdt4W`%|Zm4r=_m3b+49{=TVr1@*0#Rg$RoTE9K zLWzsdC4ZLe&#MuiHPk-m2aqdF=+s>VUb&dNVGTz#3`CH z2$;n=cn3ytbEP?o$A6;|S^3!#zLbzjeqX_jd0S)MRz ziJf{qd}O8a{p;FFlLuBXbx zDXY*CjT#iGx=NGqMzFxSAel;!nX06L09uoho?Z!q5o)J>`GSfyE5xUqH410>l!>U3 zW%|Oe9PtSrs;Dk`I}5ofziK*>`Ytlbn`~3A2mi%{j(BtC*gXIMMBs#yc@eu0%{N-B|Ii+giAuP*43 zF9@0!t1xOShjF&H$4QuM_pApaU?Hn8jtR98fsTtBtF9Ml!(?k~l$E<`pj-2>hU9#tE^NNw}tsxrg|d)Ss&FJx(G2d zK}fn!S#mS`vH(((n3QsGsHC645oez0 z$)`U1d03jRma`&6~gf&|M!2uta*BbP2Pq(wj7kdrGRLv!|pxyR*eH zwuTF;3_8Ks7&egmTvFacORPG%k>O;&9$a9X+fO8%5Iu5VeJiloX`qTClP~L} z28>g^8pA5stG1iC&p5t6YmGXXp6DyN6zsMNYQ7rlO-V<*WXDrUJW+Q1K;`$u0+A|1 zik-c}Mgc;wW<@^=d!W2&0CP&iH~%cg+>6M-NxR$o$i~4ml(@cwS*MWOzQFsq>}rdZ zi(^a2phkYUD+ zZ?m+oBy5V<9KFj(umQX~1OITy5}B!U3a&Ejrd^!Nd(f-ryvUNg2RnI3=((x&Y{}!2 zzVm$1NFB^U>rK7~ygatSIJTIkdN`>^!czOky&}_(sGTl3&I8*@o%W=Te6T!?&gzWQ zPx_m1__#f6wwF7o9{BjK0Ea)%_NJYL{h;`Ltr%0d@ee{%eLa z4IAh2h`kxkTXUe`Tfo*U$*{r8a5w;w%(&_tU~(we8C%ystGno0r&0RU7CX{$3tEc9 z&!$X6z*mQPE2go@lG-d*3LT)TJFo$g)4*w|hP%sYJ+QdU*=_yE;tSV%klNPx%MlmB z)}5?%z1Mx6-C-lVu>Xxn_ojn{Es#r$lp}jE)l7xQPrm zhn%>bUC|9Zr*OTv2Ed?i8*xYN)SQgkZKlu13ZoZYE`vwaca30je7Q|4bt#hGJ&2M9 zjnI|3X=g>*Nh8^ajIitM(4Sr6^JPSF5P(YVW?(*4UloSv4PoJyVD%Us%eeMb&_?%YF-*8eTZ zxnSM8%h%}Z(NrCwGM+^AXXX(aXAt+ZZu{4}n6z!x#9o9_gP@`L`3cl;fGHfneO%Tc z4lX$@<(IwATK{w9Xf4V9UD4qy)D!LHxZBjaYsnFJVJ(zJm<{1m*6qw^1 z>8x<&!KAi@E7GHUOuAk@+3r0Al5MLE_`zjBKVHN7f^j>w118(Ch{mFmc_;k}0Y)6CuF$vy1w-W&g(>5`l2n+)SBFV{Sd z$tj=Ln*W~E(T?o)cjhv9@JD;cMs6<{K5)vS*%q+8Y(U&}V@-{9)V=l;mFyx;7;-%_9W?hl+xUFmYI{Fy%Eq)z`f{`IO&>LCpf zg8~Q~BW5lqprNWZBZ? zOPDcb&ZJq>=FNYoh7>5U(?EeeJbf0Z^E2p>p9YEs-Gj7%QKSQqMm6Ac&mIE?1{lEF zR4Z4dUAJN_`W0(duwc7pUE5ZzLxc|z&Mla5;KG4+3kr(MHz8iRfcxHE7#D8Bf(Pp! z%&XCHUbqh_PNY29V@HIMaBk+@+4E=6p+(oar^%{d@TF<E}+?`Fq}fI(s(IA-3AewX2ZQimIiuDr&%{1k{SGtQhod zI0^$%%fdYZQ4BG>{F*B->Y%HRx$NTN&^hb?;}E&+svA+DgT%8;MuQx?NTY}%`sfq- zdi3!}AcKVIld4cl4K>zW^Y1I5o_cDkv7A(`s}ZE`*cjl^9JZZNJ0xW^w7^fssE#n)bMMq z$(^=pl1Zilr0OZA2(*$b1F;%FEZ%?v&QmT+y(&yEGu$gXJ3pk$L_Jq!Q7#gx>x)G; zo@-7{=OhY1G4bmBwK5z3#0aARBp4J?W}9{P*?&5i#L=COTy0X;Vx#iOKupUNx2%RZ ztE{cWB^9j%Dde&%cDZURRj>s6%T+xIbJ4EB(46aD>t3bPMLFT>&><0lX zV$Wj(6=)-tc;fgVaP+95hA0YBNR65lKqt8ZnN$Z8981DI9IVpR;N0a3Lk!>TDv(^J z!|u9$@r89o?bK}UO&491_0|^$LNnJqTeOHzycquV&xwk?Y!F8%w*UHStY?bgG}eG( z)Z-*&6Zc8mwpx%X0wMg(Wv&t|bu3WZ6?5)(jmr?;t3dpDIep>WYdR3~eY3>o__i14 z4*TsDFTKyqRWXHSERWdp6w)kf%rn`09yQl~ zduV&%Pd}!tt-~iv%{J;aPoYdpWz&a)yXDzo$2--#?>4}~Txhme_*e`3n|D^(?0A1+ zkziI8qQB`YX)$_Jt`?@E2Zm>A3HwOY9I}V(aZiIA1d^iMaQ~V;xB+~S3f-j6H=8J( z%Qd6Ilv2XfKKRMcU8s_s-M&OK1Ds(GxLe&GY$lh#;Y*19TNB@G7CbnG$bZLEh??ea7gP7qHlovke+M>#pmcsFuGcf|M;~)=TK%= z3WFZQsJ9V_c~O+3#7PHq!m$x*OEx7`kXZtB8w<$>RIiJh?B*uFINGp&G225P7qv%J z0P+ogd;=i;SWG}(MNAsngANN>$6OfFkRDN_B9%x$z5fZ%l9AMA5Yv>nBQDV(Bzg?w z9wR{+LG6%&cmgTi`OcR_z;j~k2_A1_l<;M!D6bS(8i5mtvaHN?w^U{v?`OX_=5Z3n z_+uacNK8~X)R+)J1q7ZD0gPfa5*dBM6N0(NMX@Uob<|-=o7v204uVY7RN&8&)1hs4 z=uU`B(_;M9qNGI-lZjDh)GTs2cm`FdBC!w0K-i@4Dd|8^AzdrswvPQ>3yf6?Nug-+(;3n>e=X zQ&|1wL;YyXV5U~J78Pqo&B|7?o|UY#ZEJ05`&za-!W0;Nt4IAv*8zO$R2jk@UQbHg zL-N&{$YZWvICQu@AqKH^icBXFwlK&1X%HEdYiiOb;W7UbHEqYhQnloipK3GqmED4PZ+NWwx_ZyP6 z?W(11=p>Ly%=+55qNvCyfYYkm1(%hq2>)JklX0tLDBqUAwB0R|5zOGTUO5t+Sg@75 ztY8FNqpVkU#9KL$S_n&cxObytg$tQn9Tg8}cL}ld7Ir7*rRS5%T5+GTc1rOgRnV2{ zR)o;Lvqt zwhY#71U8N3S93Ymv(_yqz#IuNHMWB&0#CgsWppe~8 zKSw)aj!;mxj0$52)#f$@!0N9V?dVBRw2#P~bVWGqzW^%bb{amm}T_c1Qfb zmyQ4j&i&Cz;Bi!KZgcLMc?Jygb%}mMOtDT35^2YrS@vNR*BS+!Ci#+&eH`~2>_AcZ zhP$E=AbQ7*uI@;%d)=Mp@>=2jUwJou%U^c&)ORau03*24qYgNOXFKqXe!a>~-gMWy z?sW#++SRirvne*c@K`sz;j(CO#2Z{|S#ZJ;yKsax9HDes1m5YF);k9#{p+g&g*Un+ zxgk@o+z@9`B0!aS<$vV87i(52JaGdbeQXDxha2?59Qx3SuJ;IBdgJYGx4KjYc^q`k7 z1m58P{~NlniU0_3E7ilavQoN@gT2?IH>lgSP0PM5%Rbq2yS1COwd=ZiGrO(BsH+>e z-2%Q36v5(SuqSvvQ#ir3bH1%(LFj8f=(7fjGlgBKJBs6k>cc_n+dl2{KEm_COY=b? z48rhJy^Qn08!R`(t1HDj3koqd9aZp#AoRfnd_6MM zy91m!3Dmn;Q@$3wI{!CRyA)JD4h*=9sbh@M)yw$TsGCaUCB)nbIK3=OeLM$`rb2W-H#uI!i6ZE>b zqC?=@Lp{W(i`v6HjDQnVK{&j|6x>E_OvYpsL_v(c8I(BYBS%NX!5#!g*W` zbYx4uL(9E$J@30kGhDOE3_~tL#eGq?oJxgxHJ(s_X^Z1WLm5INbC_(3D8b z{7s%T#QzAO$tRG>x1!0Gyhi0D%)fN2X%tN8%*(uNNxLjgn6$|gu*u?VOzt#=8o;T!6&)2L^$&ydi6iZF4KDv{I6KDZcuuS0O zN#jIJ#N5u}JkA4M%oMcFI3!F6?Jen)(2lB53!Tu9JWlJ(&c)15#B5Aca7+*N(C_{ghE7GW8=cRsq*GEY)gOUVs)T{6R8qRc)L>f7 z)bg#c>L?-$CPwwBD_vAt?NCbP&`Z5k61db5^-fNhO523fQ8iU%UDm9*O0et&FgUUk z2(ph-E!8>!3BcA9xYS3zR0d5lfy~McU{-Q1*FJMr_`Ju{6i9Y$O>=!$c#XDXjaPcD z*P+r%fc&p>gMa}TDK=n(dw3pv7^wjWw*thpJk82^wO591SRc7c7+6gha62ZbSpO#2 zf(y8Uc?f_N0Dw&RSakSUJjjHR{aBMd*^gxbbYOuMSb;H^fGcPMnZ1B2r~-?%NmY$l z7;smI?OC5S39Q_J)pWZP5QB=n04HbyC*T1dAOxpv18!&or!@yjumB4P0gm-pk0n`@ z_1G0aS(N?SmTlPyumD_;1al~bQi$3%fZ9}OTS8a_AK-x~P}(M-S#PyTQ&>$fP}raS zTYtn#9JNhrKv5>R0Ge$AC1Bb|AcVGk+%}klIgr}PC4@O}T&K-kNvK+^?bwb5+mij* ztp(e#9ow=!TSDLl$Aw(hZQDn9-8p!KRFK`*T?E_Z0W81*CCCCRFah6H)BhHzfg7*} z_|#FrJznmK%^U57U69chXaV0f0Wtsr>Qw{;SO)}90TG~pRZxc4eT3ExU$~W8^3_~P zz=f-w008)0(#?d?b>ENuh4yt{vJC;V&D^IIU&sYt{%wQWT?9-3U`(KZ5BLBTZ~z2A zfLWjeI>-hFhJ+pf0y3Cj6BvOhXn{#!Pe=Gs9F@<7MP3l*48a8h+uVg+cwQ2if+>&! zDd2}&5CDD<00C%#2M`5l5C%wq1X7R#Ibh%fMgRv8fdF2GMF3y@ecaVu-SWlX%}w9+ zec$$l;`wda0GNOfK;8U3V*hpBE&kp|C}IJ|1Q7TD2SDHiW?(dCVE;MDVPYtPB2WMY z-~~{HEjVCCSGVY-Vi?Cs}x#QrP#x*f(vMZEcgQIg#-o; z21u~s2510V5CBcE1zXtU8LnYb$l)ALV>w7*75D%O2;d^tgGbNQ`1fYW+ z&Sp{81!5ou1rUH+&;)T#1Wl;pQz&O~z6Av!hG5VIP+(wtu--2Kf!tLBnPudP%}xYU zRiTy5LVitW-GF-xJCBk89q_rh^0yVobn}b|8ebP1~xq+AX*OFW3SvxBw<7PPg0Vo&Df{ey2~Uf-QLKTaEz$2mk;W z?7@zK7zlwKuv(uUW>*Ga5KsXGK;s;i>IbOmP0sAhmSK;U>KtCi<u==HUf^gyXjC z2Ego2#%kvl=S&s=1@LT14(n4^<+FBWVJ3w0ZDOna?!}gYbVvttFbB$g1Sinzy%wbo zsDgBm1Q|f=TLu8ZmT$xk0sGzD#)jxNuw6{}0E(uA$|i>8zJ*RMXN}%y8m8{*4s9St zCC0&^!?miCSBPETd|$#o)%_eW?f_6;@SI{ca0*@64TCF<9@& zGKD#S@AyXS0H|-mo`C!Q?#<0yi1zOfNP)>#1pfiATB4>#G4_41x31QOTZpkC&oeqEzZWu!La1SW2#cIx9+ z^9NXNO-5&|P6Qsu>U8etId5=Nrhu~MZ}V+y3y=ZDe)S!Y0U6j_48Q=(odXO211c9P zCcuFAmVq5WYyg;mDz0Mr#&2NWTw&G&LNIIFjcf!^1T;_csmAPbP6S)TnC;mn+tWq&5*J@bC+aUg=>eAJq=xZJZ)%XP zam%)LP2h1*M`v>0YElp7G!|>phUjKTcmMsaT35f?9Z+nmm32v|^;_2f7})io5(7fO zfL0HI81V8fANByKVq~{k)Lr(6)&l@m0W(K)U4R5`zHA-8b{@CtZC`j%_I8ra-a9Yt z39oQI*WZ>FX4c;D*Up4@@7h6cU)pY2`+a%c-rvXN?b>bTqW*0PXz>I7;cCA0kj`|= zzU&-tb35*NY`=wDXaG4MWg%Aq5WsGThiN5u^@_iE8A$exzg%3`b&!82Cct(0wq?X# zfnq=T`_6A=Z+5em`9+BA6rck%A8;HW=Q{p$t=?)Ho_o5-{GliMyD#!Z;BTbYVrD;b zsTJndrfIJwba#jMc(?5<#sx)BZU1|BUH3#akPbvTiV#qA00I-HMH<^IYNMx( zN01^%iX=3$6d^*TO5w6FVFk=gD>AX5ndv6ZoHlc=0047B2waj-q9kebQ5&R5lRj#? zXcZ=?6hwS*puzz~1ac72k<+!SoCOX=iF(jLz%5N`2@Y&4P;EkD4k1CDh~PuUMIZGL z;yY9lU<-nGSO`&=unb8U6#vg5G)DuBf08Ftu59@-=FFNmbMEZvbyNjl}INA z0u>)9BU=lDiIQxB!U&j znhX}i2p9$!I5vk5k(st5k3IVMBalG`iCT>h;dx{dp+w<=%LFgk$J0#!=ya2wE7Z3_lNQKBl(~i` z`tKqH8n_CAAXF7x0u4SGVOJB5^}qvYc{y#E1X+tMB-<)N;zb&vXdX&`xmcJ5uFkla zV>g1aE6Xjr{Qq*xsI7=W$*nD!4PB*Y{~ahQffyilmyW0|B#2FdRDQVoP1RMJ?KAv0F3% zL>POB#iARs{Sa7{geaD#)rxz%rd{ zlmrw8wr)y#_*o7pB0-{AP+D%m1DFnSkoPepTg0)>L`a0D?wqJi66<)jii;lfT| zvk468vnLqdDL*{x*P(RC!vO{Cds3lWa2ixZh8^*I6*3xzG$@c-c&KUd8_pClaR4{o zFaLidTh*(!hyhup#*1S7B`||YnG48jW;H_+lZd6WC?(4`uuFjiXJ?$FbxD;LV_F|U zD3RfuX@uRe8j8q;wX5xAk?U!my`pC}ve_hTfSSP0_@%YgnULk z-&ihXmgG!KgBL_x6z!q{QhDrD`+*!5SLMHyI0iDpyeLM)c!5wj=77Okk{XNkq#L^N zXDYx>G%HBWw&1a)ZP{a&paVtY0P;cIQUP}e=@CPkFl#G(-16KNwm(I$sCjBZhzbVz z&F>hmUx-{GBZX=&_fS%Lcmh?(+sI|{_5 z0|~3O7DA?NZIdFv`RYsETU#*I0)w}ZsYB$Kf~omd4^mReU-XB?iMn+TzEm!VLu?u{+Vxk@RipnJ zmnqtnyzT%eEx{a%w$j78)V5&)FLW@bTR%~%-bv^jXFJ=uwb+J zjVHejNs@o{us{YnP*p?O&mvBWE@Fvo#AeIHf!Nr6h}-QHD_oxRuxMnfDQ?O%09O&y zxz3@ftFHocq}PO0q-kSub$|2X!Rn$2h9z?%yj$iyViSt-EAPh6OTsCw7m-pP7hliW zyml^msFbYa1g-_Y{wKU9XBe+dLWN7*f5T!tEK1B$8HF1XBK zO~eJEGacV$hg7~r>qA?lKe5w@KaOcb7dNi9P-uf6xmt?PMGqvwz-bEJTN z43#6i9x(Jof3EkMR0QrGh1NjsW@!){?*OlcHYe58;Nr-`2O2Hvb)gjy}fz``7 zVYe{UEJ0j)qzZ9SoY~0=7V_Q}rlJ^KfCOUUU6oGAsn{X~nw6lT2WDIIv0TD6M@%V1 z3A!GZ*hO}DQ{$|l;=PHvFjC{)Ng%pYGs<96k(5bXnkHr5`bCvSs2WvVMXL#1)TIw9 zA)y_C$^P}90)QJZmQ`;dp7H=jaOID%{ZC^wpeokm7j^$3MbS)Qe3Wz zDS#%_0^hM=OKrjuGMY^3SY60Z2?&x1bj%%s6AL2aUKF58G!ipHqYSE(JAqog4TYP0 zglQ!rCkf0{0g>ljmB7&jtjU&_tQ?{#A(>^{>Rrk!sbfWgVp_Q)JPKP%U||;8qfrV_ z1kQmg;ty*)8wUOvpe@Ub!Pr6^4KC^;9*CeOK8JX1-A*bLxm68i9U}`eUJQOD_&wg_ z1;zPU-sSy^=A~L{fs*{WmV}^>5hj>|Ar@BFT7w0igi$0dSy51OSbr4dQ6?tmup%#= z$FS*-Q|ipROq+H6M$p6N2RV4-)WOpH?E`Ar*^&(^KSTKSmg-zCO zgcDinp)yjB40`0_l^>Lqhvjud9@rsKxY z&nJT7ps)@V!Wl>)CU%DCa!H^mdR%uRlg`u|ptS=)US@U~T0y2K8?L8YTo700mI(%+ z)TBv8p2&S#nv}d|yEz%y&|rU}ji~*{Q}zEKBYw}SeSi=O9B?8LrX0;d80RJ07)~x6 zC#G3LS=i$grciQ`Qd*~oo~e+q;&$2<>DY#MO6C~Sq6&~F(I|jbUfpJHW>#ip!X4J? z*Bhnii=e5jeCsjT+MMri=rfy84%X0fQwleEzrEsKlN(V^AC zp601mI@sa(B6G&4c@-Y1pr(%=4+~1G@+>MK+6y#}pX22hN}yl9xy`U9?;R8%xCzk(8hTae4z$0~5=ZDRzzm|rY@)DbNr<>k}dW2_- z(rE^8i9zz6p6;pht=t8DNb4ELV@c4C_Eu^}VWO7P3oauxLTbnoT@Lz(xVTM!d5=^X z$fjb2mVsWnIs`*N3^hF{6ZIXpZRrzPthFhE!&Ml>B~ON}2t}R8t;XuVCM{@Oz&l8w zQcx7Z@~Tpm+#9_Svv45M7}^KUXbA2iSiux@DC^T$sCgCY0Dfu5j*DxuM7uaDe@@;{ zgxV$fl=?AgxcDG|8O*sVsB6JwKv@X>T`7c0sDy6mIiBh^0grW^)%oQs(JtVvK1L)c zE#-~|D?UPF<{80CX0^&Gd6xfx1vM}gysdzs6dm0vN>e07xT+*RCCDQV;inp*#7N6tA{Ne0=&f033P2D6evHtDjH{xH zQi5pZZm(uAtP66PZ^pa-hpmrqUY!qE5x4e^MUO`fLoTtC+rm}wDyMV(yslg+XOT! z?#>&M@@{FljXh~z4}$-THpXA4+U11IY^W;lf<x}p1m$f=H|{6yM${Y+2p@cjm9OWf|; z`scdnMpG>*(v5327I0*J-b)52g5jU2Ht@Ty=axPg#x&Te(VoBDmraz zJP`^q8nFN`#pcN+g8JqG7a`3iFP0)26({Fbo@3q-UTqCoJ6*1TAh94s)Vjn6)CayM^o! z>jtU)E>tCjxF+3?IWi=_By63Mtc~Lor{2}s8vKwI$NUU*CJ%MGYVcv929&Zon=&zJ z0On?|V@8f)+y)K;T8l!HF3_^*-m>Ysa6fP5hn(XTqiQhTaAXxUY6`O+5_4J7NuxGu zL+36`{23xgw18~&R!4J26maprB$djf%?|D*dzV4>qHeuj>{%Cd+FNey>quztOK-0e zd~iF1?|Ik~JWs7oyYXe>T?R1UEyJ*)wT1G!?+kk-X)5)60xcj58K!+-$inRkP(f`% zw7Jw1Q&j&n5^DqjgEhKN>F7DA6r&z;=B(=dla5ZI=ggTb1-9? zaR|5aTH!{VBHtT#pjBpD-|ZEubFb0itGF0p$^lFaFMzY%qXhAXyaek@D z385@kbG2?Nag}T%z!~ooH)!(O5l!N(ghKG@Wz%zG=@}C8Q;~&AYgDOYzi-I zEl>Z$8nU56(rAtT>0-n0b90Qw9<=OMstGBNW?6M;sR$zCW>^b+g9ZiET{sem347p`0EWdB=G`bW@QpgH!^Loe;Kp7dn5zrWTp=oBK<8t$=o-V`TLLhbg z28}n>562SoIFVESz64bRaihZ1GJm_5e>tiVNSHe*s*iSY1ZQ4iv%9V*;bx+P2Xv~| zI4z|}(GI0;>$<;JE-}qCZx4L_w8XLS%wGp2jAek{eW1fa?2_YwLiT~zer*H;v~H!N z1kwBJ{&9WYCq`wETM z?yeJl()zk>*EH)KJ>A9foYE;SMwN&I3dnfpgl-(O~LdLWK(% zHgxz9Vnm4(DOR+25o1P;8#yX;GH1>skdFkmA#{?EBuN%l;*x}`R7^d34lFtVB1MW4 zC3NX3a_d&DM2YYa#dEX|QaqdRBqcf&YNA@2fC6oxfEY1IJr#9TR6_qz3Ir)WfH+Wd z(M+{%*6Lv^(5>5&Z%e(LKxGBq6)Pr8u;B9KT!ADX6*heM@S?(s7d3W_2@?enA5@iG0n5@JT zQRK`s&{!O;su^pH3eMJYlnOQlW)r10+i(M6$Uluta=79`(jby5b={TMUU!wwx`Koq zE<2UDljJ+_Y7$c?^N3L(sPx=y)4e_tNeV~TVgyP6`*hhVKd`#WDL3633y>`V11(Ul z;Y!)g(7XI%sT4*_acvIg2K`dW-g`4NOy7JHBZ;vN9a{u4 z$p|)aQ%LAg_yN&gjC0hwOMPueRWF7lW86M~4C=T(jxglvMn)O+?7y6T3#?j)78 zdr4-QmL0Fz60(9ey=l;NPpNC0VsF$PD@Ho${a)4W06zt<8ZNt@w78EVDS4wbtAVD(vvZ#UG!1 zjy_sh*etO_cJgFrYDc^=6)BT*)Ihh^+R)#7p6I-fw(~1r$w~J3w7sYiNG@(6Ndg5@ zFAF?yUR?9uU=9&(L9_97SwMH6*9rG|5 z(xBPS78wtMFoYvy(F2xO$QT{+ko1wB(Rze2?D@xl1PYGqzGo1GWD=d}ELjsk(#c@W zP9;pNTzH;1CMgawJ+*L?ny$s3{N>M7^U2$6@RPbQmMc~VoSIzz5|f_#yvXym-Qp=L+jdVnabx0xBz5LT@V9PC2&h~u17ojKL1 zl$;<545V)^pbRClU^27T)l4VzJ7xdj<_YuSqe}EIbfaZ z7CJQv31+DEnxupbqXCPeHLV%V5Qc=8HW2XfGHrvK+^TZTl48>}E<7De1FM;r)^JEO z-C;0AhEvC07rPeOBqt@?z1UXnvPT6$4t6p>&6!DOo$cA0+S8_};s_4{-H{8ZS0}EN zXLV1*rN>lG*a~gt)2HB7B&_lzxVmpN9@|eeG19oT&De z9h*rG1Jy3Vz!p1=5=p+Ktm#efi!lGkxsseuJ%`6 zRY2AbJksC(FT@L1TeMPu1{6T+fp@!ZN`VMd!9||DKLzG%0vVergwcy+1H*nd(lUBl zGm+Xn;#-{{;ZfJAiW$yHTX{Fw6Q7Aq4q)uB&<`jY7cFSXt|n)@Dda{|v{v`j)tP|j zH<51Cq*<;zD9`^<(=lI#-qVV1vMu>SZRM!i93WTZ4Y!&n{CR~@GjwigSVbs$F0AsX z2d3}R&BuYd)H$C?C-^`mEcWE=>Q(xBQCvJ0S1Kx%J-Yn)OmzLkmZ7VfDuU`_(d05q zpA;Htxu{&pB}uGViwSe%;}$VrTeslbJsIFWnCB8Uji^wKSG+pDVyj}V$6LHgD*79fhfIYz;EgSKy?4X6Vnoyb^7fjE-W~ph`tabbZ zI0z2#z9#s-2YfQk_+pOlax3`=V?#FTLqMQ-*ydm$q030EMFt5rj0@HBN=Bxq0roBO zP$brD=xqPOucn^v{9>?tHc4``l>~A^6!e4?I}FRs&0Y4 zh#>>Q1uS&W(RhQu07ZA`F8GA$q9E`AVa~uNumaaDU~tZ(ps!PUuDI^4Zc-@U;F95oKub58nuhCdvIEB<^S|vyuuwa)!bh zkj8 z!_=as7Sj-~sNxp6rRYH84OP%!e6jK%ZSHI>4~>x_NyZOZg1aV2s7j9z3z1pAA`zL2 zHA0IBA@RMIEuZLv+QLPvE+wI~%}A7NLKN_|#w{IV?gvER2V#;GS3&09Q33BL!79bw zfQ!rEhI$Bz`e0A!wn%}0XhQ?;}8J=&M|_KteE7@^sphXl1h-#0%QOs*v}+N zPvUr^CfqHlZf2>%ZfBnD5wVeH+9U0-q9#gHs!~38bUx=m5_TX2LZH`7LVbjTBDrnro~Q@QL=mg8S~|`) z*)rPVs}}z67QE=b!U)^Iu`R%ZICZEck#j=IO3Ktx1S;U&-VHiMz$Uve72#3cED*~w z@I>sf%kZ%Qs=_-HDX&m;D2&o5tD*r;P#{^V%jf_O6V*f<04mp$x`wedc~nx(CnaPc zNbmFE+ArKrPb_U>{_w;sPpLFoPtb-?N@wpV(qq~fR4!%hB=1s(yl0mVY)mioIp2*@ zD*!re(%k$m0ppYvJ4nlPZZq$ZMXG5k^eQUC^A<}(rS^@b$}>g@(lY-%lLBUqL#UG= zhS8?rb5g&xB0d5GLSO=7;17Q)cQkcBAw(@~!cuy0erB^8Z=@(}6H3VrRY4~c{7>!f ztCsd;H?)lt5Ad~=?{{p?rsl{@M}%P=AVW`)(PWKZs#@ zPG!CDwGXf{UyC9^tJFShOn@4#t2~BaJ8@DTB^`etO>3xz)YKH+6!_wincgbYh!s)q zF_5|??2@&lKDIKc!dXucT05g;rxgzSh*7UKj{>iu2xI)-EK>hv7H}WpBYyN|Eubsa zN48E6NiFYPb0UCFX^Q4GXb3b)kG4RSf@kzeL9f(b2QU-WViUnMm=pS4CyS zS%+63Nft(7^my&|-L7?m0`J>$^kt`4gso&HVt_AHvn&5u&Pa8rT_GbHANQ1+w4?^q za?7`d*^6f~fl6Iq3H>!EjtoKxmJ`M8LQ40T{BrL^S;DPz=(6IBinAbCIF`><639pzSZbc97%WiX(2CO}9V zZnk!I3X}9E<}ZMhN*6@KA3w)lj~0U`;xdZ1iuXV_evc#&4WoY12DeI4 zL`Y zWw$*cHG1b*W>tm|Y!(1kAOsB8UNqH6c{cvY@@M~7FLFs`a&H)sYq;!qW*Vqe39+IH ztt|!CEF42uC5t$ZkeD5ncz>Cgm!Gp&V^?=VlP`*sL0M0fcXhe;bx~1(;Ua@j*;0lT0c6xX zACq}h&H5%2P)P%f-H@QkIAP8>QImIvyZS`Y$_qrxROG96(nG zbB=6Fw{UdH2>1f`Xv^|hVH6-wX|buDx-z*Xj4QZ|4ce;dHhGoz177zR4=j$4Bdo=m zM~zt$36={lv`QinH}3|O^kuq|+aBe0oqx+avc z6*lIc(~}n)JxRo;y_Px?kak;fj|v81-X>x8xtf@oD2=ioWn`A&wt^P`z7zV47dmAV zAVft#GFD-$Wmh3dtXp9laK+VT4dr^#T2o^+KrXN{rnyXn7A>J-El(PyxA`c#nO_y4 z2?K~fV#+Sx4#A6a?npN>no~p;yE6Y4GuG}Kzs>Ee3}cwgaWLdjY(+G86J{y*d8E?Y zse`vP1lmPml(fwldCgdj85+OS*>o+WwO<>+nF2sO= zt0@!JY_s?b)f<)p+OB-OmJK?{OS{OknvLVUeh;H>ZOgS`w#nu5dLi8sC*y|m>Z0qXmm@z#hf#L^?07&HA_ zpFAZ(UbbD!wu+3DbO9a>#lTlr_?>h9@C5=)_*HSuJt_0o2KSQMIjlKIZctJa~YgrB$ z-Q>BwzSVf^Rhz5Do!tNBSmt9J%GG_{mH9sN(@3uT0_P6_etYPreJH&A=;@l@GuNA2 z+8YJFNMa(-rvA+%BSR0k&I`}PLs>8%yF$h|CbU7N}Ko*`*I1d_SaG4<2CXSat(Po`NB zwjwL?G_O|UXC5E&lO7N9x=PI)lHFGd)d<(MH<*eqe?J-6UlEia_M#wro~>|iZ|=|g zD9`~y4x|MGMTvT#K)@|c3pFKbs43#YTLJ_$c<{iWs09n;bX<@}j>wTB6Ua%B06_u= zEJaXwiD}g%nUDW!&Z(*4QBDmsnEd+*G^o&_M2i|diZrRxrA(VTeF`CRmU}h)|ocV%vz-GZw8LJ&W36`k+D)0!4In*(IicVWLEv67}h`>963ygbCw0 zj2KU%Oto$)C}OvSq7o@S9Kf__t!6@cN|_~8Dy-SDq;J+-g^7X)5g#0=P=Npe?Afjz ze5mk)#;V<`az45V{85{mV}%=Uvk3Vkw-i9MhMjkQJ@=sHXSEi8(9`<+#<`NmRf7E zAs`0=)m0}@K?fnk9Yf)Trx1A=8AMQeA+aY1p6;Qv(n=M$1e1L==|rdoz4hjkfr>85 zXrqok`V)c}gfIaBnQZkSgrkvFq*|G|1y^hx>H>)_cnRRpUYocWn2Lkp@D~m&9`+() zGd3n-3A!SXf(n@M=p%)oeHIpxMGkjbYOA^ST5PV#7M}|9iI7{Bh7$VQZ^#;{Ww%}; z=T`riuBAjKb=G-=oq5{bLeZOWQgqP+=b;CZdLrR@(n;|3*%F| z*3^J@K?EXQy9f$Ua5b=fggwu5kG{-?wkZ*9H*7N$f80g`Q-E)XL@Z)}n1C~LWW`eE z3qi!ff-_F_4RC@>O|v}YAyS!YJBN}iw3?w=%Szd*op3aWG%Ps{LoX3iY=lP=;;AcZsG5i^l()PW(#cLV99shN zu&3#*B!_C79rgyMpDGw}l%y;rQea>TQ!v2`xzGw%yn+FVnXXgI$xx`wHa8hX46sLQ0TQQ1C(C1*W@kxqodjvq8fwXI zHvtRI1_9Z@n(*#v&j}t0)nmdnJ>YoCvqeM3T3bvCV# zOnML1tizFXX(xprV+bVW^tG`0Q*0;!D8B}pHl$u~6;X&n6D}Zz6Vw0(VCcX^?}}H6 zRy36tsDcxCFva2!GHPa$PO0ekG5i6OFvDc&OT(zln3@rqbeSgTWHux>s_!OETg7Ug zbH@kTMrh;AULUuG&Zl~Cof%RMOMrLPk#NKyDA3M$Dq;)q;1eTZ2d zmI$n1g}ySu6up4KC+wQn=t?)bp8x|YnQ(z7D1irUSp)@~Bpv?{m1vPA1UIcv&1$CEzQr+HJEMUJY6HOu-iBIwbX#wl`p0gmHfKL|nz*W3 zE~% z0Je>7#EDcx9k`rL^{JV$G^oxh%aFk%iPdIXTicFDw=H}j41L?rewL&MKrlgxNs!{Y zzIf1tE_6^j0ES-df&?Zo0U5|3ii(&wFhd?pdRdC(WLp2OfAGCgj_AuH3mp)@ZX`q; zeL4rurmi(zX31@|j8ucVjZn7JmQ%A7MKlj`)ef+#NfPN1ja1mew{1WJ>@34PK%xgi zXmks9VU1oq)X>zfwzUu43t4ag0#djK5g<3@O0Sp5k4?-&Zb4bOq=3FX`kPruU98f1 z)PuXBL6VjvEmv32g5*4uLT{o0+aYVeTFUjHP!~cmy~oWW0h@W^Z0v};P+pBDK?_XO zf4$tA0fRZI{3(>com%j1p;@X_?RB}9gqP;k#RFzf12X6Yenh{HuP&D;$ zf@4q$bTgd$=JzKvsFPIx1~~h@-5(FGvzPoActH3<#aqye$WQ+A%x}K)!wv(oPXZro zNW%X}^�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

    IZ3tV4|*0`tUoTHh_MGU$y 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%0ATf8h9B&78o6J&E*K^y7IE{@5~(z>P7tE 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%0A)jb!dd9*UZ(sdTepe=3}fL)vfkpOoUm`{c3s8 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

    QR$G}x0JU~^iNN0OC)?R@m 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'Ba9!k!~3@8tVn+mbS+hq=QwW(f!VUf9Id zgYZ|w8`0waQNnjnCTmYTV{JXKt+6%ad{dla=6Nz}y`^!G_x0V9x)+Q%*70QPdxuMm zqLxC2^0wORVevLNzz5A*dZWDMTkTWDrPV2iKWNYU!a=iKMst@R721gI*mqxkFQIUD z&otM$TmKpc@R8ws(ziZOsF#R@odwM(n-*4VB+amx!Q56?iTDl`9(1I`1l=4zmd&^= zE(HAy<2Xv%(_yl4VHpfw9?My?TK;sZWwh3UWH=6g&~TBHD#pU#mzJu=^^CmSR#>kg z(Z#`StV>y6Tgy1t$M%n7U2-B=R~pBy7VVo`P3FWR+uAMyt%ph3>^HL+vNX}`B^*)W zYnK}{g?=@M5Y6b%^jg@{9`R<)J@5Z~;t%m{NweL{J8#1q+;>1Vy#@XpO2?$S8NRfu z=^GPU19{*NcMg$xNt_!OcgY8ac*d90-gJWp;mp>sw`?WX0Q%5OJbS#9Od3-v2j2y>S@!m_=g>zM(xRwO>ixjm>z<@5J7CzPp(xUwO{sWCMEE z_wyFt`MrM^*2K{|&q=@fxog!UY%Yx8SxdYv%O5-nH{g5dSKs>A$A0#;zkTj^-}~POfB3~ee)5;!{O3o1`Ulm& ze)f|;AOIox1PKHH{{Soi0002=0rUX?2>$^82^>hUpuvL(6DnNDu%W|;5F<*QNU@^D zix@L%+{m$`$B!UGiX2I@q{)*gQ>t9avZc$HFk{M`NwcQSn>cgo+{v@2&!0ep3LQ$c zsL`WHlPX=xw5ijlP@_tnO0}xht5~yY-O9DA*RNp1iXBU~tl6_@)2dy|wyoQ@aO29I zOSi7wyLj{J-OIPH-@kwZ3m#0ku;Igq6DwZKxUu8MkRwZ;Ou4e<%a}83-n_X(gf|dA zaUMSx&Gj?TUEC*^FG*Z&SMh)sm<=pmm5z8rXV+t1U>N8F)+a_iyUH{U+L z|KJX9u$Lcg;Z;}N8Rz+@;9qwT*dA@}olzcq3s$I?BjP!j-F@%b#-D{C%C$j;175eG zZGs$_V2CWX^&Ng0vgh7`6t-w1TI-nzVScq0xLk@J>UQIhVF75}kq{D?Bycn$NaT}V z0SI1?RGtVUiZsRt<(5`OA|sL{#@JzyT$VZ2bW`qFrG^9ER$U-Ynki>fFZy_;k~(5H zUW8iC=_gV3f!U^*wpI5akZ^wZ=b}G#P)CyO=@^8b8saymZ7VXWsZLVz$fJ811`#24 zz#&@Wrl{HkL8K*m3hI%RV*l41go>tWt4nu?*J`ErwK<@n&CzJyt;Du89hj9`dZ~$R zW+#Yka5`7)v?sk-<)CUp$YF%d8fx1fLQ*TPM;*BFWrlk0`ksl*GIt=H20$?Gyd24P zWtvDTsqKsr0yp6q(e_F2z!CWdsj?1wt1XS}x_U+cO$Guk!4yZ7tAJHfnysPDa=To0 z0lUv9OIgwUfOSV{{lC0%{6~A#J&eZ z%5k&i=;z4gyyLJcRJLyt}G zs>pJ9t=3m|{V}1>zW+M4+~XdrVY<8usPe0O7pi!6Zp%C~;L}dm>dvn+&1#QLGh8Bh z5uXt^qXWg~peFxHBrl4)`@F=O+#BOXcJT|601&?7r6|sRsIP+uzd9d9kI%KS=nRUmD)@ zj*Fw%+}q!t(M$Pro(${38E0)}vM&2s_=PT>lo(e5w zur)1@ct@&T4gZ(Kq)`crRL^2Vw4zm;4DPT(bmQNkP`9M@9Z_ExvyG^HHlqL-@PPJv zB8c?2upg$$fh)@*?zq>agcXrF9a24> zdJ&&EGyokPN*Q}Ca%a6{6Xq%k$#}+dk{oT@&*-O5lB#Dm6O5>!DwjA3CX8i-GaN_3 zXTf{25;)N!j!i9d&HMaNo$b_K1!w6ob-htWZS2=7k2=StQU*iDo9GKw=1mI5uU|3U zA_a4n(cl;`S^&#Mv})>A#GLG;R83zHb)>UTUCugc6`%n`gt4pRIYv&72_Suu}mx7UPV_; zQmx!5Sqocva*?A=`Y1UM$lUz)Wxv?_>rR8JzIk#{v)>zFJq;Yr)U3vFaBbyC9b6Zy z?N3dVOX)3<6ye?4lC2!x>>DfD#)T^P43i-7UN(ueJe@0LrsJ5#niNwD2NuRNUTcy; zMxNTntid{_O9v)_t_X9_f71=(oy;mgXBIie8!lC9KzdXIgg44|xn|PDdRp}TFaLmP zn&pFB+D6OrOIU4XgK!41;G^Of&2zaJf1R3TA6hB92cFU0niSXzzc$Qb7N6rB2W3FB zg@F;(*us())^l~tkB}xVhUHmj*?Mu1;uBdQMr`S_I98NZ#uxiE=EzUG_J5={?5M}| zWw(Ae)i`eTrH3%+PP=)x1wEW~^_8~EZWMF7F12ML_Es_nA{S?rE{M1 zWq&ANq9XcIM2=stOLfEA!cDx}?g}ygD(e~g*w{V8?yR%Q;dB>qyGjlpwSm3F+Wa}* zV`(aF@OJMv<2u00Y#~w63T<_B8N2`1uKXq~X*jV#+X&wZ89SXmZ>1KOl>aqw8-d%* zbxHf;7e?^IjCxeh)&|}ougZRVOwl%98IbSfP{;7>Xgt4M#&(u%^V*$iY{Ti`IoAr0 zGyUU|3v|nKejkBd2JKR#73T8Icy+wXRaRmfOD8;g_ zIeRfAVsNn<+pn)XoO?I=oq65&`qtOuXxF?_)Ld+xk}jE5)ND&-{zqINc=ud}d`3U) z?wIZ246K&DQLIJv8jkL%eVvl#2nBa^YaHM)&3>+xew!49nBc)yKL4GPgLTwx>%A&% z-^x{gIIn9q$zb2C@P)&4Yg1bMONnLf&6w=;LO<(%Bv?ddT-ygtsW*3L1x?+BSbg?x z_=gns(n(mCN9x5k66R&f7EgB8YmjDrk+*?`G6?lYKhbi0wUJ{FSQMXt3WVlChQ?yD z211c!c+2K^8hCvecXYhhAzoxE#kX83NEBrBd_bmYS*J_lmRXupgI}j)O^9@RCtK0P zbR-B;aFTpMXcJ&ndry@#Y_&)%wq6XX4asOn6;gMs)txVQcsvr{;PKRfX9`hdi+XkN=fZ6SQL0cVaL{gFu&c zdM9=omxJ=heP!4@Zs>Y7_c)Ab6Q58A-^OWpNP&7(LJ{R&}(~QwPLLT_<{z2#BV4i%~d;c_)Q!)q`J@h%zHr*%5odxDrtm zgY|ZV`zKDu*dbdKO468T(RhP`*oh#>iK|0=PIgqshjZI_5+j#lUASfgwk$}tjPLi4 zDkqIz_kpNqi*_a)&+;smSA}u-i}e^1Ll`wF6KncjriuIT?+XHIf|(esVaJCoyG2_;~}Blm-QkaCd7l_IU1i zj_CN2XGxWy2pqm(g(i8DS~(KJ*p>V@DtV(U{MK>=mTom!iB3p{X~}zN=sh16ifU=atKmSctNUE0@<2Dp}+S(x+nFx~Y=Kq)iFmz9h85nC8DwPBR% zWLn_!n6L(wWjSLNXN&JAl{@%}Y*~|s$Oe1{nbsIBuydLjVF-^XG9ILBFc^AbIF^f- zXz*uug;|I?xrUy3jy>rwC0TQDB9z4G5U2QdB>zWs4+5EH=}7@;cdsR51&NzE*_qV| zO^4VwO7walhK;rIofDyd6Nx-8^(icQk-K!2o0yi;iHo1Ole>AA0vDPRB8nh(RGgrn z7SU~=1wrm~A4X}O!N;MOS$7>-WbRpu3L2FHDTS-iI}d7qRp^}*Y7i{QME$9Z!}Vzq zIz&&1g9*BNf@z(EXrg}!g3Zx}4_Y03W}k0^pAPw=0uhnVlO)q*BCg{wNJUhjrbX*{ zfKOSX*mt7W8Khonh`NY~3${=b%A^i)N7f;uj3kya!lCHLakJTFVcKs!>YhG&qG76M zf>0iO1~#J^2;GUM3;|Kl5+kgMmm4al!2d<31gMro7l=~{pLzr8(tJX<{6w}JO&X`;~jm(m)o-czlA>YJ7~if|$UpgNT0Y#rynLPM`~YOHJnVUrifZ!8p@~?=b@EIu#&2!c{-R0`=uw^uD&^ThRJuK z>8G}_sldicgX*iju$rnVfvyLe?f+qvbM}1z!+=Luo!bY0+x4upx~CIjSrd{(?0T5M zfe-cxmw}L<-)V=~q_dP+IWZHdPuY})<*Yucn_N4zM$4|w@-Vl-I6c`nNBXc4YNlu! zORUM7H~Xdmd!y6Dw2o7s>X~b2*q%0cuwW~VNmR7%YO-V2I|gF1-8Cx{Vz<`FounA5 zR0b(>WV2u-vrmewHyD4+dZ4zMu(L|E8+f$QN_kQ!xD4xEeCC@H@_kkKsT9hB`r1CF zDv_AmfP^Hj1iEBe>bJ5AwxUa`raK|Ql8^>c9tN@+&!Vzt@RlvxN@vikrpkT=X5x#!h6t}dsW{B*w5KwcBj>GfWx24) zsj7OTX1Q)$%Z`L7vSNF_f{V28LBK#lvc-G2Ge@o6_fdWGEboi0Zv(a4$b8B{Khs;g zWL9<*BuAY?r(rgt>DV=wO0oh;xJ8@7gqx6V!Z_o*z^A*i6m+E6`n+=)o|fx(S$Dl} zC_Z?5n*j&3?+K~B8>WFfb~PEc*`dDV+roM_w&jbwWm~d*#=NZSvX2XlZVM~3+pt(82^EzH8YSRN45 zgH49EtGlwEg~b#selc66lDoD|o0uG#fa!Q~U(2A|yvUde#RcrfP<*(@yUn$Hv>=1D zwhA#vTdj30%o0sVBseT|*b94b!E@Wp_l(bY%eV&=qSfrPf2+htJh&+W$K%Y)m)y;7 zOun>?#8b?|4*wm+)F{lUyS%pXmR4+q*mgfbST3ea(Hxh`or;;Bh>Jsvu0}k#OZ?RL zM8LM}$Y?Cn(kjUZoXeO@%WlG_pb61so4QBZIV32kdW?S^AOX`GrA=GC8tZY+NWLE)ZNv$Y~6u9 z*saYu4(#0J9Ly>k2ssTWEPK6l)oQ(PG@NSLza7Z>d!us=jRy*nU7OdV3)Kd!8VTv& zDH7s-9n~W)$(hJ+f(kH#s$47XI<8}8$`zV$;@zEm*;pJ1Kpl0b2;mT}*%}LJ9_*3s z9kPIn#JnusNZZn_t(H#vHZAVr%4KG*vj3w1z_dL@#0&a95CMHUVa+|Pykmx z;}81DXJFeqO|NG_-torAzRlyETD^43-Xo0MV9K=F3%@DO;#L0Qe_rN-j^$Av2v-i~ zQU6}(EY9KuK;>8d=wu%015f~yK6ktVb}$JL(CL%F0i6y3l|JT^Zsxff;aDuO zmbQYH+v7H#zpMPgY@XtRTI;r6<;gJsR<7l`ZU9%F%@-bfso~r zKIxNA>6V`9m@ev_4(iqp0oMKk9I)-%?g$(p3mo7GvH%orj3IFQ|Pw@8f@XMa? z%)ac-9_gcA>C!&!oR00BzU|nK?cBcY+Rgzl0PZGF^5BjQ=gt8t|LrJ0?j>*X=KqfF zFfR+`Zu2;=?v9}IvY_)iFY03+?`DqR*PG&Q4rq}u1XB*<0}tZ^kkL-R2dFspd(h~O zJ^)j109n8F4d3+#Zy(Pd_G1q17q97Nzv-O5@en`@9}nu<{`Mpv_i--^Z%_Ahj}0s@ z@^tU=CI9UuukCiv_b1=?dcW;<5ANT7@_QfneJ}2RfAcrL?&7ZQJ%8?wu<7qU=EqmI z(URatwcyRg$3b5QlU@g;KLn(2^`<`nLtym-@bvIr`tMHqSU&)hPzM>W>8M}_sNm_L z4(cG^_S)_U!|(STpzbe_{K+p1D*yM(Px8zE_bC7OH9z+wkN9{`_q)LN-2d zgb5WcWZ2N*Lx>S2PNZ1TV#5xT>TGnQanhSfc0QtlK$0YcCnzCAh`@m*rwE)JMQ~Kp zrp-u>WaX6AQ)f?~K7R^*A*<+7SsaRTFlzM0)1^+CzEG;vXjQCKuO`LDp(|4kQ<)|u zo0O_ov^~dy{R-ACS+Hv1&SmOoEZLeybr#k6Gq27@JsUYfWv4)$0tEsEI>Xp;W5@$K zT%=st@@34KHE*`u0ZgP`rc6Z|9VrqF)2UPUQoS?MPDiF)$EKb0rvI$lH~Z>+;i&gg z-yDKBqDs8#(xX(5PQ4mcxmmVh!$ME$7HeGV(x-3d>h^1O@Yw0X?OPXjUEjDJ1r7{Y za8C$^5f3mBXb|Mbj3IF5-{1d#00Y#lgHJwVEwds;@#S>l3&P5qzv=ck*cER({?RLyCL%b|ZD#9_-TmNrJMje4*l1UPyFTchH z_+&~;e9v9@)T8c+V1LG{)aj$#6VlO;u-yZd$+lK}amJ(c zv=?(zZsF7m?`GL$7i*T87U?+0%5$4J@ceDkOV7E5uu$g!b=6xy8TH8TPI-2{EiW71 z-dbH6DIu}J?a>14u(WaFi#NVM&pwIdYu9HF3-dke^nCiNs2AOI7g=Au1=hLWe*5mf z_kMNqwKuCQ*Lb;(6`UT?c(Vijp0-xD%-_0D^AlEjbq|9=2l6@Sg4S2!QX>Wqw(_R5zm;XLgxDFK@7-0xY*n&y4V1(#t*xooH zi(Y&}hBJ&|48agU9Oh7m4IKJIldirkw5 z2d8*NEbc;!ve*R|m&Yz3=0r3xlpz=jRHZ7J@nZz?%nsf7MmYNC6IWu{B!)-}>K*Zj z43t7x`pAJkwm=G~t6~cZSw#vmQG(>V0XDGFNJmCelGvEx48SmhPt0Hj{flEKJ^4xE z$xtmR49_UTUUX551Kq_9uoy)lgwq5IHGvQs+Rz>d zA)-B?XhkWyfF3MBqZ?fS0~U~nkLE$7q!6h{-H``(G$RiQV5tK{Kml(oLK)A{LrwKi zic-J>7Z$L<1Y!^X08Bt02T+0uIDxTzCe@h41cPUi2ZLwA;7U@3fi-$zja^`M7d6o4 zF1+bY6iz}4Vl99a$|{8*pfw0|E0S`a{3Pi!tJh&pT zd0+rxUBLi%xWXNUWk6#YAXvzP6#t|i?Pz5=dRfYD)T5FuX&&U@Svjy20S<7$2QYz& zMJ&RmH^nI~cIs0AtRS{RJwOghPy!Q7A%;rj?bcxMTT`4MxF;YkahY%eF)%^7%dG+v z%Gm^Uwv(Mape}VK!2?3@pcFSvZEC#%f)5}70d$xJ9atd;QpiCL!dL(_9?$>**h0Rx z*u*Ac(T7-Uq7bo&1uXb$UjWm0zVmIsUi%?OUl@eW>%vfrSOC~N?DMG z^rN5UuzKZyfCM-I1gAZKYHfziL>3|OxQX0t~BD$)fzSkRKKETJcBS@jb&gHq7A|pwjSDGY-Fc4%pY)oc*jczGpl(4ka&Qb z-&|*G7oxt}-YEt00eK8vw;@$f(uL7k5<^S70#@@HJV{VbJ(+H z1~CFYFya!|l+vtK@&5!S5Y*VhSjHegfFdB#X7~!A)T15%1njwLjQ__3GOfIjp(bwutX0=zC}U_F>N2p0k|o zYl}S3ch3)CbGj8gXsE9n(Db%&q7{Abr|a9p382GhMNHyJ-<065jlqj&TZ-DIz~RIw za9$fQaRuBW5sA1*0XT5+jOYC_S@^*!R-u89gIvh79(k~J9c;vBSr5f_xgNfJS_(Ko z1>=2ov>)E)yxKw&*sinCwH@^Q65Z%Nm+!dC?N@ZG`|0eC`hyES?+YWk>R4AdNIR@v zI*3*U|1R;s5C33kd02qOD*);WV2q1)at+du!)Fa8TX&LcgZvxU=ZI*md=Li;S%i@MdLItYwFMUyN? z3#|`B0RI(`v<=jQ1CTKl3xNQbfEQZkMaY3p zJAezQ0i?n~Ni>Kra4Ek7Jdg`HkRvuC6vD-8KlXdSHs~%e6Eh~PKPSAuTbM#@6T1KF zKUcIfTZjccD=?-rzyln^&mzOAQ?LZ9H#7t+1-m`m>o*Ytflgb5cKE#x{6IVmD%qL< zw9A1M2(|aRh4@-Jwv#Xa>x1dj1Y%Hx6hOvCG=fN+M0D(d(gMFn_`ysRw({#lA!I*c zb3Y{112B`hC8WRlTQkgC#m!5E&a1*g2)ZlGLZ#!vYV)f;g9NPetON9{1uUtMGD8Uq z#{a9cy$Uq5Hrzdc>ohr}L)Y>t5j4IS^RyCJI~3%(QhNX!t1~?C#zY_nIvB@B?6fa9 zM|8x&O0>jP@VH0N#FdjrU@HYe_{5{Usm4pfn439%OhqWPv0JbOffUFp>;tUyKW_WK zJF7DRTskk@CTm%rH z02P=#I#2{ugaloHI4PXFtDLhw_`F!;wmOrugzUo9bI4qjNH8?Z1`9L|14h|f%l`xe z!vl1*+!L=i)IgA&!vk%O+X{Giwwqd3r3KFggn4Go9nvK;=K}E#^2K^XUt25tF4A3 zM8DL8Y!t+6BTPIFP~iiEx3AHT8E!$FrQG3=c z48(wx(M(VPT}S~HP);yI07m6jz3TxobHhlj%yAvc%*@nGy|Q%O)OD4^(*l9fY`FS! zI9+%+m!#6Fyw`5T%GV4!*`zZCEj_SgNU^+C-OSa_(l9{dRpD&Y3{6;#vQ-Z)#;z-^ zo1`?fD>!9cR_heCDTP+R95>DLziLf{M5F^1NX87@QI*xZFX%eSWY5YJ(wODMqRh;j zRaeh!($Hi=pEb=jb5;SZ%Bw`$Ek#;_%vYx^w|SOrV0H;>(SdLVeXg?<`EY)rAr$+5cq31eDF&yz2m#1<}cr zRKUH=B5mF)V?XF!%EQG+C*|468&zlv+7o=-xf8mWT-BsK&@9wK?QDPsO*e;pP=Y1X z3SB+XWmApfTGQny1oTjxt3P5b)=q0xdykgsEy|&#g%v!hwU7%aL z72a(n-c>W+HVjeaZG+{lRL(qCVKYilL^k|nN+;#d#Z5CvAjG)iUhlkDq-E6teN}AJ zv%vJi^p#qHom$^)U&`uLtyR;%I=6G1-_12nwqsfvzDDqOn}*OB~tmU+5dBmUe9FGNo!Z}!d}!A+5pvr zR2|f#&EtZ+LZORc(hEdB>$9$H%VC^a&~;x$>tXmM-O~M4%^l18g*Ioy*0JSZ*o97I z<+KAZf@UpX1KvVGjY%uUV!33vF81QyqF_n3;8pOl3?9-?&f>8h$re*q z+MO{`<7H^gzxfKtLY>iC2uGVNF@{T7R8HmNbvAz!fko&+#~asAMAr^pKh89^?P_D{ zePi%Sfri6g?X9r@o!4K^f51*je52Q}nouF%jO-OEZ?Aa>+6 z?Xz0l&<`zQ{e=e;wE!m8igtOBMik&t>q-F-q9pzU8c4au7y-3)bDNKqrF#%=F*8y!CPdr8V=To9BX}JG(`63 zH4SNLMm>vG*wmw64@E^c%mMvv#Qz0gO-@?^e%2|hX>*R-S}1~={74XB1$Xx8p9X?r zM9xUX1aWn_Gmho;OV?2R=hcEar&fWk8`U}f!v^49s|IGtP1@EZx{1DA=o4hz97~P- zTt>q;Uv+EvZR^wvY192Hhvd*m2GO`|UH^E1T`B-zy*z-I#!i{;Yt0kXU#`}`wo#on zWyFSOVRg32Y-KN7ge^0+`(!^*L{}}VPk;t9PvhBKF3mJk+W_rlU;f^#rd-lCZO)tG zE>vwo=CB0B)dgd~k9KRd?(biv<{wsAK^Dun&gQ!AwATV)DnJ6_1~sV!NGg@$x3%iH zErM&!Ku_c1=;ke;=Izp=0LKnW>~_C#%oJ)*L-q<=3Xm?IC7uTou@}R`RV4aMDFEY8G(*7UG9pWx5{Q*EKji zoB%55v}!bNO^{crOoX@H1c9tpJP6qarfUr>?4DNhV`6jFy}+0CGRFg95U$TV2k3yl z<$V-Y&Q48)w&NOKVL><0_pZYD{^J4MD=&0VLJn9p3@PG#X85gbw+?Vh=k}&M-_&z* zoZD?kt?S?Zz%lShTg)I_Pt@3(!CJ#{a^+@f*KV(2MU{thTS#++^-tLxxC0yE;jibVyh7OIKLG zO8K`=Uvr;pPCo!-HOWwKaDa zdS18lgFjpqm)OyC@fSzU8k2FW7iG||ctZC!Kh{@cp7zsK-`&La*1xQ?NBgsHYuaXO zbc2114)@aqhy{@3&?!g<0Rj~u4lryePu_$HD^|#Zmm@_9Vghby>ZoZ`B9NOthQ!kc z56VopbSY8@0)z@WB>vH?Y4aw|oH}>%?CJ9-(4azx5-n=Fd|;rb2xK z^W9|lu&u<31^+a7@BoDRM4=dsqBLaG3rdd;ty(hV z$f+aK1}$fxK}88cQ-;Q}!&eUJl8a(H(hmtA`K zC75CUwEvV-O|ci1R8-BUUsqj$#oqz-En-%HX(6Bpo^-sW%LB{NWmjG%J@_DBg7HP+ zg&8Wgp@)x!D9VVTrRbSwC~~$UXfLLQ8fmS`m??{}*?8J)mGO8`3M%yGTX4cnK!rsm z=pxEonh4;LT_S9`<0`P+f=8=6C|`ZF zOW1`_M@_GXwc$G=>{@62@7Je2_Sk7+mxk}yUFWW;jRK7bRgXVPEKeE{O#shvvJ$hg z-q1zYcP&L6q|oMCBECKM-G>P?!=%=o;wE=@Eul+?(z+6!K4FFO zCWikEy;R3G+SUBkFU$BVG+u)Y?gsWd$RG?hEHWFw5Qw(g=m-+I+0CjL@(_qjAPvpa zg`YHWi(5&rB-4{pBL23U%^AykE_@*jk&+(Fgbz&!pcW?NV;^j_iCg>ePgwv26V4e3 zE`9=3UL3S8r7ev@PlK9||>1Q+<#1uyg)9iaq6p+XeqF!5TH06f5$FM>fgY;6r(k*Ri@Vck!qDaN5edvF@gQY8D zDWXuN=8OJIV8O;%HWq2BpZyFG?1%?A-vEbV7GOw{nu)jOy~k>Nwg4arv@$@%bda>87l)RHH+kn5f2x{FEVxvs!4%|h>rmxWNtzg0S> zm5_2JRIx^x2TJgZjcF9_3f8+>hU#m#Q94M%o0BF05-DRYhBJ&5#U&uHihNJW%30l+`Vd<{{Ez?1VsaIUNEdtpZzq8& zo%%7&U5KhshB&(@{;3kH_o8L&61_{=pjOEC1tWe9*5k7Y?2ECHOdiDAqc$q@H$pNn zf;Yw?JN61`NCT;LumjTtTzJf`esxX2@P!UTSCKHKmYO5iW;WYYo!|Od3h1oKxJ=e) zd>L=)N*5ug5+YdDGxw(G?qDn^^Nj#8V+O^a<-mYaCEWk{!yK(`Vs#|3i45C*ZBMKkW*3Q9xC#;k1Su?%{_OLxy@}6kXx546Jtu^$Spwb9CSI@ zvc7Ub5$ZN)#4En~ECoa3`3-qAQLB-LjoeHl=WE7B-5`4sg-?MhSFE#t>rTv{g^)pU zDHfW&XLPEyZ*;~+<5-IR$1y+UPVSi;f9+q8`A^;5R>T}Yr!kN5DS+QqnF5f|sp*lg z6ds;TU#nRk2O1I#SOEe!p3${O0!W4Aty%bm-{s*{oShWH6~wIkR(KiBp3RfH97?lY zi2OZUVyF`RvDZVT&7qCT?Dd}!ZW}OFTipGak~RMdWDJj{-JNd~AJ2i#2q}Q_or{Cr z5rko2m(jt`b)Xm)(kCcE0tC|IJ%!^uj?$%I(-B+{)yd{TR%HDa!#S7|(Nlzw5+51{ z{@fF1B~{eW9}k65>ObwMT>OdS`Ilw#7fzFsAIQEJiN6ft7$@l){pQ`|++XIj?4WuPVvZfu{ZZQ7W!p6lq9*)b{|I2U^$SfeL2sl6qK1E=iNePx9Etb>eQJz&` z4xRiF(n(!H#$W@`1w46D9%3C~_!%;G9cS?%4_aIy>e&6wmH~34H73SKs^x|-l~zp^ z0lLUH2H;ci2txFRGU)@T5rf~MqX0Yr8BCE~{Dm=sOd{0PW6^;;_9SDr%qQ?boS~sU zMwj^b;|UTR9Oh!?m<&v{O@VAuu>t?pNthm?3`QT~6F$kG*A3$TU0mxK6fVIgN2(Gt zF3LxKq{x90-0cfV&QffA99`y!N|x0{Oc`AyUlDxHyN#D$NQn#NNh(w`g8x8ibCJ3v&n~RwA3BoY!HH5ns8av2CR_FoB<6@z^`>hK%mLD+ZEYG}GQ>q7mY1d}5)10-4mZmJPf5Yr|;D7&F!0~7%nD8NSw z6?vr#N*I?xuv&f}A#rV-%{uaX2V5 z@uke&f&vg*FisPn;l)Zo=ZC5(t(r$K@IZZ(Xd=mC@Ri^VC1noT>56I>)VW}vR?r!R zCRVcJ4W7+D^S-At*Km z0}aHLa+*1QB84i40POz?VGasPtb{I@r*zh;za|A3;DR3H(7{C)L z=J2U|nCB)j$5py2>6zwM!k?k?=zId{GBT=II_kDDhJRw?qDQlOj=>ToRQUgDOr@FRi6>44h$VF=*ZSh;f!?{esxcBOVHj19maUDc=2up$eOBBQ ziRHG6C4hP>%4W!I+KRnE6mRw|@-_vgOsTpGXpXom9VCFN^hU6q<4dlp&jzEIzG@;E zZ9$;v<%X|N^nxVt%yn|^uI^(X%_**V-@*#fcpe<*cI_D@Na&ba4VoSf?r*eiEPdXt zqAqF=;@Gvi?b_CD>RgDD;%)zs1|+~4Y(FBfo295JH_mr9RFF-`P>1z6s8pl_W1@%kcV=<4vW6!J@$E-ykY z{Z8PEfo+56uRTGl|IY3`HL=G6Y3?dU05fA1KhYI`gh#mL>pZC!YerK{u)q9RkTEhS zvMdLaAbEapUrwmcCI<-(?Ozj6K1zbd^Uy87DI0-JN3x~3W9Eid^{<1IYaVZRQRSc0q$YMANj;}6r z%@Fb-?}{LnHAD~By?FERE7ho&MgBQ!$y!W9t0FgI;6!|6Vj zNp~V8wdC+2U-U9}XY@wbc~bKb2g>W(lRZ)LBuncO2Vyg(Em%G=C#x;WqH{Wr1o5)7 zZQwMgnsPi7RJPUg-$5d7k*V*>7#kMye>S4Ug zh2-sDQcz#VB48JgX*dQw6U`O2>l(R-_0|F?)-nhI^iWZ^b+d$IYxj1GuVsICRl8}7 z*08}+t@N5yX#Ww6FEiB=4}1sl-OTqE?zVxWCMEZ{e#b%+f8|O0cYHS6eV6}I$8>}} ze~6BR)pG&1UzbSN%rkP2Q1L=b+o-X1D}d1WEQk9Abra?-KzBllf{2g!<#x9P;6hcG z#pZH0c@yPUCje+WfCxB11uU}<2U2#j$9cxZMi4b+MN=sqvBVX5kN>aN#UGE#wl`by z*#dcyqh_J*Hb^wd7%RAP_w8`sbYM>@(J0tlGyp_73?0x)QQty^3Qg6?nCSpU(OOV; zqj?KQLI8vSo1gfbbG9t<`DfF4oy$0O`f-gvuvsHfbg=e?B)X5o3y<>m|33PFzjaCb zuZ|x1yF5oI-*ZGUxGCTCzL@09(z6J02!%ol^cIActGb;f$MaY$U{L?}NDu?Eo;j^2 ztz}Pu1%P)|Ts52@EI*#%4FS8JpOjD@j`MbcU*=}q}!}fjyqQ%ET zAZEP(ZZn1G=xQfk|!{;FM8KIyT&)V z=!bryLnL9e%Z=`Zw*NNCPlmTc`Ey0e+!J=)|K$TzkgO{}U952tDT$aW&3Orip+I&8 zp}@}f~MIIn_}z*qmk@A-^-ZbIG$<_G$M=!(ZIdt1*gvva)0oBp$x zJ|&A1+B4DXwm$Bo``UQ>lfx{)KzOa(euC@BZ2$zMTelL`(j-8XE=am`5xb?SPeh4@ zA{N>tanmLRkT{B(@(*N4kt0c#GV8w(GxJs4MqX!cR z6$lW}F=|v!QaVZHBv_gt0fGb$ph~5xqG|#;2$VAINbLWCfPtD4mEDvmW1ou|*|Lqb z=`CEj$l$(>g)ElcynE}`&D)o+-afGg7p6$@BH@T@&nD7z@BuMV3phfOW0@(_JelQe z&YTC*f(4=;gcbYnp{82`9*7cESroxqjujA7sF0X~M0g}lyx8Y(A6vCKqWD-7d2;2; znKyU-+-0PGIVbS+d0-Ky4@8f4&AhZJ*Q`{dLM^|QGabv2Tt66F)@&lRZQI&)J6EpW z{Py+#?a%)$iv-++BEkp+4kNYjXzVf8TH}bb2s!g?vjyZ3Z8T9(c%XsR9{cbh)?VYt zA^2`lAfbgCQsAuKD5~hdwFIc_f#aaN5yu>L+>!ssm0$p1g`6zl>8C{w_+Y4_x|0Ju zrnCyrJgc%gk16m%V~@1c$b#=I`Z9{^zPIS&Z%n<+-0Mug%p@>C!URO{#oiV}%dyo^ z9C1AfKbtTq3q@-$EYwsRRKyV#kc~EC7NTQC`Q$7RPK!1XKv76)>=DyUHQkicl%xwX zfa-eE13RILQj$pt>Ch@GsmgPetEN&-YCS9iC5x;sy{s?4O~&jCFTmCWFipDz4Dd}i z5rp$M#>#3ivJolMQ%}!2yYNp98_*Kh1`CBmfh`j`F-3-S3D;3Mfx8H?NnNwl#!ls( zm)?45f?)+9g&fsL?YKi~semICZ_2EidXoRME8Ei&K00^3ZxdVi^R-w1EJm}~yb9TC zuw;W%HcpHdeDCQd>oX1{()K}E&sQwq=DkFsI;8$5iIAL1_NSw=u*|G({iSd%yV!za^Yh%AQ zo;#L83OpXpWnXL-X8}w;S#WDPvk?E=(Mn@@=GjXl$VAB@QG`)liXcl}#2~e3xc1@& zo&EORhbfXI@}+J_si)pfNr5F~bycoq%J)Y7+sL<>URiQcs+M43Nrh+B?X+(8=90CA1Wd%9p0xX3q=4Pwp~ zHQU_#c-TW9lH?}(3eu3GrUxS-33aK$T4q?)I;dz3c9{tc0aNoB1bQhhxLaT>6xg;0 zLJ)WwE8ZA~S3Ck44~=*Ojs_Fd2a-AOT@bR&5(PJ*DUxPegHqv#VivQ8-NH7E3Lh~v z0W=$8&@jHD6lpm3Lq|RmbdmoUT_#o#DyUuO0H(?x9h2geCwa1eP1KVK+k-f>O{l>WR;L@>60-eP#bY--f0#vWbki93Dccnm4`432lqJMKD7s!cX!^WqzXKhn|%P zj+(7uwNVH(710oa1PxLcvxs?^oYSex9 zQ>hMwi)As3!7*x9s>53&-V%z?z4fLs&)OCKKNo=nECjdK~i5MoApv$dY)(u~svR?-DoR#TmwQ z*7YuFERp}_p{O#7UMJXi3g4A!#$^lBBawGgmaSIiD2*EFqrJ;T4>W+%m)16LzX?;n zjuRI)MQ7EJ;$`O^`^WJd^F}pc3$v2A)oC^{tmj=>roI`xa@O~*tIBJvj%-{a;ZXH z?4Rm7yIXJ+-XVr}nq_?#6W`@8+4shT>Mt6FqdbhXLeP#)plZn?`{*13;0UF?l-7w5X~ zx*qU(eeLX_pG<#HTvd4tp0LDf=vGiS{%dlI(0|{3!Yw^G#Yxj5 z-n8r(R+*{MUP5fSM!I>7`|atj``xD)V`|bnXMrF50h{-#0#7v_1VZ%Z@Vv%6dTi~C z$!I!66AXgLqK-JIuB`~^>I!5(<_a0M&-=j713ic1V9ML{Wx{>}r&w=r&`q@nXYv0U zZ!|W{@e`T3@Z3~5IBZ!q1>oW)(hGQOFXs$@m$57?C69J<>}xf z>SzPna*7y;p)71`uFPZux3AJZ&c~aWs7@E$ zOl<-3U||NLnW8RoN{i|sp$PxpO5!ka zKP=7`WWf`^(O$$)49Rb%YKp?rkCRlf4cD$2;ZQ?n@9k#r_PFnwuBjI5Z3FKx7xfR< zHmeuW=>GuHc!p0-n$0m5sk8`d`H~R<6Of|hi@r=L0-ep_D3OpHP4mvg7Np=4z|kY; zB@6*z1i=a9e8QX-0R+-1R^n?FTN3RWPs|o89_3L0u4xu)k^63P_inDTc8(AKv9kga zZ-B7I0xmL$Zk@s=N(u%6n}Q7oZA0FJ*#IdabBaA~0cdc5SqpbgLd|@fKMO&ioN5`wkcf5h4EzkkpuRDhlS{ zqLQxb??_vq zjR1zB5a`nf2XdhtDlmmjU=Ytg6W|D-B0v=}<=#&*Uklg-CSW*1HzZ>ChyVgQQbMaV zM>y_6trJwtPdiobYt~OhLsU$~Gep~RG!_5_U~tlAXLh)6Jw0zdx6c-F5ifjlMsXBJ zZ?rab)R!*eS$GR@Bq|A^Vn_>;yjN%Ulc~`G_&Nh z2ZsR-{P43xtDaVa&xB1WUdL+yR7j72SARHvt01wfC$S&sk#5Y=m(a#~q#sG5oLx@w)kg`o<-TftRimjecp zph7LQ<3w@=LSR%m^aHq4Dwa+}SCv&sv_#!8P1BTKuT2W>72CScJ!?@{c{Q^*3t;>5 z5AQ4^9)q`nZHao*P$M>Ci_~Jt6iFTMwVsV(X@wYSArN|DWW%;OAmA4)v|O(Yrb5L! ziUbo%HD(`@UE8&0Z`MTTb!Tg}XD`lHJ%Atf^+o^VGmU`nXa%-DUj#9P@D>_?y*R^@ zx<+apU}_1qViyly$>xP}W-=HTnliu_DpPDfS2+UVLeZf*e?bg00UZEfoCu*yL4Yb^ zmIdclc5Rk!MI&c*mR@sLRw?b`T=Q>fr2{?z3^o7^R=5|ypci&w7iypdZkPma z*aUWXhlQXAe)xw)qg65Fc5k-<77IlOI6eKAUn6K^=o6QQ_g|-Yfpc_OR4H)*=V_O< zSs}Lqj-UcEcq%9sL@z312T&B0q6C1T1u`{--}r|*V1-|}7wWhdWZ?#GU>9zfkNa2% z8bAmF83lx3kWX{cu#JghvuKNFc1c*BNlrT zKyI5+*>Ht5C_@o|fCStaj$8TCG3t?cP*^&SC)c?#&l@9D(_QyP^0%E00^k(la|$4 zJGqlZpaN1ljI9@1QI1t@*EIhC$ppX_rvux!I-nOE!IzO*spA1Uza62DKf%dAp#xqR$`zc->*W)A0iJu>!JV6)Cp^N1db%?l z!;f0bL)@{k+sr4MtSK9_TO62s8qQr@&S5;g(;LTcT*%+sz3=?JZ`{V$+r`b>yv2LY z3ti4VdlFC~(I>$XB0&}+p%)_I$|rq=S-HwD-6cLj78D({5q+~CyvyfV3MBln6I-dv zJj2U8%~##bd%6HLo5ky(0N}jE2i?$J+!=6P*VQ|{NubVaJlEm-yluSBgPqQg-Nk1; z*~MGgXWhIFfV}^q{R{%Z0M20A&!E~3zyJnd4-g#Fza1n98=fbj(;-~3AKcuZ8^aI# z!7CiZN1eMv9L-rByp`J3;XJ%s{MO~1yoU=`RvNPP5Q=R1Ly|Lw;vhRJ?!~5lz zJTeV*bU-sdO2002AVt9*qyL99U=!aLpL9sJ|jJ>^N= z%Yz!#(_Gb69_H1Z6@m=Pf9oENt;d|cUfgb1~-VUJi=oS3R zmA=zGJMaHNKHd5L^4lC4cgLpWKx_?a7WR4m|t%p}whkAKjxK z_bFWVsXq5np70SL_hbM26~E;UE5KKIX@};WvNtn?LB6Kkfm-Kp+El zAVA>oFQLMP3>!Lp2r;6>i4-eZyofQQ#*G|1deqnfj4V`>>Xe*xvH(hz111$1pi(7D zmo)!l)+~V2WlWqodDivMk4PRo%5UYq4qzsHGcdPu$&e z1Dz50Tdvyz1`YNij6AvW<;Us^ui zHc(o*5y)F`1_~rsZ~_5UTwW4B31yU0GWSU&5hUh@h8Z??(uN*hXHy+TtyCV0D3-UK zi)u2};&(K529=EO*?84`^5LjfegoK-r+;0swZ~ez!L?g~g(iuce+DgB%yCmb3TdR0 zMnvJ2(!nIAeQp#W9jBglT9T(OQ5Pnd9ERo?W=oOCW_m5Er=ps3$~mJ{e)b1np14lM zC!apT)aQ>tA}L^!a~TPjk_0VkP#g$N3T?E~K3F9Lb-c9)wzplo$F&6nI>i5;FL^7j zxZ`??F1nefo0FKNsT$N!D55vit7{H5t7pLC+@MBEOZ^TLxr1(8wmId~(Uzo_yPnY4vLBjQic2 zBF<`xSu4M`RpsZcw_-YL!86;rBd=%mR|mrW-qtY6yBVnDvA`Wj+{MMk0f8(Ye+_on z4pE58wI-tsv&e&vEZ5q?oqV9la#loq z6*JU=%0-~Wz8OlSTLoc^*C-5%&3Wh3elp3+ERW1~+C%DwGU@^e=$8NLaTQDG+lk6m z^4)mbZgSrK?OwnTKktE)w}11zE>AqidGoph_zn~BI5J&$<3dUe`PD~GJo#@EE7~N+ z5NPaq_~K95i=o#O*>?2FmPu&Mdk~0&*Tx6J5I(2_b~szID40DIQjKC3 zJQT!ogQV5P5Pxo=A8yn~!$ak8ZZ(wM%Jf&aAni_XM6}KGpmIFH;pu5 zWI@3AMGS>8Lj~AW@StYD6t+=~Y+NJ?8~Gc2G%{j!jAelgzy`Ny@0Pbzk}rXCLMieF za&bgbF^M_BI<_r>>FbRvuXi=e6^Dad8-*h*iOpL_Yr9OWX1X>P6mIKM9a14q|y6jS*$fBC{ zqParzMJ_HcG^R0!dCND>j*(}u7&V)OMQw_7q!Z}?2Q>ewNiUMqlj9VpIL!&un3l6V z_OcBc4IoR0$`hZy*{MGBSn6X+QkklCt!y6%Ym?h~GTjcQdX z%0jFDb(K!_E3yVc#VR(dgVzkJV;$Q82%yxgFMVlC+ltxDY8I40aYIdQ8do;T6R39; zDp2zo&%PFwm4j{VBCQv(qB`@D%xYFOo%Gn;e)SVxMC&(wyHZeEcC*AS?q+HFR-UYr znQ$C!Jx^QOph|a*)RnDOuiHZI)poIqjf10f3ts<`^7gD|W$AE-YuxmzcfBwLN==1D zOf@Md`N@<9cd}qaYg*Y0Va&QW!fbW# zs%*8EBJq=IY{;jFOH0?^WVK1$-RgfK5K;oGn39h8t#Hd)SqjTIrtbCZ7|-d}wpw_` zGW9GvVdSgWJ<&fHBC&~03}6UEV#Q3RWCt2C*(f&{#^j9gi+POY90z5~6XtA8ZOr8x zXBm`W{^B&Z8_6WY;aN>?vj`)5VDi3HrBgQVmB&0|8<)AbJKi#$GmB>1b`Z%ZcC(>F z7+LZj_`p)ObDbZJ-ar3&&&AdA7cDJjN|XP2tts7_rzLsYI4t?lq!wRf73^Y9s?@=j zjdXA&&0a8L`qHq@G_5y%Yfyq3)JHyX9O5A0QVW}Nyq)Z#sqAR-))~F7uJu|q&DK3* zde*m|_IkZ|W=SqK$(r-(u)hs91M@-3s1B!@mHp_;KDgP=Za1#m3T>ID)Wp0#@+f{i zYH;iOYX*M9xcRW^Ocn#B10T4+r<`hbyL;hSmUgc1^2JE@T9Qe=!{+vlagKGs5dzob z8s1>=M*r5}D|M-|t!!C7j8o-yVEI~I&TvV`8>Rl;^;U1|?TqUjT2Fq1&qKb+-iDmy zBS$tE*YL%ECw=Muel;jn4)vBx9p?XFq&n4OK4y^r+U8d5`n~hL^RQ29yad-|94Omy zRdbRL1CM&sO-@;sH(lilhpE+J9dB5Jyh**@DuCfoXt4`kQjr~ZCXtR(!-G7^#n>d` ztDN>?7{2jeM7q>vs&dO`66RO0`pdCCW0c-}*Y}nr9J)RD)JLk=2KV9`3eNb+T7L0o zWqZQypn1g8efPL0r_y`B_NlLY=}~|B(mfA)Fy?*A68G=c?|pAktA6^AibNa|A7#Xc zT=B)2efO8$V8ge(lZ_WA-H+e-IZ-2gi>#?b-f0Cac~E5fO`2S zf)Vm$y|s8Aw|TMmeP^eAO?P15w|D@zc?Rf7vxj~UNPIJBd`TyPDQAJ6_kJ?gY%hg$ zM>cxB1_!}5f=lQek+lX80D!G$c4^mWE!cYqScAbgSp_(C*ms4H$8tz_fWtR_a%YA- zXnb6VS*@0CcXnO{afBN<3UB~|9vFB`h=cX^j}hLz`x znWT$-$2EZWYjvoErHGA#!CL_Lcpo=zC)j(sD2M{rjo~DDQuc=kNQ4$RjK2p?EC-KI zS6K@fTnlJ}FvW=LR))*ihMqKV^+s{OW^n_VbJ=K+fbj`FhkKnkh>5p~X9aWt_=ni1 zhV9sPy6BAJIDx_Ei{S`>#s`5=CxPN8e8^acE|-t_cxA=7k(sx5pZIH~7n8sCT?c8C zfPoD$_;U*Rgbk^SFgS?i2y(nAi|5#oo^*D1p?ewWj2$V7WH^KCxQ-_IO~rS4Bk4(4 z_=X0Eef2ht{{{beADDzUNtS@IaUU0p(0Gv^=WizHlO1P!X{UPx=XfWXl9;G@xp;mP z`Grj_RikDlj%T!@jlhZogodeO&K_E(mZ*%v+cjVm~XI_Z=Dri;7y zf1Na!O1GGE`GqN{n1_jyFo%K?XpCrxf>()>5%`gh=V+`ses92QGRZY!34&lpnZL;q zk#&9F*pTCfc&<2bZP|OSXKl-gI9oSBy4*q4SUnwng}8%N z_jZ^Fh&}0;)M$rw2muxcobTxog|~PtxOm^^jXo!x6WM~Tn1Vq0lgi0^Acut$$cx_8 zjNrtJ&j|mUb-AD`<%^BDm=dUY=QnUqcyo>!2Xy#>7FUq)>7fVek*`gU~ou28JQgZ6wLIFm-|n;)vA z6wwRacY*@imWYR+t_P0VXQk9>h2p5C9{HaF*qutpi{dwqoBr2%iSP-cAZ?2f1L+5X8*PLEz zn!$*dZOVHyxRe@cgEp9e_9%6i=v#Z)mPgn@bO?f{2L~Ohr>V*i9bgFeNuN$CgGH#8 zgBt&fLm7@Rc#(p-eTu4(Lb|0uX{k}kk>^RBmCB}?T6@9jd!R|FO?Q32MvY>5Z_+A# zs%ote@d=LbaTV%{i?;?($bYZ8niHvu{Fke3DV-~-a*BG9FzTY4cb%O|jN<8l+&P0c zT80=Ip_MwQsd%9=2?2mNt#^2>1-lS?_;LIPT}3yX8veF3{wr^mAQW~!)au-Eztcd(G$=&e1OinY3s zX{oRoi>|1Mu4T8PSNNb_D5e6KpB`D4J{q3Amzak6piKLh5Nn|VS&gFjfpd6`GdusY zpAZMexv)Liu>WbCep+y3Yo9}#pJ!X2KdG|*7PoxxdPw)EV5+nVXtHd|tY@mX>d2If z>8EwLb)smhc8I55`?c3sp+4KEI-9Vq*nenwpZ{sDQChL6=y>fqvXAGnv)Poz>akQC zx_|q(QmeFU@T}8Vsxa%i-=ny(yAak_goFCHuIP=jIGk|%w%iD{Z~D6vX`dx~lq?9f zOKYp7`JmY8jOtpRq8qx`>7qo+vKcz6NGiM8`wu-goKUE+{ReP^YMicEl(y@;;JdSz zd%mmLc7dv;p!>cU`ETi{x4-+odE2r1ny#aZcyVyGqS&6Ti@4gGy*=lo&+7lJskp7T zTZG=otI2t`3;e#wS*~!&tDLE#$$P6Kd%qK@rsXNWrW?E++kMtsjdF^@aUin*EIoN^nBLHU`)dc^N)#QDpM^vjv6 zOR97@hj$DIcd)`y+`_vnqN!NJ-dncZXvR9Mlb0*96x_y~3C6eTaq}Czx;nHY+__t7 z!~p2OSZkznsL3_S$Fd8yj~li-`Ny@(2O@g23+%pr?8B}KwQyUjD=YuW7+k@fOUd?I zw6=W9wtTg7%E_k6wVxctpYW|-?7ynp%Bgt1g3N-Go5~u9t};xY#MzmQ{K^p=yv=#8 z>Po?Mi_1Oy#tK`F89J@xe7FQF%(A<2{%fl&n2JLwwmk{1XzOzhd$YB?!)mOy4ou4z z>CaM%&0u`Nw5q}GyUl3qzCrm0hHK8Qd#dRi#b>#Y3A@Vu3cltG&5`S^<*LOmJhUQP z$u<1Zeu{hE{D;QN%OyRfNF2XV>#xuXvsn9qT?^5%`(#&~$&)M|{GcuXJ0X z4(!aTJcZpmxdE-dgDSbL9K7)>vTuE#iK?)M%F7q3p)#GJNvhS^3${H?x89qIP$;7A zoUn#n)FN7;3Vqi_<0{`-xn{JoJZzB~Kc+dS2GJ))alrJ$=P1`>nN_u+jK$>};R&EZu@?;5kgqB@Tn`JE9l7 zz$_TS^Bco5KEA#T-{!2`89uWea0eFM+6gS-Up>#qoW{p2+hxnRa+|)boyA>jpA~wM zxjWV)KH^VqoY*&1e|f2WMa#r(LF zYvK|-=M8(-m)+Pxec&=|&yQ`jSli7>q$UGCOyov>Ygp9ucvTb{{>YpNTH&eZ`OL=~PVSoNVT?j_+REb9Jl0(#_8P8;jh& z@8JH<;-1ss-oWe(zPr2bBi^tnkL#=L;2Ax`!#V6bTnt(3#PuErjnMIbebYz|rwv^4 zD(~%`zUehAwl3ewY(BZk?nLBdYT9Rf8c23co-pq_?t|$HJI-T-H4d9i&f?yBrhi|H$?EE!N%>KISj=t(A zPyGQd?&*v2i_QH2@g|O)HEZI$F^K>0;2MDi5klazhTuUyaU>cf$Z$t%`Gs1`* z9nPH#=k9EharPRw?2)Vbt^>Tp_fOzxOm~h z$(+wl23uXVL6InB*S&M6191QL?cKkJA0O~1xXBGh9hmuR<;$~C{Tg{@cs7nwc zj|93*tc4OvD>K&eBTpps?7AZo4~HbONF$H5X#@N0!?C}ELJF{<;X;GVI})*zZom+m zYw#lez(bI=ta_wyBs1?AWj!RnA#+cMc zjWaGI7JURV4n)$-xMrJg{)s*(kqfY2f$wCj$&g7~Ff*1}H0@}NplmhKi5tZ^YN@Ag z>6327HJVU#{S-@RVuvfSIR|@I*SG-ZTEon|F1e!-s^5ki=Umb9*w~%#_SNKW{{?u# zJki=R&q6g5$u9rA;HWlk#TU0X*Cy}uGi&9zm6EEqKHfjDK?TuF9~YK zPe*-L#QfEJ#s2R0m}_9m(p6W;9J7)+hzoypBw14jK6pq!xkFs$c-{HZyaDcW@6jqR zi_XX$A~QWW5K%O7;kW0$$c+`cH2Lt}8sB-n0gSvM0aQ>o`}?UB9}z z-c{>?4eYe&pdPhzx9UTVzSAt|cd=!kg3S zuS;RyscE}o=vb!nB==N~r;qnol)37Tkiq{*BxBQ^2XdnU;)mQPM$XVzabzrA*)uZf z%IFu>l2hNAa?Sv8VhF~ z(McRM8j*+D{0qF8mCJs~O42WW-NI7OUqWHUmb6jPj8?^;LUR$6r2DNUt=?+rUZfM7 zkuamNP^zWrg70RlMa{Fa!LsC_1!Z@|#ifz6)>?GZY9uq&x~ z=~afubZD#97tTZpr$KK7WyjjvrE8ELzx0joce`<(Q(%&Y+FEi;+2yKJ&}&-eVlihQgjAzH%eBUr zC)Xg#nTn5M^xCr6#?Z~LFk(7p}u>c4H}UPcb%)2nWL88oDwLi zgElHX-#vej8p>oS!?Xl$Q*qn6=cgsB$u;N?aoWt-MbIX72u@d^d zIsX&dy%1`)GYIVe0!sW)2gxS!ITI;<9#Pv`%>gngy1t=A1pW=#fN;einMSv3tPSuG z@U80k);&dkchJ67V!@A*uFmI~@YEJr!GCYh*Qvs!R?qsMS;`y3{9kt}h5XJ}Rn$?& z1)ZVzTRSP^4TJ}Xj&JW!zsu|X`rn=$oKl+@J7Nsq`C1J)6Ksz@IwJ614IQ465s=p}CK$G>_;b=S-Y*=%xGdK<`>q$`HQc&-PYbuc>ik!h9$06x4`Uy!y8C!p`P|iM z;@H*}b#HKP&ci5z5YnRbZwskvy0R0t9l4FmYiiN`vx%fEnmbH11d)G4+REd~y zLP1^mm(3l*h;{OEbDz0oA+NkZ4`$CNxzwZsPeClg+F&90l2Lp{p z9SoG(yz!^X5-`b*AT@#ONbZ<$Etpc*I7|=WBg1)f z>ydftz2WY=CPhzle`A6#c7`aV=7Aw?FPGsx{aN`~{D68vW8{=-whXq&G!2mS<+BOOi}1Jv9={|yMpaRFX!F7> zKL~m@nH@U*5)shD_SWY;C59`I%+AOt99_($`)==mj$XTjqMQ3MJagK zmfLB0$zE;#Nc?Zpa@%CRi9M3t^;q8IGSKXc*Td1$ux^l&h3aue?qFXXVhA54!XACC!4E zUXR;bO#xM2EGCSts;K3QPXI?*V-J?pVHujxn)<;jPUiCHyPO`~>LGp#jTBX1Q^X#w z75($(!l3M=vtr&15oA|Gb6{LfpZi{XJ)Z!-qZ((l2A$Gyb>=E%N(N-ih5#}bD&b<0 zbty$PNYV5*NPQy$Ii)3^W;qU?OuUbKYu&> zj&eEv_NessV9i^TFLj-Wa?6%cLd0n6?E(^xwtTxUYO(64D8^THu-M-V*%n?b zcdGcydgoFfq}Uk_0>*o4^t-F^4PAr;cYff@!LlS*nKOp8C{XF!^sCQoovBZ_k##2XPRVL*w(P{I5K<7*8@)3d z?&0I(n}0Xb011oT#&>pj)RUKq;-59qM)2<_YsI4|I35dXKY~4OigtZQJXf|K1T!fr* z^*IO8>~SW}y~;_)9=6xz67|rLk~i-zA*s3zA@i;kXNX1Tq@uWc`$gcW)68t%WrS## z3j8(psLDvKVudc1N{dAW2O@hWW!}Cc(Q_TjpT`2;sr|b44*@PoY8QvuG$u@h3?h^r_f6w>CyC)G=DDJbKuVcf#;&1X1n!WKqlyDs@x>QR~%uEqLD|Hk4U z8_aY61b=!>TG(s2=iFal*9Rp}19_AwN6ho>fw#z}ISGbO7Tk}%KV@DIwyd6Wv0pL4 zpwfF8t{O`H@z~ z%;D^D(e53fDqG#p z^iM#tO@5WzvufNncvNK!QhryI`_&8M&zW>j3va2KCB%gR(94L^%kw5f46eehG1Y#( z#0LongHQzqTteKh&;YlObBYFWCPM!qkX$B26(ZQPoI|Wl zu2jP-byeSzTc`2O50}O|fXpMy!cer;UJwUe7*@0U&E%K4pSP!YPkLZ@D<~1h4hqMA z5tE7gf|w-JRC5Epvs{6iM#}AkSt`@Wq0}pJ-Gyxb;8psGAXbP8-3Ij!=*^Y4NjkuOm3HVBSS*;tVtw#Jf z3mLEqNQv}($cUO$wYJ}g;&_B>0XL$4|A|In7J?z1pP~h&t!Hi(<&WcESBaNG9+NRn zCSV=IT4cSUVOb7P?3V&6Wke8E2K!k>nMX#iF3O#jhQo7&E#RQ%d)QVzsRMp{FsIqF zjk=F`$F7~nP0EBur3$q`hirJn)BiA|U;WO~n`2CH%35h)e@|S`BPK2)Ucx=A!A-bU zoe$n(|I0+v#TI^n6wbp^@BSSF!QmU+?!{~!TkoBaK@;EB6w81WR{rda&5LGoAdLD# zs)xZc_C@C4G0sgTWlk#?u#(t&l3?1I9b6Krgc#n zW?!kI$CbI+)~@qWKa^;VPmjL`n+mVbX2i66*iwDLU!~mPSS}S!5@BN5594jp`N+ie?ef#K6l?&B+!bFM=zxxRi9d%pc{a z0+o?sl=K-H>b%Q>aN+BMJP$}20RgJ<+Ws1)uc8xV%z#j8_dW#Vl_vMgSSd3EWNSV<9Fh}A#< zUl(exbEG1b@Wf#TT$oX{R(1ufy{TLj)>g$auTs#x~vydxC3JVvPA`a>z7)Y&=i}Hz{DleVFuLLWYSoIaAi`CSs5^N7f*Q?3SuEBz) zR)F`90)<9YS5jIfl}-t2cO~Fu|J+Po$@ zNmVxdiNYUN7+_v3E9);Jmn{jeSox8|lwA))!`qfr1CP)!?XBCuQDPI3buOVcd?nO5 z3G{_*^rCAd;4a_IOiPPwti#b+ku#Jzs>l9Ry^jc&xkLy$PyRbnsRSo+_yy1UpPYx$ zsJ;=6FQrYvZ=1#|y`ufe`kQPD27H2bKD9Sr=%_9cKHI`W_(GB4rogNg@2i%9@(LEd z)}L36Nc`rs{8H50_2SUfEAR~zZZ-6>m3($3gI7g5>gGjJwbHPu4AF^xc&)^e%_)o=!Rx7SJ3UGeuw>Gy%~;|Er< zM-iHY0p8g-u)(sC<=Hv5(QTe~l^n-SxHQe4o4skYC01R@5q8ak^aFJC4PZCT<}u-o zn|=HhB2itb|LK@8+6;Qy4S#H>u;_$S|LQ)3=!DmA2j;ZX_K@^<*Z=hDbRKTxo>1w4 z2nz+PN13V1n}9=yD2&DD7?Lno@Jq|&3pLy5ANK3J(C` z;qz*q7H#{z)pf2T9~?PMfFKQe_71iTdcPd5v+ldmYd_&1Lij2klUC?jEt^6#C*TErKDgtvSGwmA!rKSw%$5`n)X$9JsdZym|=^GIn zED4f|^k<{&hv22zZuOjA~l_(oa>VgG_U)#POMI zuDf4j`;hhLN$TdM9p?YdjP=K~%g@aB>nj0vEz{0xtPT(+vhB0ZyIi3Y6}N4IX}W1` z(?0yNW#uMFdty}t^J)Fs$^B=85EhnWS8Q`BYy}1^Z&qR$mezek*L|Ubrh8&*7VKeM zG^2-|?ArKqQeUl0NwzDZ{cDC0+G%grLg;y|W-`79@HO>v& zEVisbUr${D?uUPS&%OI^gs`WBhi=PBv_#>jg)6*Z<1b0U*cSm2nNA`DToJ_~9 zEO4!0;QdPHts>_HEH}&p;N$r>%nuOF1K`bxH}mmG^F+7IB)82Zx6_Un%Z?Wt2e83+ zu;D}(!A2KHOc!w~ck@DUF-Blb|5mg9)B9Na7S8&g7_Xik!KgCt{RZwXbMN1U`v1GT zhirtQ!nrC5yeghMGIzZ0$iGJJKjY}T_7pirHG%PTJRem$A4dkC&cB(MyCK}aAvC^S zjYlF8zMZ(cp(cLXoV%HbM`BL6ng9ClahB<6!SRAo_?AB5c^>(0CjRb(>CQd=*j|b1 zSRe=T;FvcI-cbdH{_chQzk5g)Kt&i>Fcu-OE2iTg3GhxraFrzI9`W$* z@#k*e2;}{FVBd|?{1b)p(>n4K`On|H^H1!;&rB%K<4jMq1vh~OPv2(Yl+bfv!aD)j zGu8Y}*!>Ne@pJOervstegS*=^ql?UaSgM8#?!Chr!=`nM4c2)0auo0i<2Mf?a8y+A zTvYIS;y<|uusZ+M!&dt&_gJFMY( z8s)eD*JBLvbGY%pSmS^6!tb76#{Z%l-gg?FrcnM({d@{U{&zrh;ph1Gl<6*Q{_WS^ zA=9tQnKf|21%zHO$Z}M;H89j9UpNpc%aSMv#)8rvqpFBJ5}EWHN=z!QjbOF@LssoBAMWdSx}46H>95}z_V~Qs zoo=t+8xI6Sp->@q3|9pADoAQVTpUbb1 z*i~!z@SUkG+q+iTF0}PlZ~kKiWb` z0qo19NN(WOEOpVvbyP)aq3?GNix0@m9#=hOFMf(=iVVRI@2$kxMs|58fuXM9B8jCb zfY>9$gPVXp1&m!x!gX0;9e-RojwGL_$$!5y`kxf#UdmUyO? zXr9HcEjkANE7V1>w#w~iEd#ezkM*uTbl3#~FAS`SM~vNx4N`nfEj3FkyQhBTg4dT# z>kbVzb?c_l)V?pW9#;kDSqfy1BN4e}1J0~t5{YJO!4hnv<1{ZLU*((U6d8rX696(q z9_vCNBvHzuO-ouTmJIqGoT)>H$Ht*8ejtvz6Dv~2qBA=dc5yY^jY_)eP3B0P?3sIw zQL4I@k45k2-?S7g9=J}OEDNgl4I6q%9Mc5PvjMAupJS;> zeV)Hx`$IjesQu3!nZxT}f2R7qz9p==RGEts-}%AY?$2z1%*+-AI{BOVWl{azRxnI&7gLS@8`2J!OgbTHZ&7ybvRS zR*e*=0RD*cmY|?gjgmJ9qUXI!&`7C9s~eDlp}0x19H0p3-arAF)?@I4RI#`_2bnw< zAlQ!ww4g? zS`%qq%JG(_ro+kvK}rNg88C%p^e{*&hS>z8j+j7v8)Z<)iI9ewCTO$%ma4Q?ap;kU z0BVyEoazNBDuFh5^*S;1Y-jKqzQJn6g=)=!1%T|s0E_@EJ!!~Cq}qFO2HWZ|JJul* zsz2EGT?~x z2csT2i2L|$hD#P|XJn!d!k`VP0VaZxpTZ;p20Be-9Ig0!u=kj~ zo}s=r?8_<|jKX75|6DfgPf7|Sv%}pVjCm9I55WX%e5l{flfe|m&IH{1pt<;>l12{C z6y}^4g<#BDiq^ms5k_wq&cUJRzH133h$I7M0kTBdK;7p+qXJw<6wCw>LQ*6I2Vwyv z0;d-w^N=)NvWEVhwhh&^KKSunyy$M2cS1eBHF*-}s#jHOWXKfKOP6Wq->qQ$Cwiy> zoY5_7o!~$$_g5n%)lIPAZVTsYbF8)540MKODVY)aISk@`H_elr|qeDN0H zV$tUH=Pe-nz1KfziWakq0;LOZI_Moc1P+oQB`<)>FUS{=58Y8hFQjnl8&LiK0$y(t zNx+FwMXR;{!D~r(`6;d%Ep49dQoTS3Ap!vtSO6Fi?vnMm<-GcV(f(P{ z9!!!T2?6~6;5c70wxA${+@MOGiU3oEg{6AG-c?iOr;XXKK4%JPT@+jG8s@rK3nQmr zM<&QE%e;ABy$xCS*8llsgQMt7p{-nUDf3#P?CZgF5S+1TGtQz+sZJ1cJkgB*`qmNm zf0KzoMH>Omw-+z6kpo6k@5amI!Qh}e!{Q(rtpC*XUWZDMgnMlCP$l+m`3(##@L{5Y z!|Q};ZuEwfaPG%&?#tI4;tSE~^JnQbbjtNbU$b=$cS3h|_sE0dbNV>NTfoqN=?wG% zQrf2=`-jzg?2Z|p#3`Rc1tw~Ev(eZ{&vr&8HWcy*uNYwIeqYw7BRf-&Xr{`NKlthB@~N7aHbvra|4P4 zajd(um$Ozx6SAATR{S7k_z|L<>tVnOaj>nK4b>S8J(s_WJltm)fbBjg8p|i9!7ffv z+utoTfY)=|!am$0@EfxKA+!-jyv%{T3Nc3DwOd*RAnB~mOQ9eJkl~m!YxPv&{`Lnk z(FN)LR^h4#ftPZJkhNDn4^hI3Ypg(`zC(P~pi7xjfTyd0!&DA%*+VwcGbd||@wPId zN_3;zcMI%rMn4aq@eAs`jP;UB@F!gLMnL>$m2;oORY1tK;XUNf);qkJSanbG>=9C6Cj!_iY2}v9o?+M|$TriLU zxB*XBSgEAGOm8q9OUsKGwh90sBKg$;fM7|KKmH4Y7R31R2Q1NkxEmyH;ojUTS7R9~ z)t*CZ$Oo4B8FW%oGqf^xemtfq1LzCobKw|qQD}E{Z zbAgDmJu}mMh^ixc3f&A_naO#;hL)O#wq$fqB2`UpA&|PE3-88Um`&RK>-X)`F!lT?J6j zb!&gfM9T;yb`SubvI!+f{tIzc25q1xzXVJHcJdss*elU|NWOU0qtsU2Ot&nKDI+v= z)2zTg19l>Xy9*F_ml~B&enI5z!)F;B5(2RQD!>SnG2rzin38*8@EYMFe^ubGX<0N- z!*K3W7p(lR^_M#QRCl)82S4|p;VH;fMkqrST?`RNP+xx+H}=htgmW<5Y%pc(0$1L& zTC8yW^#Wg*5|aDa6@{uX*<%05+-GQ&twykr`Qqmilq%1Rqrwbc7#}Xd_&7t0HI+6maN-zeF0!A(KL#!$;rLt5U z-z#V{p`~wPXEDEYX2?x53{P@KqsO~Pc|1jc@>N#DVyW0rjwViSCAS6xY(jTbj)7)F zI~S~>RSak%!*VP2Pfa7D_j~Oiy3-y`#<^%gaU{jr)6``Ij7bzq*{jmFK7vKtyfM2` zz+LY5zI{bZv+J-cEInXTDoodnQ~SRy*-8JAR5$J4=u0GN>q}&s|4x(xR<%n6S2ZPR z3Kgn;Dh_?1>*$5S0P<$(7{Gy%i!5<7O4IxT&Kr6p(2^utw+71yjN5_B3mg$M8+Rmg0-%HyLl_X8z3EN!SD#R!RAWd`EdtOKE2;E16qUH zrqlo@$u!&|Y}-z0FiK%;!<>8u^7AP0C*)}zjVg64D`8rw@&y457g`m~HXRXn1~lg- zZkT0fjYb^SRSn9D4NT_{H64#7{3-NGB=@arOasycQfru5QuyZ#XM@}o7iQH!e;LVD zy7V8mSM)blZWRUIjamQx;*6Vyxa;6PZT=0vQon5|XubB_taOdIsYauU&bfzyv~qH) zHH;DTMeeA}%pl>SIiCwUc4K6h%bSspo5%Q12=lIyFqS0_Z`Dt5e=?3Ml#TaAljY5@ zY`K;PAQL?IYM`|;CFj;uO=;LKx$@Y`IvBk`#RLJirUXv4O*_Vi?#&p4$-3(x4ik8w zN6%~x8v9jeVxLxnIeLKfwgx5v#4TGy4Htc>-5aVKd?TnN3LAl%_(n>!XU!Rf*GBv~ zH2nq5F)B^*sZKOrRSEYDsxfpRDa#pF)o|#KmLykpW=>pSrez#F;2%#Sj=^!KG}g1vjH(^ex{x; zo8=XZIfa=U4f{XGzG>grPu8cS+imjCLYi0PG36ZMHKR@iAmg?|zv+QusdKzLu%O>b0?*Q%b(RnMO{bI(G&|*vLn!~BlGqbZp*K6K+P8A>6-A^bc zLmCLhh10*c9M}xYR7MaoCRX6-NBL6qG5>52Ag(LkDH>`3@|bjw4D5f>f3I+q0^>?@VOKxLK56vksCNzFOsk5B zNwG4l-_USz%oeA0aj0%{80xwaS+03cLvH8TQmAZFe@VREbW2FHBhbzo-v%mFd76LF z;mp!U1~L?**NYz5Kd0xUaP;V|BQODq@^|z~zuQ7mp{qOJT?O8y9~@#H|NQUQF{f_V zm3^P!QMJ;&RGe;Bo=`m#ms}gvZJJ%)XbrhL#ztE%BSkBv)*S65kVA88-^Ne9VTpJu<^=PmnVROcC(&tp3;C$9wIMdEZ+y~_D#;X{?2J}~7s1X)u4QuTy zb8KgAJ(y04kPf(QSBqFX_?jbcQsJiUF4pqWZ_At01fxo~kDvb?TkYNVHQ)YcX3ccR7 zeg29RcL|BNMRGI(=eXxHzTi)IG=pSuQ*Z!w9yi_X-OJNr_TAgayG!*u{Kxbp&3#D$ z!w#7tOnq(%MctKoW=B7M0*lSSI1eyQ>&FoX%NKejWCt(1W$TjD_fu-1LvYbaun=~* zQXSXVKRdvzwQZqrc*)(X!}8>NyTX52^q4WTI5&Hgbmvod2m9&y_4VJq4YxUj@})G> z0!_t!2|W<%;8g-?eX#t&m0Al`@C*kk54)YdTdRh5VPa>>1|BMyV0-2T4wa@} zrC>VlU8RBtwz@Fa0%25{pbM=JZ=oSc=&PA$XU4waw7>HAj`9yudp(*)NL(}IXRigu zyT-!G61k5dRvXn7)=gM)=2mA#?xv~uw3@dyeZKBd8J^Ysk9(HpZqm*^g%HKZJ!qA# ziQ`XyPq)~@Hs}OD+^zl;13%Kwci?VDUw}0_{o;Pid%9e@Uk4g4Af*ew`=Q17&D!)w z8O%n$e1%*?hdrq`3#(5Mn%>sjUz>Ex8K&6yI_pUY=+xy_yo9?+oR z(~-i_7`MPi7fWR_@F=U*PN!gKBt)}i&uv8kbRq;7Tbf3AKIl{`!Cr+RCTwJMo2^vq zz+*1iT009yt}CDEuvt&AiY1Qla(f!BQ-A?*l6l`rKtJSoNW(D2EX9b@b)hFMUkk>SGz~Sk zv$~gLd5+l;QYFo^MRnz3XKD@AGhSH?b<9}P%RSURLl;VSS~(6}WDwWR=F}Hm$vf0y+au2 z9vWK|%W13u0_X}X;G>jTG@K8oDu+!JU#U&wLVpb8HC!TBf6)zWVxqa0vjz*uoCIkl z?2V05FV!z;0{n@2f<#cF#`rl`HT4OLN?%-MXbIt9-D#md@A$L(>AK$ZLQ0XpC&Jx~ z8q<1izv#?eB#68WM&-y#YEqb`sRzlS(6#~mUwnxHZ_18WedQ3mH({R80wfT`7Tr)Mrgm9_hT$GbAv-KMZR{*bxaKdN}VYc!LS%@M9Qi~Zx5i8OtIgo6PJ{6a3W zD!C!aS**wk3m=D*WZb;$t23?{%hCQ9kXQy2Gs}XQGUWN)lh^JocL2XwNI?RT0>I~ zI3$GccNe9PQ1hO*Hipfa>Uu?|38gZkncb?(X4kq(a2wWGnKY@xMWc?k^CXb{ucaw10yS>x zQG&_whepwm)GR`EG1IdWy;D5h9$a5emy^*(G5rH6QZ33rE*yt3M->5_b^$lQe{G~l zbkSOkgU}!~JVL=l^@nnaIEpXpbTC?L3=jljbg94%2GPW!@2pfPypUlH!lK)#gZn$1 z&46e?q*2Z?5?o6Pu_JQi{x>qjPHjVqjSC7rc;;LkA2kD6h%PA3>0m5aN-kngx#x(* zDvr_Wu{LC8jI6-6&Ld1^vO_Q_*i)L}RhH#hC=_^_LCY7iwh-608qJbeMmsjC`bp9d za^DNQ^-8?xJ}R#8uPp`Egby&yu!VS6KcZS7rl3vv3y{eAkh2A*KMpgQn(|MS$|Cw) zUU^FH0vzxY_{LCN4WFV~4L^6Vxza!|;KsWk`9ti27+e-qeKG|?aBs?5>z%8q4`3{{ zy%g~qJQp{SKfWjVoIZq7=W;U4iQ7t7(AxabK)`yro0u|`lxpsD2%7o>@Y{5dyKIa) zL6c*c%uO|^tq@&Frb(www z;*!9WhlvwJN6256*7_8T%=zhFgDE;VY0nhG zLRE$_z91z(S67<@rI4ob|7!)>R}|5yUrlwV#NmyXAFL^~)}aLI5i}+DoJOtHyP+eG z$X)$NW%^D2)BI8Pvz_QtiCb=slEa623~2XcJ0>Daft(e#jDOBC&KtPY%H&l~F*e!T zr8AUx{&h{RZQ(28z0n#W@y)WdbngcI5`nPi)nXf>o<=LR&d_b8EE0hK8te0> zjDMkNH?<)v`9<|X|3O5w7mvTaF*4*>z^F29JqjoLZOWTQ)a1^U2qwY%k_ZWj*m<%G-*Oj7_1QOmP z*#F#)FDBFTzT**f7P8^*mytYvwJHZD}mfXVL!#9)Hj>?eCabol$}BJ`HjiI6~bw_{V$Fb zOr)t_G-5=FqA8380N+)pM&v`xy|vUI>8u)72UvZ#F|WPhl{mYZE(K%b#>i82v&u-FN`EJ4->SS zUQ0TYwW?aflVaooNR~-KOiNS~v_QP4+-YC}08zC#4%&f}(+iz{tlY9(gF{ zF!~?GMeP(@jKc72sR^oA# z?|3N#x=MyAt?ntZbi0!bXp~1Al+7?XC$VP>Db!eLj65jfdLY8AX$O`pfj9H-M{=)7 zLF5+EAI(9#lEB*IF8(VSh?U7iLT8;Nr2u6NY3zj^swO5H=ZKmUW0nw)>8`$lY`hSHsNz6h>X+V!cZgld&dK*&kE;n)wb&!v_uccdn!Bn)-x+5@S^)UY0fe ziRZph zzi-G@XL2Uy8DONSfjIRiNas*$(+7!2rjui+dcY<^r~in336tPAqB^3~s2ZURkAC>- zEoyGU0);BVhNht|z^Min!$mBs984e(DHb%#)dMTAF4er}vZaHKT?{kB3E{pY#J*_9 zeq3m5otaaOh}j%aAB9BcE;zoW6A^ZG;2=!4J?ECSpUzt(Y>OSr+bH6P0|S0r-n zt_p2mBFQmow!nxCo^hqyS=X0r)cg@Q5>taIR7Wb>V5~}~t`jlJ$`V=HGC>K|yofZR z1kE;b3JvRwaJmwfGrJY3D&7VAfXa0RD!j5Jafb>KKE*EkGtCR=x(`^1ptI9c(wxI8 zo23J7F0{xnN;Wnn|30hL(egm0lzItCSx-a{LM`Mf^I)yDU|Z-^*ODY&qv=vKhlHxLX&q7{p)Ndi&zZ8suMkJU* zES@$9%>TOPK(w=q95I!CMoT8Veav2>EWDI%-Fvn=pSF6k#-1W_IhUp`-pUGXJvY3Z zXzy}hOsoj&hS-R31)_Mx6MKbEdk^Qzo~veTCY5Uuqq%5&jBRAQEoJT`h^%x}Z)MM* z>c%Ae`d6&o%-C(HL68kBx(CqYu&sDb$uiR2Wd1+}|?f8f6jSR`x)gM%?aRaz@%UTtItN&Oo+X5r8^6J>C z9Hzu*k_<)|QRRNq4opwg-ARo>r9#-~XgC;1R*9BJT-bZIU(Gku?!!yymRU2ek=8F= z4o^&pJ5rvPr@G?UGmwP3c{m}sI4M~$=>?Wa)Kibr$jV&d{M8w6*Z^^nu2DELBya?k zZedBC%5H7#F(yhFA)V3WlRymI-XT8#4Zuh{Wz3SN9=eWj@tF6AYWACL7DB9Xf81%@ zg@b*cL4I8K(=o{?%q(dsk4P~UL0?}|-V8%u`#M@Aa*b22&AiPd{()DT%)Kl5jJUen z5c81{6da*U7EQy;b+(2m$|bo&V?m?;lDbbGiy26I$S0kvrb~ak6{$WHi5`G-GI4N; z`~3+0+)AT$m2LExecX)kDp9}e+JHxXy&QiZA$e0*Ss_Iu>qfKXPKxn|O=Z0gg!Eiq zmQ@0A@gPPE!K!n}NE0OX;Pf@;NR}zj%w>fp?P}sJO8Z_Pvtm!LWune%bg;MjnRT`S?+@Vl#Nm5GtK?STvV@-qaHC_z>6@6`II z%T@OAl`kymvmF_15G_4h_#qza1{B3RB!zr4=T|7Z1{<`4wMM$CDjH>^kTVo$f`_?b z-5p6wWy+f>CAYaSFMGv^@m6}^%hfO1dC-yhH&Jbz(up=!3E~<&V)1>wd4d84GSTtK z=+mRYt}`n)ZQIIPd-EuxfC$;~;tkp)6%CkJtUaf(8wGzTg@$X44hAcd6UH<+wfq@m zL+c}Q8F$RN2AVizBSAe`+>0fV94FJO^W7`ktzd}@++-}}uC#PB@<9lf7ZjAp9t64* z#D*Qj$g7-iT(50YSNbBKUy~RelfZCG>?hsZoEyXPa|3IgHiX@8SLPF7gDV&Z#~?eQ zm94tlL~19H1s{ujj9E+n3s1b(QB2MY1!6~`f1LEsq^9f++Em=jj?6&udN*Qw)A<9X`R6>b z-CYH)F_EIwSiH1@M?_;5-Smu3Q_kBan5@SL!X_vi^icMK_Ieu*F%A)m)^=$a2zxvB zn3Ws!bS(RDL!?A0=TS=4KFdLlqyMSB03k9~# z(1rPa2q8AdA1outOV)S$HzZ@u^88wo<9qQ9F~16i@KvP8Q35eo5$WyUcXxvTodLb! zNPV+0*%A)94vt{6uT7eiw8Z;Y|E6d~=63=FPY-%-Wh?J6Z9;c!E`l5v<$a_T(On~2 zkMd%8{;2mL%$M*5XYW~#?cizR(D(Qs0E~}tDix0E%yu1V1zC>~#z+XU2l4pp&Yh>u z1pVgSrFN>E!&FjUYQI^>dCufvGK_|(f_)5enZ-_#4#+YL~?{kanne5R02~YmX@*OCRM*Smz-iw_Fjrk#}nIShKN`NKWPWVa{ zDh8pQ{NV+%)P=fH!WxnbgbtKKahFCpN^`u^U2rBmS_p9RzYtEwBf9lGs#$a+G3vjh99*EUb`20LxTS`me~R!>qvLNvJ|KyN|) z#Whi-VC;ok*?J|1h-t?*dx263AH%Ei^it7HcmQMTZyt9ilxC+Hr>~lMrws0(nogGy zVN!QsrB|Ekbe&e_VCTjpeO9B(>7a7M*K)Hzr*EmyG$=;vXIBeVPB2*8@t&P3${HB} zSacis?m!~w1zXD2nAn){))G>BF=WO|`Ps~&7EJK-Kv>_SwYOtx#^D70V0^@TY=Td2 z!F!9PDxRRz;glcp4P1-hk7u)1#2P1JJM|J&>3bqOfF~!{IV>HFv1Kx}YB10F?5!;0_UJ)QUbjf1J`2KaLC`C7g>*Eh!jhppK6O*P!@{!Q~u6$QnG-b$eU3=8G{D<`ptzeWSG8(E$)KPW@vkxR@>IZU-3cSPYBUG z{$NOSI?h_T99cLHHkm@nL_g^KFrj)_$*&p`d@k3+R={@&h5WCBQhkZ|F~fm*04<;w1@d;KAG z>`bnktEzNkqwESXm>P~oV;Njl$CqhNq+|K-gXrFGl(YU3I{oDA=mkSj_7-N^KNAZ5 z5~*!4O+lw7fqAT26zGC7YL40b{xnssD;tBS@`#X1wJ zF&o|XkKvhADW+s|H9Bmgv5DM7+{m7?k@l zfiOra$)rg3`BL^C60o!8Ug+J;m*iA&an-x=|_Ifu%XKM?TUr}&Xy&ruV2`8%08k|H+he`wjFRTnWBNg*eEcu7f! z4MUQMaFft?efxqEi)i9xx*@D8>!+D(s=AjeWEs1PE3anaZ!z?HlHV@wrNIdi7JA2= zfBl@AS$0ko3d~GI6<$KVQ2dc*pD0_Pl#v7>s%G%RVPe^O4oNH{NSJ}k(AuAMS~xSX zwh;mI77!x4q?5Yk+VF5)Q5!*bB=ImUeWUSqoUW+y##yge2m^`HsL6QG$fO@ zqKl2_%BsJY$<)MU(R2&O%Vzzw=KBlYx+O^+Z|#Sc%rzV*6v{3|mQ z(QPiao69!nBs&rPexY_40}}&NnF@0!rfhL#?Ty({#ot1WnUiUj2IFTvGmvlAAdHkk zVn2LH>{Nl9$wv?y=|B;WTtI-`;^#kt^~0i6ynZ7L*>C#FlwWjL$LctqxnEeOH$TDM zp!emU3YmWRCA!8%P3AM?4Xq`;R(@v}eM^+5o8^hgZ(Wm>Ba@XEp&O7|m-Z&)sd*uE z)=VO%ayIK{NITi8i8~U%FAsx>6uG#vv`rbS|5^0@oBkJf%bHKS9*veRA4WfMO1X#w98R;;Ez!l6!C)-n zKBRfSiB61@D$FV52ZJ%IAYfD?^$(T05CTn+5(sA=^4Nu3hCJMH^FsHScb*0nMMiH%6VO=wr@WOO%^8d=F-=>7 z;<4$*$}T|f;!u<{m{(MzX+YxN@)I3KzpPg{*-oXhBLW1CFs0&WQex|7Xp|Kx1fuTZ zA%)9uE2gzPkr;O`*kuzR>A4)TXd}{zI}E|S!W1(Ds}9Hzc7Uh)cP#s+5%PN&U6jh8 zYqH1@O)L&Sef(u|_~|@-E7TZ>PSpPpKE*uF{};U@ddAw|H=H2}a_y*kUJ~nxpLvUg zP@VMQsQ%y6)JOZd*5j?r`;S<6N+$TE%!Lt2cSRWf4Di7%c-G}faK8qoWmi(6O$I@d zCpVxbTso)CF(TG*no|4>++BHRb59NZ;X=} z%{4JG2ewzw*{6GSo~%Y4O=xk}yE^*~K5;ur#dcOXb-y2c5?jr~{Iy4jXpb{?vNRvF zw7tvMSh93uO$)b;2#s1dLbs7fmx@hVsubTMken|I-)1c=in1V;wGom|TUNH}($rbK zY*X?YuCb{qgM_Bt~Cbe?*7d zV3Ng_$%HZtQiPk&2~%Ip3X3{r8zoSi4QLt8m?}3eLP%4cv5hOnC|Q`(UwA6LYN~+_ z$z3KGqtw-L0a{HRrt|B5N1%mnB6q_s=P;i)i=0DYPQHI+dm-%3IWU7&obY`c5$UBI zI#h;v^2z{L$}CIk;|LYi9<4-c96KDo z$5se^J2a<|x~#o-UEcSjOf_LL$Su4}!Hmfsz&{7KSepg175gt?5~Hx->qlZ6E^T=_ zr~B=wkfzRod{}#|?$&Qst2Bx}iBA_=Gf)Bi4{)=4ho*t#Olif_vlP zdt!W%gZ6tPRaa~ek+D%GQTA}^D`yKy61IpS(uT!3eA{^SASm&m2##=>h7#uw^Tqii@6k zqs7=u<9VKinzjzCV6%%W5&EPCJFi7J-NR^q-Ao0Qz|&45eRDfs*vnhj>Y zy>t^~Mz>Dts2jBdFZb$xeTzD?VvO*H$9Uh4aGw-&k7c~p9D819i^EWhT5bD27_$FC zrSW?@XE@?OY6f!Tn*Lj4E_B$$C$sgy?hMG|#13%CT1X=P2L%R2eA~nBhMh`z-T#H( zocJ{(yj;!Xb{xl-(`m2w74=?)N)k2t{U%uC_bhw=Hyr1v3|3fiY zrSND&Gym`_avoNqOkzOcMYiSh11n7bo8v4p$_T)xui{uXiqo8Kl58jHMpv0O89DCO zogOY0HXQ5bH4U}5{3arQHlg19K9j+4yAXm&4uZx0Jm3Pt=!EpQE&06ZN3JNt_5k0t zA>!POh-g3^;`dGX?-cF!^_%wPjaH`cyU;gr*jqnf0RWum+vo0r!1Es`5x1}pyQDAvBvt&%@pEd?ok1^xfPr=yg@Z|VJMIUf|CEJaSJ7>x?idm7 z)P?<~5r_#VvJuAMkHrd>DzBARhtGuoBv7pdKZ{1fJfjj4neqDlL`@bwd7&pucAx>p zciS2*$e+LBF};zY;X>}h^`X=KP&jKQGEAV2&q{Nq-v{WG(aG8i7cxEv(_@EoDYM1O=0Uci6@2g&;dk$YrFfJB<*=z^A?2^RqIPnkNa_J4crBNttXlE^t&l;=3iIFmb$` zm4f;-^HaZhkP4>9`{7TbPlc_-#dL%X{7J1hg>v=_I9bJ@Fl$pLRhGf_QXH$`$=jRx@Os%qFT<6bm2|0=lG{G50 zsG9h)IQI_;SB=VbMN<_y|BY_+i=7xwTWtlpGufwHePHs-ZSF ze^=3TGX{K8VFD_XJG;r0BIl&G=1x-Xqz9UCB{A>1on*!yXy=pxnoAIZ7_2$+d_oB< zn=I<*jlU%w`EOMAQOTJ86sY;1s{K{M3|3JGDl?i}`$CU1N}5vIBqB@oLb^I=QeyFN z>!VW`0O0ij;H0Rxdx+P0#BZc@>H54<258y!%mOYfe2da(Xfgw=czq3Eg@V5n5>4w) zb)1%2*A~$?9I0MXF#z%is)BcPyWqcwpe`QfMbN&;KPpu# zrXmP#03!F7ND4sI&&Ag7{Z{!O`UkD)XQL$uE71$N&u;4}2ndxdqU`ecHsfCp2e z^ZEH?H{vW))T^_^s!NG#$SSYLgo@<1O!DV3`z6`dmX&>*OvM#LK0H}H>*>Rs?hfAB zl6e22I|`EA)k;pyqaDk72n+g47}Qn6vfYJt&9kve#o`o%Hy460_OmxrwfBA2R!I6~ zBt#zmjK3v{A&ZWr&%#d3aRC{?Mz-%m_xx?B)*|%LBm7Yynr()Afqc81)cVkp7}I59 zWl;IqN~Z;z-`~4V2&;Av>Oc6e4>>~UKlrZ@fMiYbAHEj`_|M|t{0YG#{~KY|VQ-;k z_gvG%h24h@b4SF9Wd)2q)xv}s<#-=e?)>#udcfHqGGW0>Tz%>b;$ujG__TFHw@rnh z@P{Dzk_82^@C-ssgs}McT-H*(`<^iLcQM#=L;ck;5&KXH_K?5$zXVR?2!E9HRzLtC z;vL&BeD{pP6z4FAiCu_8EZ@fQj{w>(Y&v_?fV(=adDR=ARh(f-JUYD53$csSm%e3Okw$<42P0uMhUos2}SWWzZJD_RPnu{tDlO zhM5bso0i%FA4;l^{-F*J&y|MIn-;s4_S_m9j~n;=;uDXX9?u2)83jy_T?4Q#ry;B% z3v(su0l*2sG6{vS1~stA47}H{5&PM#huE{$+OR9ZvX`2n4%?s(Rc$Yx5U!iQLP9wc zOXS6ZL7p19Tw_66?r9BN8CPj(p&Ia)y)jU0c`$1+TY{j6=QJBXP^!k4!B_ysm7cc- zxa35I*Dr)H0Nfe?6g}WG4gS*rRo8JP{2(d(AvJT0<#M4o^PpY#pm#x8T5i@u%~n0C zS$Z6yYi_xTnu%Z3;FqBYzZQoC$_s3Z!*9=nc}=U*jBC)0W8yC0Y6o;`Rtn%%Hh6$i z+X~rK;hEWsR=A5`^x=0k!FAV*F4n7WJRmbkYaY{UK8@CEB=rHN9>rXK5WQ`+1Gt$p z8liovE)be!#P5py2G|T(dDxm6Ov>H06|ukyP+P@VdS#bpW5H`W!frYXdj*nT z)fRX4PJ5A3deK>X(UnKh^INr9Mzb1TwSlM6&U&G2dJ}|y)3ZJbyDJLkQ&}5snt}nk zJQ%nPc6|vx?cqxhOG-VXYg#yNdf;nAS4Rw?W?a)-UJYIaUwh+1M(i*AI2iq^I#AV~ zR*|<>wFYY61edpuvajw(=4di_C>NMfIHz5JKQoMW>y^JGW02OWvUEGgW&=(tBNwZ>dPTp<#1i%wvOxXW8O!0Rm`j zN_*2KYsLHTrc2j~XI6KhcQ1;U(L(0PO6Mxm-wY68{SnR>%Nv7`M9nEf}&fX>M*1PPHPu~y3IPXGAFmOEJxukkb*84)uzlA2h=gD!2Oi`>b;t^*F&RwRN$q|O_NJw!V1 zILYoqm``WW`fUr>T}$_ohR=oD&huU7Kq&G4^G64V?~4NAGLzmi%HK3^pFjRvlX5-C z5xQk-CN(Bv-(XlvXY)iO@%SQG%jSz@GPu3r*~%Bo zlq<-tW+RodxS?7-uHc_4)T-ewWSHL{t^I?naUC(!?5l)B?J2nn!#HZT!?5@~SZmR0 z^?JNz(fQYwY7GaW&mrFs6pO%;DU9kHB{7^xG82hKUU=b!VJZrxGx(#qo6eWY>+;K4 z*2pixYA-Hdr8mB>Y__!_|3Ug_xow8sV$FP)&%F=z%-|7_V9wv|4wMAXzQR7VjU#pQ zJo)GFbvv1Cu+6K-Qf&O_$}bWIA%u1D`sZS!CzklJM56Rb=AQt_H)}{t|2OzQGezTi z>eW?4d^nC(CrDh;yid_#O#8eb6k7>Y{a`|4br-z9Y-zu=H8=oLP?H0eKdXZ*k^sV>1!-DMuC<6_TZ?iKL>YXBZntbB zzEJO@ia5xeeHAA&P8K)JJ!N0ntd^zx8CUK$noKWmoMFPcLBhKp#w_MHty$ut7!7ra zqwaft@p8hO-e>8K2luXDmL~8z8Bl$ym!j3|fgeF)o0g%c=b*kCPJEZX26P){#V}>V zoK5ufjyeA7pJDtkf(f5bGxKmAAEX|1-*3}p$k08fFW$F=KWHHc)MhBj5IdtE-%ZfE zPSR|T%n%ouwOqAEytl&jU|k<`l7W0Ur1bJ*mT{gFD+x&^9DZdl@?$h?W{EbF;d?Yy zJh5O});uY*S&@&qaA=jq^P5>Ubfdc;rUF6A>q~pkS1`*LX~b_FdGs6 zIW8xT^4on+j_W>zFr3j={2+$bMx0P85Go}FPBX*hSY1!&QO3IS&nxbWJA=krW*yUk zacN=|)#pWNMzzN!3$+xtSpy6&ZmoMYAG0ji1Ci?p<_;2@2P68W+iX7WwAaHl#1hzk zgaAL^V>G3$_fxd=bX=Nl%-dB~zEZTu=|O`7^jl7ao!^^(5WmMeO`cEU#a=@;#$|CT zlE?WYOea^x8In~5S?=<@5^pIcsye!KuJL+7=j>n}_Dn@CRP-_!tbVLR%z*A=;}?_| z^7U@}Bfm_#V3Y+Td!J>bziGbomqlL(pW<&V1_-jfF8%iT3z7SYRmwK?m(~db-*7Nu zr58sCmEX^EhKkd^k4kDz1NUPWhHq5}&C(%Kdy)u_y1uAoZZw3U5Dj6BQv|2qp2bXt z_!EC?we36foSqZiJ^>~y8|m>N@-0(Jjxb9jHN0b-;2R`l@re+fVO?aDbs;w4Su5l3 z!Y`=(JAp;%FncjdBHf|(>2;|%DSW&H>c{upAhA*9a!2tHuS~LrQz?mY#}pE}QMxSv z*ReziKraz)t$bMW5soF1UfGDL%#=+5*`C)YD3&Fob=+Lai9epxn9K-HT62CrCHkQF z(Y`Fx-UB0Z*NcFwTo>5iZ2I02Yr`p2c21!7&_g@!{s z_|h@f1YEz9qe52nK#|CTWS4_5LuRY-$wBAXs3Si)1B&oiV~EYU4!*~TfaZ|5t~o#UCa%3vMR7cTi0krA(`g&p8kqu7;87Z=Q7F}de5*z0kw zn94A2r25LwU1|g^j@Zhu<*hwbQtUA+VB0jN2gzKjtR5-E5b{@>xEE9GT`uH~&N+j+ zg@BZNMY}KXn&r)k6&h0%`Y;t!{f1bT4nM3+weZ(+nV;%vmWUL>%hwxBV;f4MLV}@b_?Dj`-vB|d!WRHLibL;&Zr7MW*rtQzn z(RNWq?WoABPaa6B#%nT4Z|wL&A>Cs9Y3T1totS;ia`1)OWSo zwF1YK3PfRggmom8>UzsI-s5o};3Rf4lX}U8dGEb{gC+75AvoNLjQD3=vWsf9BPi;W z#|}7FK+#kNR>dbU&^kjF#bosvb*_%DI%fj?klztD!GSZ;vOR?sc5|yCi?9(8Ld8h- zx^ei|5w$OX&vw7`!}_thebEn@4Z8vHx4>rm+>JM_5$Rt;`vJ@~(e4X75#CE@fg22= zYUT#xl=7W1)OLb4s(rYz)`LnEzupV%i`5$`$q2vWa_g+u;->Xp4SyNbj z&8=^Y+JB;W_$WHG4qUs7Bl)^HjYIKvh@PK&O8Aa^mOv2>J(^2*BO! zIal^Dw6i0-%yD_|W`7}_(~@y-&mdcO-XY%5_UMdLrh1ga+1l99UiAgrx&$^MOk?b9 zf^=r)21jCEf^i*tLRmY2Tt0l!ayNt8ww{M&gf?SJo>x+CZ{=6fM^iBE4(tC|nh8tX zwAueo{;cWPwYnY*iv>pp|J`{NuBxrjl5u~f>o~er?WsKCdGGMqGFL!vHK(NYI$_t{ zr9s@^U9!C+}mza8=CjOy%C(9 zI%MzroNccln!ht!(C%DNRaOWv#P+$~#8@z5$KG(ObRoN+?g1s9c&XMFBb;9q&4fv= zeQy3@lt!a!zJ(#?Pik&Tp>B(Az8gn|9wjE>!RANG9^Eabd2^=7C$I)3er!}!U+&t_ zPiIqc|Ey()k0pz{6z2gmOIeN}L3K-fQU7vRFTWHs5J!NasoT^ur$>n!#fn)ZxjPbe zV0VZVJ8VeMJXk@lb=-FfRH#>;nm4I?@W17N z#f4DM7L&!F_K(nD!p8L#L4+OT6Y^%>>h?g*qNolLeT*xm#EA&vWsh--WJDPZ4Y-!}{9N5v3yUmMdmO0QK z#;fz$?+nI{xYY7_ILh1&IK2Ax{3}4!?H1bwo72w2OuHoMJLiejW=rIrIq|Mq$orB7 zDgY>S8Zx|UA!%j_gm$}x3C(&6nG_ES#*y}r@V`hmGh=HR*%($9DHYfAyPd^|26-Jr9isrnnM|`_sBw;&a%gpTtBggxZnV zTa1behd8aSxTH46v4sfarlgk`rwan#-utNsmK2wH6y09QZJT} zGxMOJ^w%Jdz8{V9rSNs5@N0nKv^h=&ntUc2a1sA#hPM0is$QIOo1rbwqR_)rc(^Qa za6>Vu?I_?DLFvFW``P4e*o?N-v?g3~ zWA|{gv&1M45C{%9Z4RSqq?|~VoEHrCH%YGfWfa3g{In_Sb;3z zip^tLZ~iJKW5(~8K1r>fiR#(>5=jKFalbgdY$y{b%RmyRW?)A?@+UC`VcGYv!Do`r z)1$^#wb0w9<^Q#fGuYdp$03~6{0Zn&!u#TS|wFWi!y zej1fc8PwO3{%<+kRUYvtZX(O8!LEBQk_%Y1xE5i|1uy64?%Wcd~cu5#s~h-avjm#FQ*x)cYxh=ESeA`iJhnHt6E zpgiMK z4E?uUVmyD$u(F)6AhYvN&(OCF%rIAbaUVg6tfZ3EJ1m$m_Y#)1usq93F$GuOc2D1O zPD2`JWSrvQ^U7;b{JBO&FnqeWgk>2`*_9jcmt=(>oE_ke2=X);Mk9Bmy!uysE}uq< zz*ve)O5!|?a}amc-FkW1dY;fZ=-vWUY!MZco@uXS!a z2)Xm;C0Nom*wUZH5%6CUUCakp8i`d!l14G?MkB4KpTb4+r(a-zS&HvlPNJ$Aa%pZw zxwRhmR~oUQx;*>pr9m<@H2}Xg3_kCp+pe$d}|)z4l#YrLDy>HZ*5V=uhN}p z(}}F=e{JARi@DJ7zr(3FYqht^t+!cr$-!$&@PsKE&(*QimcfE?@ob39$T+2{DSd0< zt!VfI-|ALeRS9aU7L@RgB#DBwinieN9?Xx9s<$@m%<}G|#zRk-X!+h6EkjN27E@q{ zDX0v?Iz^kNE25xW+sd`LykJ9mVBKm!IJ92Y6Q<#$owTyr7`H1mBOmRf z7<#25Q+fhAwEc-7Hdk2#Vjh$J3?9M+rs_5l6~+K?ENL)0buQ+P$3a{i?hT z0Lz#c>!E$1*?v@S6XNXOkCEJ{Bx_y}V`bZzOdn50O4++X#F}Xx-Au}+OHR~`?|462 zJBS1(43~s>OjscKeAqh(-|RNo}}F{or_vw%*dtom^j264s~lXW+nh)ET)vN9_vWjk zu--}U7}vMn5e#i&m+h(B+DN+4vXbw%kK3~M+xSP=?`S$@A-e(8+J2zz+M{!C_M8jc z8oQ5d)7;vumu;)R>Zi6oc*vM^L0o7Eg*}7ce?WxUxmt_pT+u*S9saRXTzR11*?+0k z()X5dklByu)v$L~ElDt1DAVINX)34F{g?2NaU;^3V6oA=e)wwRCTqcOau+OO^k%A( znt$*w?@7J%a+~z1F5xQLwmq>c5|0<07Vk0tX7yovVxjkOna%{J)^Zy`SH8`ZsP}mN z)ka*_)GNUr!}bW>MWbBwTJUvq2Vt(y)P`l%7})Ql8=KLV$o*2OFKwK{ zdBvc7sd=K0?tR*j;oR8PkTPnJDszk?YiXKrw=ezZZ{~gxQ6C$T-^jlWPNdNv-ev_l zqYvw2E}hWHQ+ssym-m-LOPdp(e1mXA%Y(KpyM*IQR=dr#yCHuk=s&g}whqxcmZ7gF z>E0U;7$$V1WAkucGuk?#ML>?2B7C07vJD$^?FCth3jOy{VZ%A(Y>A4 zv2oVr>gKgl_a?;5=_|psMb?aK#Xi*b5}|iXoAgom^w=T&=NMtlmXN@LTKgY#l;P5> z_Jho27`^lN%u}!I-JPnX>fhUR|3-djkIreerAw_PA>HfNjQl|yrndZJQnQR4{m_EE zse5&ZI(n+aBhCEZZ_}UpF=i2hlN}B-XHI!+gGLZN1)CX5bt0D@nnJBQM%>D;I{qD<|Ihq zZ@kvApWWMEuch_ad!wAwbn6!Kn>WCn=@gzn#OpU!iO<_yAy_M9{-}o#ls-<(z1}vb zGvrLUPhKBLT*X6)gdeimq9Dbi{{tny-YI3WA+3lKaMr5N28;Z-_ZmptpDRT6Cv)Mh zC6(h5cx7#TP&S_pkoWvepnf;KTE{h&{VPNDO0(H!tJ|hS=xj3^(wCiZmGx|pLu5dz z5T}`Du^bu711e+1cD{TFKwFFhQ!p&;z}-8PsqtVsoyF&?yVfV48SDVRgM=4l8WK2b#hrnR2zVCx;mNa=qs4 zq$hd(mkuYpahbNBbax;ua{ebzYU&r1sQ1t7ZA#DRh99$YhRx?9f0^c|{}VV(UC;GA zeMNXR%}oiXSf6=8%xOWbFv3?Pq6E2HtBR)`Z?K{#Anly7>B9A4tZoY{0Fe}nUW&0m zjJdE*4Bu|@HjxLXQktW)yyBXq$eLC{;DKy^f-wgkv6gh}e0@Ub51BKHIBm@!^Tgz# z$CL=E?B#XO33}kJVbqb*GXZ+beh=3d=pBObTngjx7B#l3BkM5 z&znN<$fj=1NQh}3(?%9WNy;WA*4$gga?)kMha5F}Nn%Xr;_rhRnQGfaI^n1C!bTM} zy{_4AnU2PCrQ5i4bB51aNWv(#f47G5Bt5Q}(p@}={%jg1sVdchJnh;E9PJWHjY9wa z{jqO3vE5*&lKsqdR52a-(W2d&iFC=pr`Pesd!N4%Tk{EdFPDcp0B_q>N5R^n=lfY? zL8)0M3r`wgb~IMnp8sx7Yv;trMi;p%0;%E0ILvvF2>F|129@LQ^p5OQDN8ZHZ3Qj&)wE1$ITl8F4s2HKl5DV zcQ|*TdF|6 zCgjAk`29It+V9%Ak~&OJ&3|jDL@JH&xgBy2H#(jb4VFmp)$DvsdG6E)er9TX#iN9FU7F`?5E8vz*B zDMTlkFqnmxaM#bd*Djj;{5<0SZ7Lm?^Uaj`FJ_DCZ(5aBWmDGouMFb8^!MH*Q})zf zvOo5vnMW5*Ig^Xv+3tUuCt{d!msr56rrU*`2T``6N~U_*kYqm_W1-W|x8UzD4A6_U`^CO(& zd9e9j5JEY$NCay>CVmK+56l6s(4e_r2pja73XIDiaZ<;JIq?h^v!9fQiQ3+dnX#n( zr-T7J-fqN6+Nwu+F_N0*hrYW^T)L^|Qo*`07e7w&9eLpIbv!MW#}?ChV$N~`Y?s}j z<6NO>zS-fpnwdm39!Va90@&fd#f#C5mn0Z6149C1Oxu-UP$gRQEff2>^n#7C+KY-y zry+In3&_UJ(!8NRQORh^mT54)CYs>L@^Oy2N4-K;Y3QV_BB+k5htJ1p17(l_r?s;I zf5uQfP2sjPFf@6zVn_d_tcTBqyeq)CzNi(Iz?)uB7uhYRY?kd0TcNcPH{+6(UFg12 z$Ls}{8x#V(hqaZwFAg0*sx{&k-oY)W<_hGqd{eYy*u4MLP54MD+vUK;n{}p4-;`TR(ahoni(be0A}1UFrrTa z#uAtT_n%Xt382Deo(p&As^20XMb#KmNXPM12c7qeJIQJ3Gdd$$l^N>YX|>f1c)eF+ zpKUn%^Rg|UI<(mj8eGgpB9!SIHGmMaLkyqLcQ{{SO|QGdg5OBFM-5QD#+Ke3+owJk z!4Wrus&0|bd&~Kg_qZ<3*T5|KR4=9giS!uKmQBOo#NlGxA0EZ%#i@+-k`d9)IVRs@ z4M?8;W?PWoFA;I3;dP|bZgS0BRhKaE@D4=DA4c2$eir43Cs_ zrkBhvxJ&1EKH>;h{snRv-$my5D{;n|<0!)M@Ni|fff7GT{tK!yA zLB^t}%!={-Zj=FO@uz7Pw=yt=XB+ylS#VGz(t93mutDsFg@q$n2n)KdRnY8sbtEzthk052LIlR!=_#BkE6NWTG!cUXVwHx!HRYb#XxTu+b%UiCp#uRPIyaYh`2<-Dhq8UK1hHVH(;6PzKcuVcYUA-*txbeT~)KP3a zYjg|NW2T8;#eGXND&Cd~!&vIdK8eh`|#OgEl2bMQsCFT07>=TO`utpRI zK6#7l8raaaitD?}s_c$qQ<>T`xH4cT@4QcvMK;$3Bq6$7H2zq}k7sZ;J^hjmsY`Z) zEOwC+9bAO8%1;NS+(p39x~$ddPgNf9rUuKA*fQq(3x1bkdT6D8Yt%gRUjiE&tBF%( z@vfNErrdz3&iZ{EYl@+g@lCnya10}hKFLCHqAXKwI4vOgzFnHo@Mr#V zQhq}5wET)Z*19u$58mrQUl~w<3jIm@sv+O= zk*t0nX-1x<>Sn0hQ**vJrBn5av4@jg?d&oy4I)IEegK;~#-q8Bk5%6SV|YB4`L+ z&d{en>2DXB!}dxkjY-xE);XR!S5lnhg{!Nx+)8@%r7G{xs(LLNZh0Cs)=y>U#jofv zuW40!!$``MQSkQ&1Gd+Ek_{#T+N=hDOwXmqz}X|pFy-O76e7Bk33ZdWb84%$L-G@NLi zn?NY@0&k%zTL2msjj5!d*{9GQ{~l`kx=LTn%U>+&|rsfjl1fG zx_Jd*G<^gch-Y(J_MdarSruLrl9Pq!%iMUAu<_iJyp`Cy^(j`Eyy^+(GJ;-f5N6k9 zXnSPX-@}91y8F@bNBOo>ZZ-WK4HZ59*Bb5nT!2zm0C6M8Q2%L{+5nDvQK%c zcev+vN-gK13);1*Uw}BvFJqk#j|zLO9fFILPL2{6cgbtFrf2Oe^_BL$ocRTKcC5jh zm;*P*)OPD%F=MAiovq18d-~1I-fi0-imR&^-m)lTW=*eVY?e<29$Jrt*uc^}bHWR7 zF4RepU+gBt-{9L7yqYH%6U!o0W)q*P_=$Wj!0he~hJWURoBsQh?`EBj7U;HxaXSq= zk$wFA-1>N>*X%M``J3iV=|c>R^^e`!uz&gEn^&reshblLrPmRruY#(MlCr_o0NV@4 zxAXf5n0RNu1HeoCwHN%afex|%&PJMk`i zUbT2fm;xEUnOHzLXrwAls0FajIlgmHoVHLRs0NKdco<*>vYFe(!vwIW`8^8xcHddk z9|v-NQEm1f&?fTfLBjAX5@7D$Qmghb=6-T7^6V1o0?$rmd5)^37<~&m{RPfcR60?| z3OyVy+0Z7ir$OfGUZD@>JfqxvFCldPwiFO%m&KCfNtC3YKdkW6ta(Q~%+$jluuak) z1qDlhA)FYy5Kh=8dZRy-nZ*s4o}D3Hd=guOQq+m>SDa3t1?yJA85JB%hJ;t{bGjIt0xM2K;Uv7O zPa^_GLynfC=)hDY7JRjE?6ih0B-lbe9^JfGBg{Et;YUfv=e)NmW4y&;2>W!-hIyYF zgrG+hyT6)$j$_zLjZAQ2|C|Q-ar(Zrnhhuie@LJ^Ve_{)1e80gp0CENmh$$F#L2zH zshR=n_sPaMV=yh^(Qyp#3mtI6RFaFBVP4~tM}sy$&7*eQqjZuv$b}Wf5;U-z6Uf1g z>P3RY!$K!qqL)wOyf<2C$IeYAmS#}X`}hrW5{9^kORO?In_l_0Cv2yU+AA$2cb93tdF zzYk+Tuv#kSUhFSdX$Tw-2^DWY6+a8EKxAM@8A~#UIvF)|lx zrG#k2&WCfONTwrFX-|`7Vmbr_6vrnFS+ahrCTCzs+Q>1HikHl zWx)#>10@LoxC*gqAUN`D%u|cI(&%Qm^lI}cq_xC~N7@3A;h$7sYl>3eSeAO4Hm$nv zdt1!Wkz!IwYg-VC0G7- zYp#k#Ebn;1Cn+WB7&LG!jixOhuFteKRJ%Sb?>*R+7$(Zv&5uYkirX@ljN3L$Lnp8{ zqne6VE8UPnGyMZn8f`o|2PYNVD02cBT6-MkQtVxEng@fIRW^{prCFjNk=_F*{Vw*k zCq`{%(UUt^HeFIigXw@8Xw?!|8d0(@mDN7R z#5>N@M4CPhRsp}Bm=2L+m8L}9QuYbpLvGKp)U^IJnwdEkq0m;ULQ}n5$XR8XySQdO zlv*1xK;oEShb-mZwjR}`4}f7QECS}eLS$?fM}SLJ5}y}}wxhHOe7VYEf+GSA~;7;QtBmd-xOPsaC)NUu$`y2al&+&{jY7RM4QAyR+)OWv26Y zzxMo3u8C#-TBfYOF z)6^fTd?rc{XqwMyYW2!<-;`seBJCzq0(-1nAT!xvJJQmy9a=Txvosr2CJKpg!wG2< z&R<&|VLJ&Dn*%cpQHnZiEMt$;d-FCJ&(^Ic70IqLs&6987S01TaQYtK%W$pYOpP-6*ZbgP&Co2gt$f7!Ot}6WxM};!Ev?N5 zJ;x2(!kG-!kv!GEQp`V>3o0sm5s1SUyVKF-bQm%SIJcI~?77kGz%1<1C!4l%V#u)E z&x+fyih0tJ?80=t%Vur4f}mbP8m})qpXT-noQ$zpO(|skD~heG>v{%4J4Nd1*vt&Z z!HdtdY{ae{ydO=}+-P>j{Ia+POUU=2q`fp0YuXfxYp0#stZf|y@Ujsslr^ngpMVN7 z{nc4a)+IvLc9pR_}-sC;rZH{sN9Le7{ z-4{;Y8IIvQ{^54O;SgX4w9w|X@aA$30kpsYbzbK$@B$o==X~Dhc`getfDL>u=-5!` zhW-Mw{~+jpjt#QV2(r-VkPhjNj^mV$ZV@m zL01QRFzQ3F2LsURq;BO@p5@+6>#2R^;!W$}ZQ*8);h*vAApYSbF5)F#>~Buz5by$Y zZs*DF=Xt*8e;)05uIPjw=z6Z`fR5Db^1BVGWSj-oFcvwk)$-dzXzJ^=dO@A@w9{Vwm5PzM7K?2~{B2X6=6@C#q! z49^KBZsHL@@f_d?7k}|Gp7DV02!0OejiBw=PVVC_?ayxVCGY2Zjt$WM?1J9%EwAn1 z|332{U-L45^EChHGLP=y?g;BX>6T9Ef^G+zKI+j+(<}E0k>CiNfC^8*2@w$Wjt~J; zKjTa92umLcS&#Kv-}R9o3t#{BHU9OFF7`Hl^^acTG`{vT-tibO3l}f$F>mwR&h6vg z^4Y%UaDVL_An39{3oL)_dT#A~KkajG_j+IM+b-_WKJ$rx^E-dz-@fkc4(V-<;jgWU zdUVHr)&XDu2E7mo*1+|V5c*!<^`)u#~7Y`7Q1aff1 zK^BJ>1z$8ms1V@`h_WC)L`V_hi;5QyPUM&oAvTK~LSiJz@#4uBASZ&v_ClgWl@DEV ze7VqILYD+*I!Y+3kxxfJe>QS7)aTC^5DK^{VBk!kr+YsAqgvJKRjgUHZspq5>sPR0 z#f~Lg*6dldX}^8~(<>6Ew~-<_np@WqTuzQm-Q}CtFJFOy3kD5LQ0L%;4Krfox!B^x z$B-pECP{f@$;urwN8a3Vhq{92zDmbDF7Af|0K1!b?@fg z+xKta!MCz?`_`}BxdPwPm6ca8;OB-1OHW)~vB}3WBYVtTlKc106~R;XUS6fj&Jsr> zJUHE@Ld1f1vL-r|sM0!<3O1NMJL;&Bzd)uca7P|{^zlam zJLsUe2bb&XE(ZM~NWuz5DhNf4KBR~ijHtYf16riqOuQ(&)Y797zXXX(k)kxn!d)zU zl0p`7dQqT-Tq8;r*d{5!4g>bU4M;xw^z%r?R2OsQ<0|}Xw|In~SowU$GGd;9& z(kcm2Oow35pNS)nI(B5eOz>Dv(|R)pb{1 zdkt_%LJL(gQA8bW^ifF3yfjlRnXPo$O`Gj>T4X!5&{}G-ZMITryWOnQQ&B{ATx6MK z)z!mXbWteR3aYWj4t$k&UV7^li#P>ac(7Pvj}-|5kw*Dfq$~km_F!odR+wOhAGP*c za>sqR*@mm_Hq?qE9=BhS%#DD$!k#P2CHj7HB(?!`w0C8eTc#J-LR%PKyM|LtmlT-JJPt^@t#lU@pv zS>|!44ti)>E>#=LORMCWT8cAvxP^(YB|C12@g{fd7Wy_wmR$fBJaEDz*(DNLOp!&d zNP7ADlLI$!yaN~@-vDyR4-`_!t~>Yq^FKeCOTtO0zSa(cQO{C!)tfE7ZkeSRTil1Gbrh0=|z^uv+p2#?m2J% zd+@^-e|+-GH~)O}(^r3e_S<*=efZ;-e|}y!&m3|v9?yS&$9wVL{~KKI1_Rv14R%q3 z7SwttZFAe>Am+ID|3SA%Zx)x% z32?v%D1eDYEJ6=k)I&S;0FP2g0vEWjfCWl%fnCHagKK=>2EibtH@*=DV1Pj{>Uc*O zi05B&vlLX@HufB=3tL?b3~0j^j816b)wSGq!$u3&&F7l49W-jayBBw`RzAjBXx00qK4 zWiNM`OC;uD0djES6XlQq1W@qhd37KQYIUmy;#ya_0+tYV?Q44js@}lH zSD=GM>>?gPO~yX;sg>m~W<|l#&34waeE@BNO$*XKm{!3j4QWel;Q^S=6sQYOY7%L? z#3ja-wzu`^ErGgAVHTB`za_B{bz5OMDAAdeb*f{TJJqUQ6&LadK{vY!4-hCKtess3 zKcwIv@CG?h)}Z2ASMdlW&sDJL|NX07o7~sHzW1P|pf6z!tB1rcg0YT;=42-;hs$PE z6bjg^Ed>18(}MQ2X-+Llk+BJ6uvVtSU1~B_tlML74G+MIEXC-Cl4WSSVa;52J(LEr&+ zm(=?n&@L2hf8fFnvCzJ z?xn9=1nqXZl*GnE5x#H&ee+xDzp+L%)tYJ~BblxTeRZr44qt&1Lg5Ryau%rxg2wXN z%U~9>W`)gZ0UNu(99MS8L7v)?Kl{OR7PlyJjznv#+_)N!ZBLJ=Ti%Ko&@p8^ppk0C zBmSM-D9gPEgfA+iGT*y0v%`eOg1CqyzRMy8w|l#|6Ro=& zt>*i<1VgC?d$tJsp_5apze_nMTBaBbyxH153iGgC@+A@jKPhND#sj}OBed7jxhJBm zr&=_0^SR5*CV9XG8+$kF(uMmIJyJ5W(@O;ZQvs>M1QRGL1N=g;um;)t01;3?1{Amm zOvBx?wS_Az|1Q#^3j_fN*g)d5tjrRCThN5$BQQRsJJCur)Iz~fl0M*ifFZQL6tlM3 zS|UZXGgaa?;o_+83qMM1yb>!vj7r2_i>#+wE+up>_d5Wrs<9QIt^>$4G7vrdE4@TO zy<1QO)tf36*aa}G#jl7xI!M4H(>gS4KsD3@z@jp-YeOpoK8Mpl$&xtCB8KA&J&iNH zjytwv6TuVAyO%V_y$IqL>dMiED>pxwH#YIqo7O+Ku+=|$PCUdi*U2L^pJh(I@EMlyxENe8h(?E%{ ztPbR;|2!1E5HvOtWWKs%wm^ilK_sO)gFKXj1mg<4m0LL(w85Cur9TTabo2lzfGL{< z!kH2`B!Yy>nk@aQyhc;PP=tqen}7hIzf&v$1yIFJ7(G$qG(5nATj)nd!vugFNUXdH zF-$b55&=xu#WU>1_>#aW3oHtJNQOJRhvPLxn7E6)IOKynK0G~+n?{Zs!8ZFWl8dn6 z+Qvi_Jf;%7JhP>fGp2H+$x6IQn-qYWTtVvdyC>qwo{TIc1UjE91yLNMdYk|%h{7VM z1&tiNVQa;xtOcq}x2w!b)x<@EtRk#C!?1+4v1|h>Gt0qp$Srb1IE=#&V9SZKLl3-# z|BRGNXjDFr3^`-VOE@D$7EC1{^zB~-QR#ZN^Bta4cIY1P|PE$c!FgaZE zOKxPUi=xiKOd=yP%-;e(9~6L>@-z>?QSTJbb>vA%*u=>?Pe${(cDT&UtVjC0N6^&B zVbjAzC{1!efEU|O{uD_6{{jcNGNR2x^|2926 z5e?Ch6T~g5l04{CvFL2c!P_&S(m|P`QN@I? zmx3@+x>iG-z9350%bLu{s=OgRfFgy5%#^LqETf9=p zIzq1`P+n|9!E)8w1jY(1EP>ih2%SjZqyr3v1ZEsgsD#EgWm9Au(KhQW|2nPH=B&Ov zg-&Z@(ZNeG!i-U&T0F+9$wJN12gA`SET!q|(FL$9FH=7NOi#>&hbE+g`Lopc%mj9= z&rRUeS||c3Jpd30ReQD475hmm!lG4O)g`ks2XxhebOaOrth+N4nz!qpG{xZ*{eS|DxK;N@9 z+~nNcq}p^dI}ngVilk7jH9k$CH&s;K53S2#rPyMP1-fl5z1>@kTGozjRzHPS5Q|#~ zyUCQr)@Qp>6}-{BHN?nM-pNt~=51bc6-92ME_GGP{B75!+{dO<1Qj4!qy65=ZAYG4 z+Ehg>He|!}ZD03&P-=QO70}?(#ZX-sGdxtqR&2$Hl~`#MQ3FFMGhAWbA1z8Fc+3c)Deuy?v!d64IRvWECQexTWOx~W9*}xUt{~4pydOQFl$bji(*Uo~< zs9XYbQ(^CA;i(JX<2phZwyzp)!?XO-2Hm3frKT~R(9!L{;KX0iOI;6bQ~urGxkD*u z+e>L1-~ujSDh|xQR7nLM*%|fDlTFz!*1K#SUgOnUjKbi^`rGDB&nBEdbyb8oeo_*) zPsS|)EiBqR)?u7Eyul~_WZZ2@E55-P&0@wYrE47}FGg9`lHf#LW#s+V3=UTg&P+Cbw^PgjOr7KE z&;@a&gI{iHAv=MT0t{n1$suR^xi4 zf>YE57Z~B{)nyleMYLmT%icFWZbvMY>QrrCv|MKQovO0~fvp~0MeyNPMb# z#mxj4&;=>|0LtF*U>4t`jp{$vqE)?W|A-!M-qb(}wa_0n-LJm#*2d=37_Gk3$!O>=8Xw=JB=Tdn9^O>G6xbX81UB9>$sXTGtm z*hA-51mDJ#&hI=Z_DwEKNh~EVzEPCD#x4%<9G%l7AL9dOa-aNLD3|3K<4kxk0%CB1 z#f8dDH9b!C^bhdzP#1MJqFjV7PjmBbsxt9`qFRW&JXnw4t*+<{zEF&gbJk8>_jXf) zC)SXDGdjiTJ>PMj1oVby+dj9>|Cq~82%h%;*1KmnUy_#LpEg6#z51?+O~}5TL<{X9r)Ld z(`r=W)q=27vS5tbMnvTCCzk6gj!BtrdUlR>nx1JqAEhSk_y-^czXN%}e)2S4V+(NZ z#pYRDo^W$7&3Fw^n2&kza(6ui?8u7h&Q7e~6K%k+s-Lr3^M*J@=-~?;GovTXIiF-2 zhi$!FPQRXAVlQBn{BzxY!59U$jxzK_Kk}KL_5t5`QBv|!I&S67Rpky`c|hz5IC&%Z z%*GaL0^4Yy5C-O?9faCh?xt2TgJP!rIHyg%;0sfsa_`W8F9n zEfNj(Ox9!_U)DU`*uS&-|N14FQs*+;`e-*%XZL!(4*Sz5d$XqlZC`E&mj||=w{d^c z2`6H?f5*D#eX{}x5_uNLSpZ26LOKc&Fm&Jm1SU+2ChA$FM^BrJ8aH0FsOP|<0}(NS z_@IKJB04D*>C#1vn1Wl0W+uYZXOqo7I(OIRrHbuJ>EnHh31f;F&bW>VQdZ9ibCJGWH zg>)FI0CC{(0eJAz|Hz|)>p+SkwQ9}mljx@9K6p0QB9=mh13E4KkuGieH0so*I z`Zes>vS-t-ZTmLv*d)H@k(1{j!r%x}IQT#z;zWzeIWn(UF(f9DB~PMMNe3{o2e-CU z##1vV&z(Md{v-+%=+UD_>v}*YwQAL?Sh;fjDu@1p-&(nj6;)O$RCGPn6oF2;Mb}(w z$)#3PY2oFRCIZ|t)n9wtFfb5(y~!aMLkOtw0Ynldw^2qMd1MhtO_BtH3e>Gchc1xlB8qmmP&SiI zmxWhec|!Fu{}h=>A%zTHO+ob@Rq}1MUsm>oRo_@;J#f~7Y%!>(fpQ7Zo&XKnbr*!T z>?J^76)L2NA_#o2;Q>f2CQlj%lpq;RmnDKCPMYCSOA(5=I2w+nntCd#sj7-w3j_7$ zV{mjJgg^oa6nC7F6fM_WN6(4$qyyAhr;?S~amQs%CVn|ym^~GRo|z546;+!k$oJQq z1mTCDSddtY<(&bhRUm^4qUEQbbGfC~gM?~g%Pj&ZP!(W-4JK+18YY$)E>wUh;$$>+ znVC&^WD+VvFRr>U!woz9Fl_>PWzcW24n`P}$mzP#lD#q+(jw7Kr^3C~Rq0YpGHqG# zmpq9%|0c|3rl(YzPC?}Xn{ICVrdRdRch!Fl{Arh-MW;2i2kNRds4aNmrPrZ-0cKsJ zD(H)tJV-o-L}XjmgyKy(ZI(z8geeR$+G(r3_KgC;N>Ffd(`u`68XxJAMtCddBt#|! zN%eJCro8gk%aS*qPh!rj-cb$CMJ-kF$;YkFaq=e?S$94@?$Sobh1SsM=2_Q+Ps59- zUsJ2p=m%FHHYsEy3f$=?mu-dz!U&wrHt)Ur{`+Yoc5Q&MT=11Sq^d&^)d9`l$;9c4=_3O2s!dlfEImPWq$P?17 z?B<*iHt%^NkZbiyf37PjCkVOOpAaKCnQlbzmK_W{s`3@c)7@ox4K38bCs)nn{jrK!pkh9nMe>tsS)wT8**Pdev33BYVub?3C?Q4aFk6JjVHSAJ z6opYUzfeF4s+UG!GPI$+6sDYjlaL=VBmqOZBQu-VB#4VO#MMfG^;(5-TnZE*BWL0%D9xYS9%NYc!6Onj+O_1C|8-jhOAT2zZ% zw=Y?`U>aWQR3c48Mi=Z;7i#P(YE#=V5+vYNUxCDLU`59u73Yr2gC1_3)X@+8O)!ce zButJ~lVr(|D0(%D4I$~yr7)3_sr5wn<$SV=Unxii6 zmiKCJf}d$=@Pz3&{o`-MYA#Sl1YeZM8)c=j z;1fJkocMmnhx$X5Y<0;ezVx8!`M6HnQ~--+06m>hQQy>f<5hK5R!u|t*y7eNJ`+vE znp7@QE;xQiPeHTkX9^^Gm5+UC7jUOkOU(|7)*G-WEfZj@^7qT5j7s$?d zZ3<63TW6F2OXwf}4dFv!f&<9jqvZ!z^q1VY|DAF8(MUvL0!G>Ib((Ko2Q}5zaAny^ znVL>0Uk08aGK?WpjNzYvpQ~Bl^qs}fWZ&XIo>3HyzC})1pn#oVo_F;c=S3Z`AqpX_ z4g!px5fH-*d0jSb2L35R1_&V$HX;Tw0Vb#b01n^)(m?`PqOH6g2;fQ-_R*7|Taa90 z0|FQEz1#6=Q+Yhg^2rSMDMi7t+FW2*8m{07&P9QkVDshTmmMCPlm(V#$M}U9)FlN? z>_ydGR!SHUvRz6oOhe}-MfZ3|5dh)XIifZC5(z8<2+)du*+(VTO05{+xpkrf+8ywz z+oxH@;2=u{p44$o*c&z<`H&$QGQ}Cn|Kcnr9*P;A8|Gpds#+PoRN{@3wcMe16_L|K z-TCF&D%D_9ZBf^3i6Lea+4R^XTq8!h5fkXaA0a>hvYnB6(AeixDH9 zMM#VlP`)gqWO&EB@L)8C3QKT6Ms_6zk$@gxLhO0ueIy|z{s=f`B9Wlv%blA!rd#j< z2D=GY-?gK>p_(cZW%Dr~GUy~M-XokPoUYvrKk^jhorhk+;(LG~nFV7hDdhR3-!baK zLfBvqAix(rqo9Qc9w>mcU8Glr|K{&(q=5mF2L&J{ULvhHggB1lNupc20bm1Sp-VKt zOFkH8bm5q!ROF2b!C_ZVmElgt6Fxd!(zu15{G)P8p3PL=4mBpY+{sh)np1WjR7M;i zW*t=3f>j!dmJOO2DFQJtqG*<;@`NqBgsc!H*R#wf%vK`BTFLwFF|f#f&dofT7-Kk;-ML6(4TOWSHdTO%`aILFuJR>7Fdzg8oUkf@-MlrBRe>H{qn0PK93( z7KddLVl{x~DP)-j|C<$^Q3`OKo7#fBF_KQW009vLjQ%RY;)n#4!bcdGi*(T1)m}ne zVgi6;0T};mekx zE2hVUnku?ZXtWpzqCDsN^pJ-M5r7zqojE0$0$X2DCVC-&vU$h<&;@|9=uO-LkC8*K z7Od6Q2#sEZ!V;;hjFqv{N;poevQn(AjO1)$VGn8HcZlpxOzLhT*QgF&9Vp!* zsJF7ky5tmfjp5vyYlYgZsWRtLQV3zmCE^N^tU1M|oF6fcm%KzA0il<&4VQo{X-|xY z)VjpLUajZ8{}C>9#3J0CLa--$I&24l?cB&G#U9}i&JFTx?2pt-HQnZ>l+?(QEQ)}k zKN98K)~(;>t(0aetKscD?j?mr-j)^u^X8?C9Sv2qYbI^WUwjx58A?LZYwbX;)m=yl z5Q7VN$0n!~;5ExmXhKU+?dPsOw|{d9B3vrttX6>(kz4B9KGJcJ2)CF>6SG1(ZUKhQv0`@17bfLLlqO4YBLy zui0Lr2X(DnDu9H5te51NdE7*osnl;uaIMW_7H6^WTJadp>~;O_@>Vdq&dh_X$qv;^ z2b-~6ewfG7#k+hcnWo>-u8ty9r3yb|d z|Hv7iG0+Nt6g5rb-UNt-==yQoE`LW-y(!f8U=gsX9vibl|APcf03d%vSduRNmSt)l z>$d^%5L0viI`YQWOAkr%EqI-yitO$-sU{;U-o*SxNJBD;0u0wCM4$ki6tmpKK^H;QE;Ln>zy#PZ{BEsa zn67@D<^7Ii#)9J`pQc4lF z6d8N4LEJ}RQ?FHIhtTN79zx@XCPL&^38O5**w}&skO4tIHM1-=o5nCzZ+1f`|MT<6 zFChbmj;1DjQgbwOBU$b#Bxe#xQ*v5=AqJl8H~;3$a&lZxv0TTsUCVT-*0f&dby47S z^zx7^1BPJ3ax7CtP!lbu5Tl`dUQ4iq0^kH*MBpuKrc5dTLT@%_2Y?0Gu-1;Q4i``T z28ZlHtm;a$Ma!P-)(cf^he%h(Ee&uZ?XD&-&IIT8ZQJ%r>$h$1_9^?efP=Am98J{` zw@35v4x8~+WCv8NF=XLmCMYYTEC z)`JW62urw&p^i&vf*9FC5x_+GKJ`xALJ@?ym>YA5Pry|Ja*2}!$!s-O8!I9MpqwMC z?810YTZL^-AP-)~EtNFVwKYr+`djn3TN65O3;ChbbWuq7Q6@@0?eKyR6N97EVP9p` z4KN>K_)GBmQT4@i|8gqcLd_*~sjsgD0Dy>lcKkAPGoP-p()oI?|2MqTuaQ2vUYuU9 zV{(1V?Ma8>up2wT2YIp!I7+?Xb0-Q<8@Gb@bc|<`gClmOOZlZ&T@mD%3w!!c;J^$~ zl_p5?0F-+%OF$B!x8*&FBa-35l7TyPg*=D2G4t@JNzh_{75Bh)qd%z>R z7Y{tatA~rF62dz=o0B&hCvmkCZOyN8_9(Uhv{09uZ{kR{0DL^i@9_YvKqjC%F2IAy zYjx>TbeqQwBGWm0BVi%O_>qQmd{cM6ABBa2b5ZU#&-c7tm#WVXc#-?7Lb?>A?=;yj zxt%BXjNiLLVtcztNRElSE)+qRGm^jBg3uH|*6;DTuRyv#|3<=|_*Q$Z%AdE3PjuJ9 z{E_0bNP}q2bMvp)Hjlf$&f|S=uQSjSJYNqzR4|y}8;{p2_y=RjgAZ-fAGw`H?Mpzu z7fOB~OsC~vz6@_Yy05@@mqI&)!~u}**t;j{y1B|r`(NA%eA9%K53nkGndJR=?Bjj% z&NTZEIo}gG7{4HlNv^_|WqTvNk;Xjg&qU$_#HK!dHWjpWP+%Whw}>^g)u#}SLJ%hw zvWQH8hXMaMcJ%lWWJr-CNtQHu5@kx2D_OR5`4VPI2}xG02rxljsZs|P9RQ(%4gxxK z!jm74<-Y08NRwZc0>;|DeEF0t?0(d)DlxSjg6zP3snJ zT)A^&6*6lVuSLCk`SOKGFzhBxnglc;CQ4LQq(q4>o_Z9r)vFJ*YAOhpY~W1?Z6(~K zfS9f#ohe!@T?iR6jWJobcKsT5Y}vD04*&q5<^&5m^&If2Lg-MVkn%uUAQgG?-RHoi1Iwb;(;S-xvMfzlAOzyk$6aRXRu^F-~gqvGJ-` z1yt^ud6S8(BP}cibkT(vP1ZZjB3nE_Mhe;_oRGo_Exa%$+iJ3D0(f@v4U-R22(B@v zj#EyKs8FPD0p_ss@3QH@8mo`9u-k+!wX|ak|E=(REblHL^GXlB^(rFEE5Z~&EHSDe zGs?cAl%h{EVkjHzvdpTxZlKRXOEAFFYSe2j4+_8#%{0|qlg*YS03Z|GR=|lj-+m&o z#1omyLpc?fWA3Ww2IK0h%K{tg#UJX7N|KWr~(lE|BC%~nYc6thNMB(O3N>67sKB~p$ z`it&A%q~OptZlc&F_vxF>h@bmCnZnFam(#%!GaP=R{+qOluyb~k)zVZD=m|eU%;pv z$d)29I51!%`C1E^f)$>c>Z;N7Rn9pf9@ZxWNSqSmrJ7x~S>;+hsyRWos&-^-)A9~( zZ@~@syt-yCm!iLr9E?*@h~asto=1(6zN6^O?xzB`a*oDVy1hleWsF3wCAE z;p|j~qaCdbJU=3!c@iiyz6>LQzN<)BZgvY!5l=pWi_(e=XG7S933DKS03{}Ye{H36R}N)VIqD$#z3(LApJ2ve9M2ty78LRpbZdr?E< zDp`pu+u+7?xCwwfAU3-6l`e3rgQ2qMS2jIPX#w|h&J8V-!?9?`b~y5(4-J_+@xZKi zdr{y4si~I*R*GMj8H@rTs2JqI3!Gr9B7dlb#Vlr%A=WDa7%S2jv%sQzt(50Hd(}BO z<>p}r_|P1I5}a^~jefn{(=PQR3KTdef1Rn8jj&^~)I9W|%@m+q#zUzCKC)5^M54L$ zMvz1d#xSDLMe&M4!FVa9f`)U^w7!xEd;u?;pwWdQK$s9zj)wpdqUTO|`Wh9+Qfu%y z!070hOBU@?egXxk|NAh;q+t%m7B_>PjeeL+h#t~q3%2!oqI(ui~pkO zXq-klx9rugxz%k)R0tSIh?S)kC#b}U$c&59M-i?0O{(CWZQ;JWT*_Y z5XG!SYvrTfIWnx_1?vIFi%m?~Y*V0t;$j#hDz(;6GAtz;Yzbl@nj#2#m$Gdvbh=yr z`qwsiU}GBr|L`!Of~cr#HIZ@|oYbW9Fn$H7`2M=7?!3}v}`6qwxW4R-iCDB|NdCFuZ$B=StvSU6<1ym zW-No38_;A0lXb(aFlR2K9kuxHx|!W@W+&~O++*09++;omlVgaP@RTKc zGG%J`pg_bNIO>vV9RvUYz2#}zu zB8cHq|0CJ95VQ#Nuy;BDJlIpPa(Ygj#EY;=R6>{JR`yvs&jI|)c8>y4N>0&84#ZR-g%Bco5Uw+*zG>XWxf@JlV zAWeeU372Pphdg8s>0~E*;HN*=id-1R&*FJ_G?ZC4>F6Rvp~%Fn54-Jca6hw%Nqi)U zsX2@Sj{3~MJFiETq+(E+G%5I&^=elt09zLg4_rKuz+ojTcLyl~3Rn6nU)eb#8@Loi zC9Xdg48M#!dRg}C__aB6kdzg~x+K5s*iC-&xP19Mpr$6ezdFrxqxrl^dg8o~BE_Y^ z|M|r_&-bwaC0|ty~Dm00`K(f-SVLhAKx9QGLPh)42RL zzxj<<+n`eJ`etzC(Cn7{K^*olMK9{Rw<{6VG=JhH1@~$d+1n{Fwjc&;T(m@xa`3z^ zd^=+igikOY`6l$$vDxU`2`sxeJpq9O6pgHCFF6mLUqJRbzsq1U2?Y&kz^1zHbu4e$ zK@KYWX2EQhu7)>(!vMAX$(uwmo3~YixkYKcImK8z1p)A_DE5x;mgpacC`mE0LG_KlEV8SS@{CFs3|FVqi zQo{q%FZH<0nIeUV?ytm3tklK~?z%+w9$?-a14?iYDsrv}b51IdqGR~&wS4aus6r7K zuxTIy2S$McuW)k$%(s9F9c}_*L}y~AE|-+T;&jmLu z2J7&lW)R$*iIIxv++tz8+-}s&EdD~R2W>_G_Rq8gX8;#50Rm7C9FYL0VtL$ZzP`dh z25&wfVfYdc3p){Wv=H)Q=~sd!;^b)hgu>o>sSM9h4Y$t~A59b%00q~D!mbMrJL9^b z#s#m-4((9&a%T@^27&0W#0;ps1krcgO>YdMlFZ8gj3NPCEE-`=?|vr2|NLfJ48`}B zBnqWaAdJrw!;xw%@bMmR$Z!KUfGg_sU=bF<0~IU{T~P$*QGVo+yKu5EUwmKGI?!!37}T zB+v3-2A~hhF%y_CPHdF#N=i{BCjV|L732c+vyvP#{%9 zvlzvZv})XvQtb#p5YLSmozgE%!ywiyfdq>Q&^x`;GvVwz>nB=>p#iW2Kr|sSC-d4bVCVHn4-&23gQ+LLlH&t?XkpQt6mr~4d&>{#E6b*au7p)KK>$Q*7ub|nQK$oc z^%KA#SiztdKA{(SK^AV{26kZ=TEJPIl>}Nq2wGqY|D3e}T0jb;woV^Rxy+-nTmDBub9X} z0lok|dlg}q?h}3$4BYe+7M565;bA{v2C%_mEtUf^b`oqr3T%L5Z2%2GmI#Od@g#-J zrqs+(7G*(=RIPL`48j(sQa`qo5ic}WZx-M1C|Nv4vSPsnOrRtaR%jKj17raLIA9Vq zmIE3=7A_VWjP+@I;b|WhSbw!6eidswU<0)FVGRKrBEb>v;0_>Q6ym^a`2cNgpa6n^ zZG!*}h~RC}AQt2nqo8xt3@$?X4>>Y2RvjP#|NNF;XO&s{$T<+gXVr9Q6F1O4!Dt6S z3JTzHA-4b|H*z1>aw&HbDtB@xcM>K60%+lL$yRjlfCD1H5wO7!J|T7AbYim>Bs!pB zxmI;m*AQyg5gNe}Mxk?eR|=?gP=&w*fIxVKHvxcvJ8>3gI}?7$=KCn4Gc@7P6jyq8 z%UB^`03>&FA$JlW*A6rndm~qECszu(w|fhKW3d-~CpUc8c5{PZat)vW;I{zmV1DU$ zckQ5a!`2aQcYhtBPVKZ)nUjyWnVT7#C0d)ISqcWAn+G|Zfq0w)A*8>Vq)Ymn4>q1t zS~hwCX<_+{)wrHxd46Ylg;ThVby$}TdWH|0rwjUVgV=E!TBscwnjhMzi`uA-x}k}9 zql37k(Rrjr8mgrloJIPbRT`^b;uARGrD58PV;ZbC_n!ILmT5YUZ2*PUH?4yinAf+b zd3vFec4Sg*y|ssE!|q(>T@3xET%ny^~}3>?9FJ9hxon6Wt*tjF4` z={Ki=d1H6krgzz`H#f82`k)uuvxj=A=^C#e`jsCVw71!*of@R6da7AFe(m6@3tP5B z;u9jFs~;Pty&AH~+Oc<8vU$6fD;t<6o3o2st`(Z0PrIQ@o33BkxfdI{pPPtJ+mH=_ zqk%Yx$Jwu0`)hdaT(Sr^olQak&7B!G&`fxQ!dX zKfA7n`ni`Hua}y+r~7(=TBJD|ow*yqwc8HNa=gd8wo&1{bNi(qyR5|;tm7D;W!Zjb z`nT`fw=WyNjr+4XccEW-g#Wi0#Y20)>sr87+^MfSu)ABv6P&8y7Xo6t!Bg5;A^fY; zTf%$1p6eNZ$@;f5oWps$zLA`!L!8NPIIe}7p;uhF1)R#M`?UL-qpNzm4d4v8+s30e z$5q-`BVZEhV0Y_agw5Q{fxNMOJiRO2vTa$He|xftd&!qvzRjA+pB&0T8_J~|x=&ot zP29xmI=h2doxNGRrJA+9+{PgwXv2J!J0KD`0Tt$V&F#R<%RINy+{c4Ft#^BOZ5f4g znz%b0$xXeu?fiza6y34sds^@nUP+HPE_=CB+ z4%{HkC&3Lky#PF2&HvSS%_CdG@wwFFTh1*!)L%W$@%+y1TgjXJxRG1dr`+7P8Gd!$ zy5sk++g;1~8rZ!&i0xn$2D{if*iE^*0NkJs@Yl?nea-uw*)u%DGyT~K{?#*F)wdnP zk9@8~xq69Nq(=od25MZ~WdB_k+oN58Qy?176wD z9NN=7&6C~PHC>jKeS4dI-{-fzhaB9!eYhoF==r?d=lajny`hobo0Gl{mc99 zBVOq5zMzr*eg8Li-Q)Lq`~L4gTj_@ysMnq2J6@fmdgQ_R*S%cpA-(H)6?Vxy7f4#s zP5SaPAJ=uA>s(U@m}2j9=YRp^%uJDh1&CveyBtL={-C2)m^)J zUH2FN*MA*;M*#v%KJrua6C9xqygTekdJk}Y`IY~hm%sTz>t(ARi=Ci zGp5X$FaPTl7?83K&YL{zkhD3#Bu)cCLk2zAkf6ge2ABpa==97}iv=Kz8U^9gzpY%m zdi@GEtk|(+%bGolHm%yVY}>kh3%6^eNlq&cM2dId-H8y9^2G?a@85|S|8nGb@uT93 zB};BR+L)*TpDsxb!D*A|%bhWI4zQVWC+MK0i4vCD6zajcs0$Rs8mCv>*|clhzKuJ# z?%R`^5|rvt;=@2rpDKLFP-)V^g#$NdPB^%81Nf9aziv43!H?RtOQv|VbkWI1Ckxel zvf@$X#D5cipSmK1`B-<`zmGq^{{6Te6@bXp8Bz&IoPh2LXdrh*M`)ANRgKm zRTo5tV2;TY8wRB5rkPBYNhfRWx%bq9CGIIF_C_vDsmP)X&fs-7AMm0PBoC8`3Zdd8MPs9K$y zt^Vd)oNxM;riW?Hnd_Lk8gT5fT++zvfP^{=--0v_THK(~u6EIlaUj~kquzcCZvVJ# z^#TE&n+Hvl=?4FEr$|@_#GQ2aHv>ilowkj2@ z0r$(VfUmN_^Qo_{>TkdWwmP(ecS>Az!xBfebi{Q9;s%Zo2}(3yf7CQrOg5J+i%=C`%7!81zriIv<_1oBT29!x?|RY4^H@O9XNui zx?Z1bcBPF|`ncI)yGuFCjzf-l=9Jp7xsjY7x$fhda%zVSpuW50e=kZoH~-wI@{Dur z`>y&nf~W;j)wWlS5=r5{{|>xahi6){*rTW1xagv59=02wdv1C3mOFnW>CHdSIrXJ) znrY?jwv77Ajs>^$&$3e~2);ePt|~#fZ@g`{!Ou^B@Et&~xVe@ZpZv;^GheCCt&41+ z>)-aaM>Yax&PLBGAf-Gty$2c(be;kgXhL%n$#{rQR&o*>4y<) zBg@dHMspS8iF^!P75@lGMnxhHE5za!`Nu`>#c_t0OQQqLCO{opZ;W@8p!OW;y-YsP zjc%-C<~sREO7UT8y5m?NPl-w&VZ&sJTOlhC$+%B~k&G^Mp%^g-L`Y`JbhxagBXjvi zG!M{G6{bDtAn0nbRo=!p@J-UMb5 zyC}!#Arp?Xr;r-)N=)UCnqRx+^8QK7MuxL=29%{i1Qs|jcC#zZ6jY%q%1W)& zY$v5^X&cwn=7H9L|08BY@j6(+B2LEF+Wp#Q)q{#SpwLZ%{kXh&33ul_)(I zXtStA%epnQo7Jp+=?m4ceKu^)wd;{g3p$bV^}j}PZfwK3$WV?np`fd6VtZQFW}0`x z7Db`{l4^(HwwGilon~g;3*Y44x4tAz?sDsUVic2>xtfjKd;eRc{Gv;$1I_Li;n-mj z-XTY$@FRtP>`W8}H>JP@F^G$N-^x-KzalnqROu^9{<^Tb)rB#PNt$4;F4(18EvPw> zN=n>H5y)hAW-sD^R23Ev!ME(7uPfrxVs5@}n6Klg%G^FbS#l}W ztA1(B-R*8yzqRG*j(=L_NT-sm8Qw6P;krK!>;E~<^Chxo_1xsncGk}!9dVSOY*N)e zx4!Apt1qJ~+RzHRqy|3qo|6mLQRFs9ckr>Ke@(@$VR*gm^)zrp%ibZIY`&EJw39t6 z-#=gZz5b0hXKmf*0+U$QkOQ=JA2(`P_p;A~)HP$73G8(LQJToEG>7x4LQoGEsvhQa zlTYl{5|`S(mG$pwKRM?aUpdO&=IemPc<^nmxV`Z-Ygv7*?ugG1y_oiJn%}MG4y&2j z#fCD5Kf7%D8oJ-mmM*BDO({`(R?xFH^^)-%)zf+#<_0cwk=6hKK9n^_x$T|Ae@?%~Ex@h00k)&C{eRJc#4JvuZBi-sQo7gunHl7e?yX6JPRyK3^-Im6?(mQ^sOApzy7T>yMpAPNR=Uua|u5V|xE%U#awWcSa_4lmXM!e(ed$7K%LRC2H+`dKP%}4ntcFtR#cOAG2NtMnexs_YLmxhlBE^NhyZa8;DSA1=lDQt*@?#6lYcUc-|e|DHu2`FM7=4X25HE|Yz z$+c32*nH4eVo~>WvzAym=>Jpa2Z_1JD3Vxd@~3gWXndBofo&FT$99TH=VYFSeDP*{ z@+N*uHebh|2wZNMW^8DV(uiT6 zsEK?qhjPeo&c})=Hz_J7VAi;JD3?;yfKu2;f=DKaWXN+qHD=7thcRJa3UHF8jm~_k%Qjd+HDDVqAhi)=`gr&*RcIh322n(JtoOD2W#rF4kdl~C!L%XosG)@Cioj2b6s zexP(MS%xuLRtY(p$GIDZ5C??GoT#~&iTRcqxp}WCg!8yzqUeXI*^xMzbb7Ua8`gRt z$caZ)3@_<>X@{KYxf|iA7d6@HQpTp>(MOd3qc#b}Kf<1~{w8?pXaG3@Pley)W zEUKhx5h*enqfa`ch$){^YM(Z$i5Uu&6-uG;`E;xan;qC;25D}0;B!lArf<;!XvPQX z6`>I7rt=7&(07}kcct^Vp%uE5!ia*)Kr^N<=cK`=5c?U^)riV%vY=u;8>ZFZ& zqi{N(Z>pMf+M{+#p*`A_85*0%7kH+abY#evp^2!Ysus%GoDS)zsXD2UDxr}Isg!uB zud0~JDF1zw8mDj-2j+PPh@hgR>Z@bHo|6cnLiwh}Dx~sRqcvKVttzK@nwGr?hx6!~ zQV6O(1!=#Et!05ii>i~TI;KJ|^+ zYOiF`0e6s8DsE~s;&bIt944L>q>NKmaDursEu&16Dt;J3Rm%W zu}L+F{%Wj?8lwe!smeO1+BvONO0KK=pYF$KxKm>w&l#`>t~7_}hFstg;lC@ZDw zxc`mahzNz6v}3y!=*6_}$*oSyrc#@;9Xqo!OO$_Vus_MQGzz1TT87pts$`qAJ!rGz zH&)@wwr?u4aQn6}TCyUVlRHYXU8|+!DzAci2ba*Rd`q!C$fo$SrWqTrn`^Ua%cxM= zwuc+AZyTsyQ6tKsFl0CFB`K+ zm8;MDxoc{=iz>b9i@G=)zid0d+e^Rm$+7Z#wTbnTEV}{ayS&PoVHdl$w)+OPRsX;P zyuYNYyTHr7#%j23OTWVFgS|MMF?qBAY`MXjVTy>pwacyGimFemyVV=LygRiv%e@hr z!V>(pL_4{o0J|D&ub7L37+aod8-F<$x`2DS*xS9(>Wejt!ceNelL$|eySFsVxA_{c zYMQIiJHQ*;!2@i<)Vrt^%&7P4zT+ytN9@2T490~E!-ycUOkBP~=eeMZz@v1+>Xp0g zOP?8gy>;xl?N`SbC!!H7$3ZNkwK%9Tsk~@>ujebhox8;WTe}#0#U`x2@oL3F>ARx~ z!S2bz?TDgxa1D2m!GyfLOS`5#T%HcLjUAkGO`F9XyvC+`!YX{RR-CrMEC0z~e7~q_ z$=wUXchCqk?8*1ap7E+)jEco?49A@d0Sz3?Yb(8tEXjU6uHE~^$SlO8i^OXXlZa5S zy$ryga0sEBzAov;Pb&1|4%eCv32I+g*{LmVlrrX%Y!OX8748r4#$nLC&1q`|)EXx30%0KO| zjLgP&yv!f$duH6yXk1jAE7Qr`x$zpy51hbkiqTuFu~2=*99_kzEC19yJ;oengAs_$ zOPti@yR;u1%y-o(c5IMv5Vm6b*G!DLFwN9VO}iSqu_Roc+HOqK82!{FO~QeTz<{gQi_FSdjN0Vv3)4_Yp2z=25T*7Bd!cX1V!i?A8oytEAPnYf2>8-&r8~?cS8r&Tm#rTZd9sS*{ zOoov>%u+4UtDV*zE#4Z-+?Y+^v~8+RJ=#w!$r;AOA`Hw%HCE^g)#DA{@EzIU{n_fA zR9Ot#MjEz*+~H%}kWbvf@ygf;8r{HL+Mo^0M2+3)+}+Sy)M`uP)IGDzJ>WU+(mSTg zQ4F|fM!UHi;foyIQ%t*WJ>R^Yl`W_^?&f4`v7>F>JN&h@o6n}5$h2$XkUq3(O}$gC z*H?VeNsI_lp6E2Zw8_lgKfTXn2+TiT*y!8As6Kx1J^$KHy}2#k)|8IgP5$1#N7kW^ z#;TC3S`O2U4#IET)>F*jLhRIO&BJ1z-PViM?S0rN8n&R$>n_cHUwhHn4dgl9;0!*~ z?hVsM<<6eH-G3Y7<6PNVc2@;bDn ze&S-i>+Vk5aNg>|yzJ=P)=zxT{k-CQp2ZG=H5@vg||{OZU1=?0(F9WV-CzU`bX z@+2MOmj3G^9?AR4+3x-C$8F|@Uhp1I+f{w<*Nxi`pV7Jv?5&>g$;_y{9qav^;()8= z(mwMvuhdvhNLGH>H4gOJj_+{%=v4pD7f$jN9slHS3sJoxIS=j8eYUY)*mK_2p*&WQ9^CeAq?}Cmf1R)G zjrIU9_C$|!51;LpZi9ym)R2Da{H^W;-|mSYyNf^cR&Mdyp7(hl@ROg+z|Oz+Zrbd< z?uhRBX$%Knt8;k2;(z|?xi7D@i_e0;+rVA+L@()a-|?}Z*{bk%D{kG=>-2FB?HBFZ z$Iai-z3*Ah`>${OvmLVxF0WPnun%AM_uoiAlO{vQXtKmIdT5v*;8ggm@;`Dgo6kULzGRO zK7|@p>Qt&#tzHG$;f_(RU0?R3S=8svm|_R!gb4xW*Ej;z%Cxfv4#GQzu-?U+SMOfF zef>h!TGTB;nPd$Xr5U!TSe|5q`b68)F+xOlnEu6_S@UMjojp_R&^Bhxpfuh3JYCGF z&NXqtzTtC}w9KM&6Mp)fTla3>y?tl=RC=`N(Q8zX-YJx4v4V>Ww>Y5(Fq1Yx$jX6uh8J7nXJ!lT4$4k?8$doV;1MF10 zpoHXevP&<&)Xk6#6I)Tru8O*_rt=Cq3L!Xf12axJ=hRE3EBoupC7_BktT?0QLS!L2 z2PL#nr|e{Gs0{tAiA}J$V$L8pK{T{dOE1OfL?I>9a5&PM>ky8ll*F`DQ%%)$%uQD< zayWzpJvCNYEByqH0=?=KSO1~?j*(a$442(Fpf(|4YpZlb?jgRDIeqN zPEYp}mCI+h<#t54@8WJ?PsKg>W0Oyo z>O_$rE0SN7UxwKvmGM-yO*jyaIcJ?S-D>1q-PCqxp@*g@IDCsuY%Yn3W}4`Rk^VCd zoSUXvXFH9pS=6Pg<{IX!Gyd}$bGs(n>Pke8X|77PF1u}yXC7H;x95(z12|?o>Snt4 zep%W@vt^ra!2uq2KTwVbN4(-_v4x|N#2=?vzl{Tjyz*{4IE2ROEax2HPaKJ4?9N9g zy>!!0M?H1bS7*I-*I$P{cG+jAy>{Dg$31u5cjvu#-+u=_c;SbCDj)zM`2-0B0RI3i z00000^a1n%00{p8{|OvOu%N+%2oow?$grWqhY%x5oJg^v#fum-YTU@NqsNaRLy8

    oJq5$&6_xL>fFh*r_Y~2g9;r=w5ZXeNRujE%CxD|r%fOt?uiw9b z0}CEZxUk{Fh!ZPb%($`R$B-jSo=my2<;$4ucF4@R^T-Z{hD?gE*|X`>6+1vMz$QR| zNvLDXZg|JQncHUs8Jf+zw?IR-akDuSsI>3no;wt{J^Xe6K@pHk&)i`M?lY{Nv-vc= z`()LuZ8!hFUdOoi^NUvt4}NC&^GN99Ck8&A`Smja&X||a|1WUt*M&FUaH#ZWpkE!h zVc&xHwHE+)2S#{Tg7<~j-fh|8huwY>cGwnp%w<^LfP=6Rorfs4Ra=7rj%Yvt!$Fwh zjAs28;*ITDcwK&za7g2iTz#_Kbt4jaVROU52jr4mRmUD1PwL2`d&Mzn3E>k;0vE zVxNctrCe|V+SlBd!>M`aAo=;2=%qD%q9B7)aw@2x!`Xr9s5gNaD3p>)iJOQyUYOq* zN|OI7D@?25NhGUh1VQMXI}&H9Z1F-iu39Xc3Ky#DuE^d8<88ZLY;r+D`rC1y zXtvmKx#i{t4lU}It;XQ1J2b&Be$X4@f?D&a9v#s@QhONx9_6kl4X}5z;~*4oLqgoB?TY77;MBs{ zI+rnRaAN!!?S?1_?%@xOv3Zt`Am_Qa3Gjsi3?B&1_8b7=4v*5o*%zINtJ%3wYx1)d z5M4!_Gr$0m(lMI1!nLwBs_=IUB%Ju97)1QAVOl1{WNbFqs6jQ7T!1W`45v6qzflT6 zLsMmJ=9DA&HOzlE@?4SRB}(a)O^O#HVIXW{L|tNrmn~x9^x#FyXoZrEY>eUjUWFYi zI@2_Z!Wx$V^)HS&5Q>tVNBL;JW_rFu*@@fldFh16H5K} zt(A5zrLiokUMF}~nv#)=@PzANRA8Z5-(Wrz&D@0wx#a{oEHZUn<7@c&+y}vz` zZh8HvY){$P&pM})UAyCL;bJr{2JWs9j97N^2}ainSCHy_tb-~yT0L?jIlCP3WXDD^-*X+8gIiz**TUZHQ9lnca&zqhX9qeF;#`M3iog@WmXn-1$ zRLEl?tV{oRt1gF>qx*ehaX%W`hvsKEg5YLyvAmY~!mIy(o&pyWJ4k2e5%tbuHnEQ_ zT;+SQIW2}LfRU%v+sh&rLvv%|?4X?33HMma>MUdp?RVurYh|7bR%!Fd=|nEKx4(I= zYFZ&pY7J45YeBZOSk@)YPpL18^c5vpNsQ-Ov(~Yu4pUYytm?3s3ZtB>r{lyYQ!+c* z$9gU^C1;qM_ZpzZy?%-#SO*{@_x6F%O>KRrdhGQwn!Tl_psOrgL#0OhDs4k;99>Op zgre8K>cz8heLTrC*NzP;=HAoJofRRmN#88OYn(gmQEc9N%%P_DvKJn-?N%}nIOR7~ zK0(ie_VU`8%~h28B{-Euc(3WauEGar@1Ujmy?+0eI8}aaEZEJsnu{)WqxB5#k<+f^ zxo(q9v9pIttK29CWht;#`$Vl7{NT1uw#{+Q^xBo~y#@YxQ=oaYxjxr>;j<=Ya}4YD z${V&y51P2eE^e9OriLYxI#VJcXsEtW#^o$J+}a(+uOnO8xGwdX&)gb`a&G|8R=ZA` zde~{fnWb4HLGLd(f_l`B-hJeO&v4Qh|#6^Io2P0^ozRmN6g0QQ3GH-H-A zdnI>fCpT$U=7clBb}5K>;R1Kihiu1YT}r2gGU$H47lWy%R?EhE%k)-c*b*DIGOL4K z4ODPnRA-}STccY&NZb}}e# zk~d{{h#xz*Og%S=E1?>N^*Il;hO#tpVCPV{2ZyM)h>?z>b3N#Fa&&Np=z@rda~()Yd-r2M1~VmRfGbvI7&eR_;b!EQSt;0fZ3H|Nh=q8! zbic=elv8h9h<%ioOa=6J#>b5jkuu98EymbDOa^^ElY5W$iCPGar8tcp2!q#{de1Q) zmPd~wL2*aZL=4q4D%em-W_LA*h;b;80!dsPh=i6iGAHLAk+n>L;Cc)R5zTdY!4*}p zcuZMnYmoPhbEu02X@?wnBm@7rckgJ8+c#PfcajyMgZGqV>@#;n`I24Nf_JxPk#=)5 z$#?Gch3t1ql)_!vCx+OujX)_8)0QUNV^~M|I12-IUp9Ibh>6nX>XE~?D zY6ascZGr(np3%(YqgUOQX+e2 zFHnh_B(zrU7XaF6VZ{H@gvjX-LP>tG*>Ru;h{j}&(m8;RnU(_Bh%>pE8q%A&=!oCB zdOcZXC0U*f0Zn$fe}kxXoj7wM2byTPkvNHjH7S=i*_KY%Y+%Tn8hDD`1fU9GhAc9m z%&BBq$U!GodZ9^^^O=)#IFt8gYWQZD1v!^dNqN7hZ(50*_2;3O*@J~Rflh{NwaJt~ zG=reYm{ExzCBl(t<{o8KNUZ^v+1aEPdUnJoe;WD^9WV)e8B0cYUW^BCF!`Pex{mF* zmJ&*)P-&QmIf}xmlXO{}RW_OB*#S@RYBKS^Th^xFBjk)TlE?S+V>2zy}W&~NR!AV8I*`}VFW^A=8%hakO*qW~C ztX%q+9T%d{N3G#@t$(Vij%Y6wgqQud{fO zB`Tl!nO!GZm7>a`_$FX8H3X4T2VvALdF}a(X zdau{|qK^M5t}!^8IlEn}7meCyN;J57**9)G2OzAPm#^9&u}W-%2xbq9l=M1sCrVsp z^s%K0kIlxhkJ+3OG+I+nlqSXJMv$Q9HLYOQuyDq?BhlOG>qR z+qH+vqzNgwrsj^p>#qsf8rWI1B)P1s3juo&sh60H`emzfE3tGdruv$TaGAGN39f-l za%TUVr0O`frc1IE8Y!cDs)k!bQ>v~KH>d5|xGYXu_` zihc`*)*8I_vZPKrw$IU>0-JrB0FKq#r!7b-TB@ z>4*ue!i2iQ0i3Z*EU<#mokAP3gq(@RrF%%1!BYQ5 znq-`}E9$>!T*mu5xTci6XMDUQq`*>qyiSLmM+&mU`nyM(y!f%ekm|>YdwhbNrSkiY zxS?Wapkf0Svcq97PJ?1En7@%swRG#dynM#MjJLt;#Adh0+ex^0?7vpbpJl7NTidyM zY_4ZpWozbrU3ndLDZh3`%duR8?G!uudL$}_Z<3s~6q~&&y2odH!1so#afzx~tHy*Y z#g{C!y*s$%8@O_ey!qO9!5hT_Ysm|Yhm|CWn8!=myno{X%dmVO4NWcVtZU6CTIJHU zpqr!(I?7W^!f~muY#hWZEHi)0pXN)0CBncz+qrYxq(RGFRy&=71DWGFTJHaAV2fM9 zDmKorT!XPp(IMN-_7TzFT+y_%y$yOKZ%jfbZJ`FJ)b9+;`RvGy{ErLb#|hnM)ST7S zEKpg^)m#lNU>(-bk{<=YxWplhQg_o`%pwo{DGv?0WW+SOo3%PU$?R;`Q$26Xn9x^E zl3NYdejV6dE!NOd)`cAif=1Y4El`5})nBdHSzKj;HUI@M00vOj1yBcN{c!K3cB=8b z{5a0c!O%TT&alka52v)LZPjSo*kSG0gALY#CQ!3o+l8&z&?4A>{n)sD*@!LMf)?Bb zFx4-}=qp_s!q??cV}! z+0cUE2rl5go!f)GOt$^oh>h9CUE#%T-pQTZ%>sy+#*00FNa>kz;R zsK5acfC`*2>k(k%uEJ%zlpg8kF67wY2oP}I%Q0zMEO8ys3%y_pk-!O&aPN`O z3;4e8_pa~yzVH7o3->PY1pn)iAndY0>yBj$rgh59~>w=)tb%55MO-j`0|;=T!gV(!S>y|Lj;_^;IwNR?p&7 zzwz1*@_hdBdS3Dl|J^4)>EA8hKu+%G9^INPhMpc@U=Z*6Ztnt*??I3AI6w4%FYKJ~ z>w{19N1yOXuk;cB@JAox=|b)Z*kA}8US|ZS+i-=o*l?(V8Mb1 z6}m)tQX|NU6=@};RT5+07kl$+9IOy9U=D~m3cf4yqhH4mWtp4|u^~)?GZ`|R=?JH1 z&y5=OoK)Zpr>&_~uV&ra^=sI%n|AFLN$mevwYSTzb(_{;+_-WN3OD(1;a=p1k1Gcp zI4|Sl5EVyvcsOwN<%g;74QbaT#mm5B{-)X4Cg`2ANSpp7+x>g^@#W8_PqeG;+q`{? z71*1D+uw#8PNm|cGt4>V4rENb=@6sELFp2UNHGczOpLGP5WJ8tix8s-q5%&QNJN7; ziAko-XyS|^(L9sI5ufUqWT^UTwDCq9bCj=xuk!QpKOp@BQa~aPg1|__AYg903;S}C zLFSy4P{ITwgpj!ducMMXCj*nRN(+qxk;oB81hUNER=jD=7VWU307rC`b51(zv~wvQ zd*Ni4A8!ltAOJZyQqTxhI#NnRpX~oKQ3(-k6vV!!jC9gR9Zl5BMmxOj%SVg!^ixib zbOZvKNaY{`g46^}Csunx!O9x;XiV=y+r zxPy;75P4)8)iwEKlufo(mKIQHVUm{*f|rAt;f0qLn{lRjXPbAPZp=@25m0DsZosDK zqm4cq>7dvCt`_WN(Z15b+Nw8<9xaEp8KD)Fy+k;R(FZ`j3}$!j>_1ST@q zeDlmB5&Uz|wI=y&(hoOXY-}K==|z@g5qg(hT7bO;+H1GHb`x^fU5F`o=Y5JPq!501 z;-&CFcn^r+2N`~Bu|*021dyVE2OdB{6j2sfKn_y4XN442=ty7|2R@(xlSR^BL=X1$ zDCK=zaDnFn&qKE#?~%a}S%3aF00V~q^#TSk5a0j@7ztCrz!VE)-~vxzipyP&a~EI& z1ut;H3z&cey5nF6O#uHqeuVHI_prr1h;Tv_5@8cWhy@E{frD7YFov6$VJvKc4CgIF z01coX3Qz!z>}gMk+H=JMTv5a#F5r4TWTFqN$3q@^paCABq6d;;MPwi&8OWd_7pq7` zC|VDDLX<-u@Z7 zlY=l^35^FdKmg9OMJ#A|%UBd5m%1!OFLfzH8rCq2Hxz&rdw9Jd4pDn~P-Zi=mpxH5 z5d~13;uMQ%3lINblZ!YUW;Sh6Ok;{Mh>+MG8qb&jHh$oZaE#;oB!LTg*zt}=aKR+n z(?@)A?Grt4Km};93JqxB5tVGi93*K_M<(=Qcs*hOeQm#xd5Bu)R{`e9tx@#%P3Y6 zoZ7r0QM2jA=t;49$Xoy<@&E}ms&S2N#KZyEIY;=}aRL^Q#{qP4izL`HpJPp#2@-Gw z5l~}K2olPn8P9$D%ZJ6QlXpVs~$f2Nlbu%0;XJJDpjdUk3vEev7F^d zH}Tk5^dbMUyF6(hbZJ>#2GgZD45tsVH^ye>G^aYH=>nn|O`lG)n%1NuHnqvc8+Oxq zQtT{foeEVnq7wlh0KpsEht*QRQ>(Z*KnYy%SblJzWMpOTtU3UM1gO9PKUf7o2U^Lv z(zT&^-K#@6$w`R%b)xFCC`MI)06L^My>dt_NClt?TRaxBn~*GKPs+>5#!#}hj3F{M z!Od?f^#MIqrX03+U<2ROz|QQcPoEf6<8jut-OS=JEgU@_4tR{X<)~D7Th&DzpndNP zZu~5;Re9tf1qw(+ACMb?=EgWy9r!{565s$4RJW~fedr{&+ua_2x09SC??q3!M)al^ zsvrM-fC6R-U->>3rT4AuE>pTv{@ReUJCy15OdHw*Gc&=eU)CAOPi`ps`<__KD#tyI%_01*3`#KAo=ioNOrLm%3CeQ<#ZV9;oA z+vvGAX5*yU%GMq`bh~(UC|)@|WQu|S1QOO+ zw=7^}f|iWhGjPMheBduX6Sb;k?KLILW@B?x;{rg&4y#9JJEsxPyX|d=7tszq8~}bM z4s=%ujfX_gvJZV&LJlqfhH&RRK95G{jm<~t9#c}?d3_{!-~HY7CB34UC}q9v-Ckli zncw}MtYxjv%U7#ZvotI!t(C3tI+OE^58ri}d%9SlM$ve#J*vjtK5JTISi{WbD3Vps zTdTH1#3YU%F19M@91uF&@SS-gbddur>_X>@kIi%C(DM(N``iy5dZyK_hjt(R)9G^~ zCO+^1BqzDlkjVF`HIZ!>r{3z5{dX_xtMynPT&A|Jv%?Wwc3uk+nW=?hntlIY)QnfS z*l+f@hDE_%sH%63cdzOJMEv{``@QAYP6W)IXJ|asf*2~mL=G0sc<`r&=TgP7TG1VJ zcIy?Q-W_sy*_ZV32KED@7X9cKdy89WBFglwGG?#d`dq>#Tf!k)O11__xFM=N1QWAd zgSan4tp{VRqQbb?5J^Dha|9dsd zBDh#%#Vwn&Wz)i^x;-vzrq9wv37oKA{6%C)LmRRo3?#+@ODz9Lu(#zaIp@>6Qn*7v z+r#3*HkgaK7Q=%~AjAXM#(Vlkmt+b?lmqmdsvN_FzY02Zq{O3RpH9j|cT@pUJHo_@ zI(u9~Qk*%YbTy^)Kb3mD*vmjR^fE1MII5gQhpV$MbD{_H0Dc&@GRz_^i^v#uSrAYBb5}!-H&;Hy}X7m;6hlh{?yBD)X_)Px>_U z<0L}BJazmo$9%tuf;Kk-fg@YX^omDFpvQa@MSRr9Rr^1Ido_}>rLL2+j~k;bJTS4d zO4f`;ngT;88pD?Yu&_Ksu_Q}Ygh~N0zKqOBI9#I~aLfOWbiR*dxe1_x1L#AT!-Hzv zgcj7x6j;eGXi31V&VSgas6w*H!vsjIw09G_#$3nWnyC1bKTf0r%=E-2d#^%6J*1pD zQ(Q`4A~@0HFAS_Tt+s13+^i-4TG03^z;8Osw7kqU z;w@zqF*}4OztclJG6RxqPZeyzB1i$g{5I>fPQjGPNc%ZZ@-$DYr0?t`M{>+dgd9x1qHyrCCtb7gwInHQu>^%TLQjW$}rg*a%^#WD273Ov=@jL3=1Qh24MRTTgQxX3QW(Kt-T;T*v-rGl2r z0DwS$zX3C-h3dP@T-{YS^~;3)#(kpG!*ay5QXjPm#wRnV9L)}as zZO@Q(RQY7JA>G!O!cQ#pC|sk;gCy63WG`I9!UvnBj(al(Jww5*rCK`G0eq|mwFUU{ zIATD{dVN(etx!BXG31oS?coSU8>9M0~W6OCuzss_ukXuIssg2XkJWjOXSqXv8?(?Yvg`aLsLP@A2| z7^)?%vn8Ev(0%h+pvBR({L&myM!l2E48@}isD*)5!4Jg)T?K(0=u6La$*MIcag?sC z)ml$GU7oyOb|lXlZC%&J(ae}*?%M1{KBOob;aOaO}*{H2S(E5eNr(j zKmr`5iCoa`6Sa#*8GJ`Obk@Yd{+O}OnXG)+O1aHy;dOg$IA*xt|KNRRaqnz zyW85HP%hp&GgqKOwqpxM+%#1yeb-pKCB%iVRZUqDMo$tZ+I)qlxvWd3E#JJ%1Q$pF zJ!4-!{@fmb#XDoz6m=sWmM9s$UuA{n_e&qEx>%q@07C7kvu!d-7FYsaTLUIpf>YpG zn_}CtV*VW0mc`WMmDvLIVp46_{~Eyl3Z^Vg)dsD`>wSR6&CE5p<{GTpaxy3XXWPzo60c|GwAB665DQ!W#pbfrX0#RHLhA!OSYk&V z*-Vx!lCt39E5_8+LJoW2t28ae+G1JaxKwst1)XQX9pf>cFAx5vTWEk!6k$c!-r&sF zfyM${paNbVSmqR1U~Xs?AZCaTKhT}%I}29n+Oza==B@SGXvV~LluYv^V%R;@MBO)m zHR*4@{Hf&RcW$H!TM7ZAFM9Z>G zYGDp&=j*CG#G@j}1oA!UlD1=A0Lq8XYVg~qFq`SoEli5KDnCtRv$iUWmA8)$=|hb= z{3GcWLuqg(+0`rA8Cu}~*+b1w7UeEr4(>RRpPyL?WD25k}*ZN}Sbsua0EE}tDvpHIVRX--`ljm*w#WVPN{UC@Q~ zBx#dI>2L-((d6wY?z(QB+w2MMb!M;sG{(<*qAo5f=Z;Ji0~KHKMr-kKt<$M;0Kt-R_HpKoHtT7w=Cr=ivi)DQ zP2!VY;-!@9|0dG7l{4yT+|N=hziwH*h4Lsz*Hm`p!ZmE4Cfq61Wcdoj>-|~l)&*N0 zTFU-#d7uK!&V*^GzJxaEg?_=So?$qT^J5;O7iU=YW@e?sMArUO5wlp2J~H%@ZCw~? z%(Y$qzT_v~FOoW0i#$!6)@x(TTTm8WEJSX>)-uEHFM7W6dVX%j-ajvYY>x_QVeZ}& zPT?}mff0XBfPKzP(1kT}^IF$A^A6octZ1-SA4UFJ{ncNq3R@e+X6+U9MD1oFUv}LU z(*0s-`z+`Ga5~Zg*K3RaWWKE)HM?M+woe(7aF4g=#D?Wh*Jm&v^->4u6E4#z+M z^onO$ziujAtaOXxrf(0X!X^8|hVEBhY{uSaluzpA%U5_n0(nRScrb#@hIi-8OKcQo zo6mdyaFgf)OJ)=uM_x}K)gAmrKI_h-H+WQfBeus{XnG>o-2=X?so!Kye(7b4>8uZK zW4!54opR@a-eAgd(GT~*4eD2pvVAM+ekSz|&*KvwXnBAKcb^8ik9U*KgbcWQ-Uo<( z0tXT-Xz(DygbEijZ0JzorydI?%2@zO4n~Z0=pg8*;sXc@m@q9Wsb|qiJt|Y8YF9!_OVoo~w`wIyga=O_q7k;Q;2$^3uRFvLusHqMfL)(s7|M5ja9g> zSFj$)J^-2)?ORCkEy|fM-{SiRWV@#Ky2&qJ<_RdEEr0#@mtO@Mc3xtNHKu@Cy6B`x zWh&&589Ye9BM%Ze6j2Kvp^YZmX(b>)#%i~zxFU-!y7(fDwndZ&Z@u+apGFAC(GhVW z8F$=CEh%>#W->+hK}QI1q!S%J=|YSGLTwjfQr}S()sgq@i}XensX`8z+GJtOW1$|23BBTUm950o{8C# zh+~jRHdzWOboz${Sq`|jW+(ak&--qAc9P(t_l;8 zi;Q%nO&u|*lYCDqAOKNC9krBFzIr^KR9eP4a(Z9cVi$Yum6;Zr&oVpzmwpXc>)&1i z@&#v|brv|7p5bodrzV;xK#V97PNv95h-!$$0iJ2Rv1msXk%A(W`g=9jS!)ejZh6qS zo4}$5XD|o}1BqNq47<8EO%5cfKa4zU`VvRi}s4hpRU?J0pz8kMmeRS6y9`#a)@7A%) zKD*WcgKZ-uc?_Ink0QC6YTC^SZ=`fdPOQjv#0ZdU>brt>B~`Kfy5;6^z8U6SDZBR` zwB4`OILvJVPBXUI3N~2g-1arto>w(kRL}wpeJ+I-n$EP-@`{%K)KN>|1Uu~lD8K>6 zsB2%VksR`Hkx^x&R6UXjNnRqshQVZQGXa4E+(w;^UDGwN?Iu(i;mFuBD1x$~3V6(Mjs+n$osBTbCy@9c^E&pO@IX&` zTIy2Gh;==b5l&_AIg@v6QAfAvx3Rm8W{RUkB|PIvz%5b)R2EU-Z^mY-5BP3vxU66Wcgf2&?t~{kxs{ZjhBrDM zGgv9K9#^h+7i1-Cduy8J;ogItHihL)0aB#px@j!05Gya$ljLFG_a~x-jxs4Y6lR#V zNf&^qdHef?0!r{sdGfTUS<6iV6KJD)#*z*@5>AiEXdIIKE|(CDj;!AHOP+`VNDpaaGzlUG$xmjZ2@3WUQ( zHumI64Tz&wnLQLwz!?kMj>azV!hTpc@Pg%}uN`qF($Pg-% zs_vvhLD}JZ8N$~7wskMCkbsPMw<2%(S}c#6XOIY6sSg{d2A3pgIA+W!P<&nq>nr3R zGP=r+<_DzvD`}u~8#2|LXnHukX#`_izb+p)Bn=Zzcr)g>MRe)9Fp~o_xBzt`Dh(cL zk=$ATyXe>j0~SL28++2nvMOfr2NK=R4ZI!b(-_xN`iOM~~_b z`7=%Kp0t`}TI&few#r@Z%Ek5UcnO?G8FZDr-gP@GE!u=EBjy9_9N!|msnGdt^u>c1 z23T;wz(wWC?4YZfH=}A_FBLI^&}sPcZNRNs$+7 z7wHqrWaD`_nU%Wcj})t3CR^DRd+(I+np$aV{3&}wVYalQK1`2qqU)jU>z}EB8eV$0 zao_aZnGcl(PV1cv-T_}>WQFjNnx7z-a@o(im;noT(&1G};wb|g%z zm+z63HsM|&L>c<%*KE!ImZ!y>0v^Wj{mBE+4`5wL4rD+rOhes7O_d}<23Xeyj-e@0 z9|(k&QDKC@*wgmOLHC`Y2&7=tji2Y~i1~RCLiLHO{n*!m4BvcJ{255P6$=426MwNs zvh3d>q8#4AiGU#C$`Qs$%@(x?n48$bVYrWBL}A|n&HS`fpj=TRlqLRAp^bOLB*gReiB~QVAxI1 zrhSwo4k94}jt^F%Mjj%{JR|MR)sq2WHog`&p3Jt@1zFt1C2FEwIao>=m$}qi4vZoT zgvcH;1s)JX38*4H_9X3m0uRK*2MEV+@FN?>l8)e+37+6UI)Fi*VE18N)(sjkPKl2_ zkF>ECdGHMm1&Ftx&qy_+6m%oC+@B?WWMEjM^kCy!Mq*zSi(MegwCLC(@<&$`2HyoA zVg$`6Qie^8Vl7bMFfIi=%A-#n=GDMJDZs=B>IlKPg|CThK}RoSs&YCPjvn*?pR$c>u_jCFDqfm?+rJJfcX>W|XPWZpo#Nr5#yBj$K9) zaVa3YB|?`?hKZyA0(^!|Hjj5~g8#&$b50X0;d2J4Jf9|64X?m%+XRPz;b4wg?_1~d;%_<1awR%j`W66+K4}5 z#K39i_=B2(DXUrv7+Am} zv_nixM=Vm7b*31IZl^7ZC}!4aiZ0vMHRKa%DQmsoYkkxr*~#Ttqz}>_-Vvap{-{Vg zDz%E8dGyENl*Rr9ilvf?+cl}o_31dmPw^d12`mA3j0;wt>Q1g|tG=s?i0NX!L}OC_ zr*DX$rv#O#kV=T|s=wkHzZ%t4-YM5{2UC>lcl7DT0je^3rLv+XraddBb<_E%Wso*1 z04kHC1tIKp8@Fy$Zc2_M-BmHd+e(3|PPu?hVxp-!g$qE!Ef^-e&Ma-fz!e;TN zCAB&#q?!!MbS%-7ZJ;D+o0tqHZX(z{WakJ?(U@z7k*b#V!7Ze!%+jphzD6%tKq;__ zhDuBt)<@Ij4lS~2Ee@@l1_!B7r{f;f)@{enj8N46p=cJ^N9~~P?NHreZS7V6t;Jp} z*y7+;jL%pM4P;On(Nq=4)`fsJ2+3B(QtV|pqO8i|LD0A;Q{1fpxa;2jF5gZ-Df}&F zoS_}|>>ASIz%8%P0&KFO=&}Wpj$sUW24Cz-+cApf4{_S&KCI^s;`uCUets?ax)yqz z3|UmF>aOqE8WMlFoAqj0BG^JDomvU#!tMGAw0+0j#w_suuNDdK-&WAh+UrHkM@6jZ zZ*ZT`GH#pNnZPFP@-!rbm0s9I65nB>@tQed}0Y;Scv4Vd})I6_$~ndutN001mME(;_NFbNs4CwpTQ}w8@i$8 zxoP7*ufT2u;{ZjJ2rE(`?DS-B<*aA6bZ^yut{8Vq#lmL!l5blsNSFj63bRzvRMi`? zu2~Gu`#x#>j^oMPoE9Dhf+B2F6ao+PgAW5SAr}M;2!h`dug(Tqtimf< z5Tk59fGrI2K?5-|Pk;r$Ln$z`LsRDh8D(THFydM>n_e@H1QJjPMMHYDF^LTPy%jlY zF6e@BN^|YBvUC#GS7Cew;goG4%`_&{kR}IoVnC_1;g$Q)Z)BkBT>-V;fNcX5^idyl zBm}?;D6=9Tz=j&I0tpO1Lh``zYZE^&MprR*Y_!F7^6U!#AIX9>!#ZpkgRV)Jw#wyR zOBVtGsI{LpZ55&Hnob3{Go5^3d(G& z=n7jg9pAF-g7Wl$iTo(QEBv(r6vznMg_jmLA;UlttbkJE0z9zFBC}D?I`TwQc4gBd zW@|DxLs(}ApC5)bq>eIKoAzjv_sRw7YMZwm9mZ?Jv!KX!d((ECXu>VqF^s17@-T(` zXo7fD>sk>vfbZ>b6Zk@72CIAkgBoxbS*NH#auZ|!baiX>#b7std9!M1N!X=lGM2UF zn6^55`1lfl*Cyd=55pPPSIC6PwxR`&r8wiTux(4>v>nr7n2cT@mjJlm*Zu_>7<7)) z>|p}{ffI347jFR@)dAzHZy5PRi%J#G@q|mE^?tTQVvA^x_LXC~w8lb+bGdo1H6Xe+ zY_qpqXS9ks&Wg9Vn$vg4m`pJWKoQWmoP%w#;P{=-?2Z$72;jm2^!Zb#q2Wezp)c^@ z+L?T0Gg@3s?jA-*GdgIGbk!znhfBH{>nF8VIx9OAVwfcCq4=*ej;Gf%eA@zxOCdwC zwfyPyEhtYrxB9F9@Nw%ofy+ZvBY3@1aaI%mRdnxq!r=#6ENxdWdN`-vj8=KYrZcnS zC#83ZmRtJQdO5U{ZT!U`bw1h9K%U;>bX-kFB~&Aiil*eecDp#5!sv|fiygBb=HoAR=2Q{3m? zrWHK2+dWH@kYSW~!^;Q6Co$lE`nJpW_2xELwz2|bfC5atYIg}TT>ax$Xu7MrQkTMk z`?==FdqgL&K6-w2%7xMrexLjd%UKk1qMveIXz`D?k0T!!%0` zz2DadpeON6pDp(%#y$f?p*{i&5sXD}lLB40HWhSOFjg#Nk^WV*coAbpjT)aPo}KCw1&jo20cY(!)d$&wvg_H0D85eck~)%IZAhi?lKsQb{NUAztl z_Q7h^mMsAdh!KNy_%NNGkm$(SDQ7Wc#7!SG5TMDHRli&N7Tj8>p}>T?6olRz3ymX{ zt68^p{Tg;`*{^#60FVj5iWL*&l`5r&=7$tI8$*ViC+JV1LVX&Q<20STgdLP_j@1qJCuZFEvHuj446(u# zxNNHI{32)|f*iD^2+~Y*Xc)C9nhnDYHQbQH4q1z&CEaqH02f?pvPp%VRQw5&JeKQ; zIq0B^j;N&;pbRRhs8TTht5~q|$}6zO+C;n})k@2}wct{(E%@YuXukKPEMyq^Jo6DS zP4au7Kg1gQuO|S*Tnv(?oD$%&>>66I!3IO?143e!I0!GhB)ZVUJoVg@&puD8?Y7)@ zvj7)(fI~5-6&C|)xuJxT@wudsLk_4i&qNSA1-aU)J0RTx&#X|BR12>3*kkW5`0`q{ zN>#1oOEka)<5Cn|ycEze0Hym9F-Z11P)E&tWYDu>Hz7m92JwmrPd}Y~7TRbr1QEBF zRsev+14^L@6A%*B6(|>#JIc8kBTb4?OP{(dGd2GL&Bw3gB{CLUBr+0T^2|feRJjgn zQax7%jxyEy1j2Iv6I-<8vP;EueGEV`2`rPCr!eEOv(6ZVP?sVmbT2h&MIM>tl05=6 zlWKR92bXqgx{0_ihq7_pM~jlQ#YM|}pfag~%??XWf$S7L&F2-& zxa?cd_E_1uVrdq40Tkc>ITDFL&5d`s*wz6Sfg%;j%y=#G+fbSlDdxQBMmQ2cVAKSb zuvD*lTrryVj)tV9#RXM%x}04ICO!&f4pvzCi^4vawXVfaSBp^$#poA3HaVzGeb8SC zh#@<;0FZ!5RO0Onn6lg8rXRdfpvw?N9G}oZD9Kqs@qS_yFCv9GK>-S72v;~wbt;7P z8cXA_cP}>{O-ZCep`M=6PK7o~AHd0qjKe6tE$54Ub50hwm_Za+M`5o7+6TW=uX|7p}WRL%}uyK7pawGgPdA`4!9Mzu}ukxenCzI1|VDT;FfT# zcpNU~)US=|tKfVZ7!KMis9v!bGKiE|Tf*^#PLgiG5_*>@$tRd-XjS<3;+OkqRsmSk zszpD0#VargOb=V2)SRnMAr z(Rc;EQ3fmXQ^Lmbu>W+fV&T}>#~xHw<%=vs%~zLTUe;g&nc>2^l$foR7qm+8Ra3%t zzp`y2LTA0j4-Z0wPuv&BInKx?UCPOr9)OB4>#a_I+t=p+mnot^L1h|X+{_>s!a`cy zgo`@R$Td}ksUn}M#792tYR;hp$qw{3o6+&g56z#ISb?6RI;@n)#h%2>|wND`)U_S(YOT$(DwT83(-6`CqO z_Oe)h$|_thG9rzWG?fJ!$G2eksZfP1m9(2_VHO02eBl&TG*Lqnr#S(Q zK|pl6IvG(w6Fcnni!IQm2wk{fk)W|PuK69?{2uU${rzvS5j9{+DJRi=9WJ2<*8s~n z8_FRJRboBhxQbU9mrC_lrlHEmPfvBrVD_VkNBw}Tp4qcLSvQKMBN>gRPBT|w6Rhh^ zngtai0{zyxTmQZ1+r-pmf5u6%$@SYp@0HL9x95@{Zd`wQhiF8bHuf%FR04$O>erTI zTS9(E7D5)gUiLJojb)WUqD^!uPky}Ng+L&%bHA?? zuKLY{&#^_QQnaIi-3ngLc#2bmFMNxluqTr@Xxy&Y%X*PEYQ?LLjLsj`Eh?l_dp7KC zG${0Zr5AaKMGZ(>9MeCZT{nQ%zV_lIg-jb=?;@#rHbvN50e-Q=--!>-o(rCwyZI!5 zg$)7+6#Mo{S31%Ot!O3l%reL@E_0cyxFSvX^PndvhBw`Hg@&C0TM=lzKW0#1E>I%PzkT4@O(oL{>=HJ5M7Rr3a@bK8VpS|ko){86A=ppFAfBa zDygoGsW@&0eW}a1Y|B8*kJN;HL;*33Bh?(k4%v-D9-af(evJ7EV8Z)Mez(*P!0De z$c+WO~X95`X{<{1GSL<`eGW7X(rXaRXaIK!F-j54z>~a?p#Y?;!*0 z8KIHMxKR5PYvMT3;<(TQw6Pz2xuoK@6u!<0Rrq`5(2?5@c|$I*nkZJKoADu3Ywq^c%T$8p%fl*<%oh5 zo&(XAvYxW=0q)7+pfV~qaoRl5DmhOhkIEy}qAOQWK2VP&)sO59B4HNB6(eK*;1M1X zAOTpiHrp{77h?~*f-|^60lEngn$Huzy!FHJ5AsLOaKMIQwSPB3IxCd_#rAU(kwpkD&JEI-t#>}&;w$jJ{c=5 zSSZ^{k;6bPEL9WK%F-4Z0R9d`c#h%@Yx6c06bIq)7Pn|;D$gn$;ufqyI4`vLIzU4= zv^b0N6F#9Aut63YVMHC_1y1w@Xn_O&I6w+kloq7mMPF13W)uyA02zqjMv>|~CM)cE zlmJeT0Qhs$RudxXWmY85Kw0kX=r93jQ$f|T7L_7{nk+N8q7V{+6EIXuf$-IAb=J|;RQy41Ll+iBES(G!4R55~B50rJx1>roaTQl{S+J zUHc70A)r;?6;)L=RqdcuNtIqn)do;iU*C09^VL-M^<53100g!G^3@J(zz!0268KVD zM`08q;0_$&P2bcIA|XtL)i}$vBsvs1mvcF-VHZHQ25O)MNR~QDAUm&BWv_Kci6C9q z6=rqp6F6X6Mb&2i6<$x3UhP0zz!^v&Y(CNY>lc36w|zlZbhowu z{L%mb*e}l@5Y8Zg4H$v@&UhENWIllt_!e-TH*f=&X9X8~;gx5lpn`dpdbRgm7Z-9V z*MmLSd*StZn^p?{2=;1QwR8RVb3^xQOSg9SH-BeXfA@EE!?twK7as;dfCC|b4Iqet zn23eg00w|~8CZ$+L~kMZRi$@=q4-@Dw|XmhdRsMmsTXihxP-eHe7)Cly%>GbH*{SX zhH?0Y(O7hCcz?ClhyOQ#;h2bvn2rT@5|Vg{^B6-qpchaIC2|Vj2{`2TNQLAd5k~zbGKHFGg*!O*Ny%1f3?;x>$r}McmRG;k53sx9QcWu zSC9dDdTSPYS6Pt_`GO6ZdJndiNm!R7nU}}de_hyxFZpXRxqWjtcP*KiW0-3_S(F1< zl!4d)Pzsg*r`a{SG+O-@Rs-3USD96Lws{YkgKK$~t@wj;mW#bOe0#Zz)3=g?*^-4B zjguLZ|CgSbd5E1EpGVnm@tB(XIV6x*d8IX*TUn4>IcK~1iW7R4YuS)bIGit-oYh&P z`}UXFS(sgzRr~j%hxv2en3D(AhXr_un;Dwz(w|RSBtVr_>wudHx>ciic`Nu;!&#;k zTAXb;q5bw}BifuLTAeBSUD+9!H@a_cH<*X|f0uax;`p9PI*5gs15jG3Jpx20p$-aw zrLB6Pv6+>%`K4d^tFf1y7dofQS)CErr+fL5ec7UsTBF?>m_7N3MY@OyxT%FW5Zu6& zr<$+-|ACJoz^WNmkZU@MU3#lyxvV1?r^h*GBidk#mZx+2oYUHSDO#vEx}yE|b2FNg zmwKrI_^t)mfa|ybWTCJ7T9xa-4PN!CCtpte-P^*8`JjuD1$w4~LmwLIInSck_0PGr?3jjE=TwRgZstsTW znA-sAAkvvz()pZg!Mty;8mKkhm*LgR#dx9LJkHZvU`zeZ>HJjZT-ALU&;7T`8?JC0~Xci z9MwnN+MBj-Ume<^UDnfAg)f=DgBXr!oq(sj!~@t4OuE;zLksaRe8NZA8 zuIruHjrhKqJ=yPj-v^f8haKQgz1rpc+IjiYPjv`>xel`3v!5NxaoxlV_|~CWYo&SJ zw-k9HVA+kh<2$~H=Y8It`rd_ol<`~NX+7fYedPgu-vb`zV_w(?KG#is5AOV`Bc09% zz{}J3({&zwe?HIu{I1Krt|wk#A>hh0UN}Et4-B~Cm%WbV{hmku-S6GrN12Ydp5!ea z-y()`d9o zy`HX}Ig~{j-}jy5^L^MIzm5_3@TnY#b)DDwz8^mU0+{{v3t#X7zxRLN_k(}%37`0Z zm<{kAAB^7slE3nWc=E^Ih&Mm-4Il`VAMcM};tk;VGvBVO|L%{U?6Lp&4H)~4c(e`p z@)3W4LmBUXc#hd0{+)Ts3%&4z7`i`S>21GLaX(=J!j3?JZtS=zSinuf0t^cnXy`DI zfr$nrS_~BEOh%1oI)O4GH?Ll}k>U*e3plV~!3FFrGz>8@!-tG1UfjwNW6E}l zIxKCe_;JV9zgscABu8L@1|EoDg2#2>$UxK$M%{xB67-kJXqy}O;$)@mj!)^9d{0W=U7GenJ3bDFRr&< zdMwgdnMA#PLS&zQ{t2j`pB&jCbV`nS;a^owC{ULMIVzo_O;T5-nG~K$P?sN?$!Vlg zipimc1AX}9c8GDu*Z_`Ubl*lMxp(J#?@a^&S%Kb)Yp%Ki*Nb0BE;%J&q9#h|k`i7S zWtdYw=%}R#UFs>OjApp#ha7eaC3Ycd`7ET1hB~VMu+n{)W{C_9F@Qs=hUX@ZdfMUR zuJX=HZ@vF~0>Q9k2D>b<)q%Qiz>a39v1dv<;i2JriZR17N9;zIUrPBimsno> zthGjiTQt$3KFhQneAqEcyd_Ufb=AUk(8zNECn_$)On&XJ*F)>uam3L^Xlaybr(Je- zJ1glnmSsO{aolZ>EBBNi^J#V8e*YcUC!;j?+;eUu8Fu1e4-0V1H5;6_zlefb@s&R} zyD_v0XUX%mc$bRw=Sm;lw9{|IVJqOOufF>Kpej45@xI4CE;h1mJgu>$YG?W=&R3R= zciugRo_X+BX81eH#RFfgbbOpHHS5w(KlLYmX{~k2ThHEg_tA0B=*;0m>$Q@WHp~3( z++VIR`A7dOJl+#)ZY6bZ6cfjQ)bG!~y}jB$5XA8dcHUDS@TSBEME%7NEz_Ot5{InJ z4R3Ck`WEuy*QEK)jeZ++o*m+F2fp=hge1I`^_+%6-2KIHv3nf@3uuQIK21!xV_^CW zf;$P#5Q7plTiOh0tPN5JelFXch-_xF9zHJ)5YS%RY~VHO3VMI9n?k!NJ1gKD@W28J<)osSLPn)Lc(iq4^;&3op)Fv(`^fX@rrjcS)QaGJf5KC5)l4Z2i8E;3)ND*^v zqm0}Qi&&87MGcz#>}Oq0*c@0|vxr7}(VI^An9gAr-G$ z(Zq^%t6EE=TgS;&%4X56Uxlnh&B#dH>h(~V%^WeqxLHZ&bh+c(Yi5;-*H=Oy4x>=5 zb^R&L!v5;DV|@-RgG)vK#%`3R+br*M$qE>CDpaW)<)~8QNzSC6alWMmrF4>u#`_u< zvM^mk2(JrZXrA!9ip45Str=6nRCBAj?J7IR8r{u~mzRuvY*=&2UZC!jLWP7ca~nz1 zD`D}H=EUV1iUEhH26)AM1n3p3s94Gd6p@NOC_@FpU7tQUqF~%AWYK%b3iULow}m8o zEeg-!(s#Ku#Hoamx=nMQZWMoIv6Z9vM^|$9m0TVug9WKVYS=Zb45q0=QJB`W8nUPo zPBLYq%trd|vcfgpFkbBp&LkW14Qu!qYOf6F5@s2TGwvoJpNHdX#@4G`76>)od*N-; zbdn$j?w8FwVh_6imABx0u#z9^$PVLli?%GUDH{>!R7257&OtPy5B$?ayYj`{eJz52 zs#tMWl(9DsHEEYyT+H%X(;bGVE#aBg+q!wv@oX<#C2Wur?@iUzCZXV93CpZBjNNRdi7V;lj+UHr#_Ss2FbYFdd*A)*fM2lP>KY?< zAhmw6VhMRWfb-$Sm@RNld%bJ8mesVe-mIQ^DQt~Zy3IQ*GP0c<=P0eA&s65O$*E@u zU)g%WUB)7JW8CVP!*;ySq4WxI_gy%H_1tJC@|)diafTWj=)$})s5xxma+?mtCq22- z|JDI)#DR+c*%r8#ttfLYGd$+Ew)#_pyYO?5SmKNZyL*kiNH@2vn;e(xPBZ;nIrkZa zPp`Y`rg+W7KF!vOUb$9jEcUFY@Ze-dG?FSEcy_jXthP-kogW-@^WL_y>h1ZjrR(3O z+kNv>!&;$Xt#GU77^YX0tw6DAhetbD%#g?Ry3alNV3${g@~vp(BOCc-13SMdWb7LF zkYdgY-)bEg1=STz>%L#z)w53Y-ecWphd27gV!vIC-$0#gd;F(ArmW4mZ)V;OJKje> z;~J)0^5Lt$WG)u?@wF~+oFiZB$nUSB{Xl43W0CdK2X^C8_y%bfc;^IH=Tui0M{eZ> zQ5M(#dqFjF)3$yQI5O5Ff3Ws^gcoqnhiKx)ZKwx;X_RA#1%fn|P_Hy>hKFbcaZriI zK(O>pyJmYaSb&Yzg3R?=hf@rFhH4VXgY{BX2d05Q2!Dj;Y7Td3F{gFUmt(9~gUt6d zsuyeG)_~zPgFMGjR9Ik&d0L`Z*iNPn9pZjR@3Fj#;yT9%hor~< zhRIiprFVf}HF(LFe4qGQqliufCXC$WR$K^x6XkFVw}q}1S`If+tT#psG<7Bwi`N(^ z{?>-Nn1KNoiPSfGu11U9_<_A>f@1e*6}56P6n2SZZ$0;X{f9!V7h_$hUCk(K`6P{V zr()RXk3m9#-?)vo77p!XK=o_j30P7K{#Kk2Zfl0X!s?2k;a5h6N2~l zF;(`DAqgbX^oY2acM>^-LO71xIEt{fj=lAWc?f+iIgeMRiScM_Eogo2rdUvTP!AXf zi71jo`6GWcjw|VYk+_m4nUYMYi@tbuaA-Q4Rb$q-bpa@oct~^}_EkcNic56=N<=A^ z3et#5X_gLYk_V}f-`IR=$&2Awf9iN{HQ0rtXpl}rj|tR?F{F2|#0S-AhGQw13vvfn zbd+YPmboa2Oc{<@h?2Uvic;Bu_Xmm7r;nh>2mJRu?iO<^hmQ}~kAo?i#W5(5X_x}J zkV$!$C8?5Ud5e`ugjP9~ut}RNd5Lz}YRw3Oyf%0LHJZPP925wIv}l^Gd6$Qon6>$u zx#*b6S9NrVU_v-}(P)mDd5(NnjUfY^+i4sr=a&P?2gvD~tO=D+shBV6n9aF$9a)zQ zIi9mgldmOa4|oS4$({G97eBad#TlOashW$KmM7VoDCw5txr$e$nMry7pp?{sKxmb! z7h@k|jrd8S!0|`?X@AJcjlZ{zDQS`tIiUYZgy}hg*oJJ6h@K;;qI{M|73!jUVI&-? ziy8`^#EF=A$ZZ9xm>=qt9r}BfD3uF|mma!pb7!9~illN;e8Y*DO)8_{`Jv*OqeEDK zC<>(LNS=(@jIVW^xAQS@Ae2cergQNLaL}JmdYWh|r6-A$dl#T+37*b*rOC;XV&;a) z$A^6uJ!8tJZ$Xj=hNetPqccjRD|bbQ3Z6-sr5iebnTeZ?se!CVbtMG{f!U{*iWXQi zb>Eq${CSjV>Yry?sD4SMhPs@k`kp^Ir^?5T)fk$X3ae(Z9FrRVo{l)2qH3!cYMO&O zgrItwgld{sYMw(Vn>OZtMjEThx)w1CdbD_a8H%f%DyX|ks?6z&hxwtwDxRB3rD*v< zYf!1mDz0f!n!o3)Gg^8|iLQwnt+{HdC8>2Q$9GS8s>g|{elT}?Il&WL zd82DeoPrvvK8mQo%B4dHht|rXad4#js;ngGuf#cWHwvu;>#3-@uxNRZ35%)+S!1{u z2f-(?C;JZ_pbGy6nH+j(diq3T+*GOMd13#ST;nj`y45*o268>@fRUsUIa z=E|w}7OV@G?Yy1I=8yKpKAqQ4rVL|B}C2BtzQv=<8ht$gMjF1xWvYp&@UwKQv( zP)n`udZS5uu>E!h42ttdLIrUb5* zO1H^Mv49$$kW02%o3>y3w1GOfOpCTsTeF1AxrT{|jZ3%wX0+%ENJiUNk$a{b%D0Eh zx=uT&2CK0*>$#;jci}3!U7K=Zi?=ZQuNiu-fa-zy58xs ze0!$83%PeIy?aZx!~3aaYq_y|xi%ZKy&1I5tE|jwuGHOCQ(eKjE?`^(fdqGVch>;H z-QC??GjVs<;O_43?lNKG?gR-0nTNG@)w$gF`zMU5(cM*F_xnE0JWai}oj9)oivOx* zkuxu+deZTma($}QG#g`NdyjN8WTq_1HLGfT9U->5Dyy2|yTP5Z(H-9WeVjV&Y&H#y zWi9;eeMR{2>)D;~IX&jlO&_nlgVAkk(XErZ-PsqNT*%Fs44vjS889)OlK4IFF+C5y z{nFV@xkv*Ao&6X5?(J2BMO}>_o4rs1E=jhv+`65fo4vArZBo8X)G-}@k?X(mw+U~x zW9tmJOb#phw!L#UG20FH+4kdBw_az}@=SF{+m3YbSM9tE;$3$6^Y^#@8^!%H8gxFQ zBiD~>J0z`F^?7q{=LfGX;NsprU}BrWl3ieE_t{N2%=^X1p=!MHwWY19FHoTN2x-7O zX9S!*kTcyTAv@v1&>nR;UYavdu^Bd-)t4dHTL}T5K@A>)lWUc->+kRSog6*oyH)Ei zH{>(jwtq2s*wrN~+f#H|XK>lreK8OwSI$Jx4;wQnmeXtKGchDkOUK_|CO);uKh`EN z3Q;{A^lx2KJuVFx73@WCoWNNDEa_(>T;FVl2 zYgV&F_gLuka0tN|)LYvRy=MQ-UiPgXhqophhWS@rKUcp2YKvxeWXNv(*&K#BuZv+_ zfeFs)`Q6J#7ye%C*hYLKKfO0VfnL?}=EBL;JO$w-UiUDXV81m|d)nn9-Iu8X0e2R? zB?A4$*6F33w~>|XIk?<;w(2FF*Glo37WI+-zQ5oF1-)@D`K3+0mH6pp#+>G^oKi#J zqE>7pp%a4Cd!MqPJNR|^7bgyV9qfL{b4E4Z*0A#7MuA{xkY6EdAh4n@LPI~+=j4RXJXfa!jz>x z3eecUn}DHXi~xvWKmI)jXd8plAlLs(I;viMq%K*>&426E9 zI>C0OJp#-YFpqFe7-WfM3rf!&-;bI1TLtedy^axk?*!&7w8yqBbWcCOEu7U%-O4w$ zZ1v~IwgGx}Go}Z@RonTw!6#C?clvWsLLkWACD`6hO5_H@xQXJaHfOXve8RQcnZn5T z9gKiIxSZCI?#^_SZI;>HuC8g$fL?!%gAx1P3BtU3!M$|QA>7r3neNV<{9)1Ss&mhR zLf-lcVIHs7{+aK(2TI>>K~LtqBUYhtpErPG+#$>KQJ+0%LJ;(JwR1JKXL~)#%D3j! zGc8lKA?3e?k1|Km+dQm)jE<7x1UT{w7_s1+kdi-mXIvSsIiS4m(w_kiR3H38gm(|$wy>dQuPoqnyLPWG?{G_?pYq~# zZF`orvb`k=G^MbACAj!k?&uH&h!$~O5{J;YeI;WLVu9TZQMmER+2Zv&`pYz5PjG_I zcpNHsO5S@jBDfz?d&q!yKI(8wU%gR3bL&Zem*daJ?XXK^cjg;#ch=jOxqSp8`jd~c zRTg|sP;-K5_y@b@+I8mEF+f-b^%}2w`5SmgT<9LE=KAaNn9KF94=RxK7oYzlz{v?- zRCt*+YZ)*0J}mDcMd5+L5PYd5yj*|zhp%p9*NP;n(@&$Fa=SZCTtI zlH%P{?30+|ArttKPWUOU_og6V#=Q=>(R*_k_sB2ga)mk<#?%IwTa{FKb|hXi@4I;n zxQ>Zm5$}5nRXigG@9bpVQ#iip6Hjs7+<&_{2K7D`%&q=*LbSj6SKWILL400R`!BYy zF;D;B-p95)_@RY)T@vv&lXw^X7a!ZrYu^q6_uP~H&HXN3%GhsU#?IU1&6U$_)cnr# z=-AT=&D)oop>^=7xSkx!WpUbX4`-^LDC7zHvu!Ee zQi^6c^S%AZQae*A{SUGR6iro1huOmk%2L13sMYTYX!$hSlnUW*2w<}{u5?=MLFboF z5#=I0&RpI9gRD8IriCt*-xv*sq7au>oX4pbMGy*y5#YLn2e~)MjOJ+HTh!5_*o#bQ zKUgi6$p4ni)p@j8tJiQl}%2o@@(>9B5wH*j{wrYF=goBe6_#ps?y6M< zwmC212Q>}&Q;8HG%(MS;8Pa>c+Fxjr(x`cR`m+g1Weq02X&1L&U0GAu;{>Cxt_ndkU&+~jnIVI62Y+u+3d|-?)fG8Iz-_tu* zZ_f|y0hF1r$NF7kh2`~tWv|O!S6?H!+J{w^I=7* z!;2GW9mJf{PT++}N_rpSD^zMyMj>!f7pCYbxD%zV)*z7CGI>~2sj?w?9%YEu;)pQ8ZN6c ze)ubx3I_oBLx+w|mipfsC0r3|l@$I8&$hWgLW)e>f~s^w5f?fjPllyr68 z2+@U2$E_HKbZ8ddly%o794+ndyC>gyYVj=_W3<&!ZPR8BB(a>nFZeK4{+d|bOua8; zI7UM_rgV2je;Xs62H|d_ojVL07k*E`IleW7iX8JH*pdIuE}d+_;&Yx1I`<75XMF{V z{%Tv&qmymA|ec;*?zz|FK8 znRiMv!(A8KG!u*j#SSb=!=nhT!a8qV&<+EmZ1=iF>rlI*V@H>5I*H5B_{hLtpTNPE zpOViOGH+ULulX0vY+EVX+LKxTkCatLef|75^O*>`M95x+MVN7QbY zfPlRUZnLIjA6$#XNR3U`db6@_1EKNyU3(^T0d|?=7YGbJ+8O~qQOd%Oe0SP1QKpZ) zLYEx=r;dVE53SKXUQbhy3IUOLf0=fcgiD`$E?UA-z@e5In{ON#fv?_-zZ#RZo{(Ba zPDkR^m+XqN{CgPSO%4aZ!SJP$xGB!MT$o zm#qmh@@I_qmLaN1ndqB;Ix|`4jkm@Ra^(1x!lu9l4gs<)7cp+BJ<97C?r!prt#pzD z#M{_LQI#UNihQIy`|x*u^6vxi{nU`?2@QJ+=$c1uJEV)j!@&k!9G+p)?dVA<)*wjh z7ET5>Hdop1Eh<89P9+b?n5Tohgwp`O&t1W`FTD8DsWjZI9F|2dq6C90zb#&NegaoJ+Bj6D{~&+EsY4c1~I;w-)L9<==%B z8-1S`gWw(^If^M=jcTyZb$C3}ba&sq@nH2N$ zVy0BK&#_uUxak`rdB;IdROurkA9qo)+yD@&HyvSybCMjksYh~}J!%%d2fnu3t=sR{->eDgBGJK6@*t6F3cy(@1;v_FS>*m4)U}1g!hu_-M8&=d^>I1P2_|d zQxWtfl}!Dg9<} zyuI(VM;6&!ZRCGl=iC<|)pFcVlbcrzqw`FH=kR^@H9U$+a`ybbLY?Fa{9QIzIg1jO zaT#W0jRGOvYjgXIOxIqHVb*#kc%tvy?nrOq(sU4{eU3^!Uq<^B&Ko@ihPY3BS7Orn z4ni4jg(FLCBina)>Ddn4Pk0VS0*z&l^0i z6>r8}b~-tO%irvaxBsPCUC#V$w(wBa*`$gm+RJ)y?G;(=bVAkCe;niR1n-tIzIGou;I9T_L!J zch|=-U=;KFqxr3Jl`BuvD$3KT0N!Fg+~UE*^}RU2%+p^O%P+ANz`AF`%Jps(VBB&o39eAUjnuZ zXS*e@l%Y*{Fs`!t#F#eKx&{rElh~}#$SV%W~xvlgPb@0*?;Mm0blcnc_b2;&(Q-*UIyfzyWNvOxsz zyG^w?m0D`2c)=;bM35_+=?w*EQgEu5JG;u!7A>A$9dh{>(az@2_dS0Cf*!7k_j{Bh00t$BK{GT!lNsI=}8BMjna7j{V_6$%?BOy8sBp8n}mkPGjO#D!T=f+8f9x&PoioR?T6tVJbYxC`E5A|tHt@xgT zQW4;vfj=V&c!zPnwhXiE_fe=oL$8OwfinvCw8DVX>hekz@(!VS2^yx+)YEb>98a%S zNsIT2k;#k-oKIohK*oYk*IrI^;}ux-GMaXemC;O^arVI8rZPXWo(q0UXdO^ml-enGkCf%ASdP72;DhB~v5PbI2MAl6y z7b|?qI$*BD68GC{dQO}IR$+bZc{ zomPJ%p@%xmEIi8OMf4F@y$T`hUD_Kok@Sv`57iKMI>I;-l3ZtPe3coZ_na3)laeqN zn}e7_H<>=enKiMVRBciaFpUPCPod2@kdCjA zWuYxowu|Gp`w}uDm3M&|3n9gzCE+`@k!JxcHkb(VnyWMn>34`uImKBtNm&y2TCP7&7CX=>KFcCeC)hmMc3dkh5P9Z8xb^c^={AnN?l4!h4?KEFZ_eK&2FaV`2n-@N=f~RiK6Yhv6ny?-|{i!TA zvubwCs~ed7@>D3%9%ZZ@v*)9?5m{da{N1a~mEBRl^)mytjK1S3e0sdh5w{SS5^eIY zBJ@1^FHZqnc52u^Q%u`}uiA;3*0uW5wR7igtW%VUrH40zdKkwhXIxRMp;VCk80oD+Eh!LNQ%`R1~uuXLi zyPlpdjQc!O4wzsPQPhE0iEJBIg4AMhTCc?4f$7`wtt!`Kqa(4i#QGVr?xgAGTA8Rz zTD5U?D`#m3TurKUV?|aVFe1cZGsGU4f1MS0h}48DlXz>>WRq1SuALYNXh7z%_uch> ziz356&aLW7Dj4gmu1Z=!23#~0N&%}XI-}w*N@c-#>WVHg+LiHin~E5+6}h$rxfdN5 z^bND2!FcrTprKCWMq@EV;SAcI&5phundS}t>W7#1-_ar8fg!a#P5*G)lwk`{v1@qn z+s?Y8+N+{Gr=sL}syY%~gV&Ks#u1}mN-P1H)2s;Oa^zGo_}deup^dpD`2BwohJdyn zaL6TAz;OTJOop@S7r2_Nt|7P1`rgbG&esm0^sr=1iz{VAV0{b~HX>wlg>CX6KG)zv zQ09kk8iijPy&a9qWN}n>t3-BBTZLQ4YBpj_DJu3Tjc+A=SN~Um-@WuL4N+a86;Vx5 zUHBe#t2PkAcy82o)vLyXA$B8S1U(T1{jcDQK6=`CuI>WHiBfifAz7ay{>zR_*`6X=QgpxOREI!!$9VfN5EtTyK*u=0`|tUtpDBZ;CIa={GM1Ku7lA}EZzDC8MEceJ z440)He|yk$hni$_C;94oCVng8*YVnn@n$um$25J-9H=6| zBb}NioekBS>U`^V!Rv{h9^A|v;&|(CdaZWes!x;~V36*8^lKTkDUZZqTDcqhsAdGZ zbO&4E2l&k+*pndD%#YcU%s6)!^1GAhk%z|MWBL!C%W>8COwDJ<;M(^w2{fW}CFnxW zx7`&52+Tu+=27fP7_JuKL5s+OOB`VRB`*1SgxDq4o+UQc5d!Q%H$#y@Y$sEJ)uB_6S6f z$7}YcXSU`+dn6xwBt-j@jQixhTZ=VYv_v2VCS=ABD5h-$5FrSpfAHyVaeq2kaVTj0 z+i(!33mWdp03@V1qyYOv$qyJbG|2LP#7}Ap{q|4^^#~o}h(PH`{Td;zA5o|GNdM!= z=o+Ds*&^V0@oL{DV4taXE6!=(iRi>d=)`S%k6r;plecA?cf9a^93XVSTYJFP z3)%)Dpg}BKf_Dd~)*ye+Bd?+%#&08kLQ^RUXURl}i6qDwac6M}XL;9WrbLLwLgzX{ z$HlXdjvr8Qfb&Y!1D{#Q+U@hn+;ew>i_bB!Yrsjv_OZkExwX&%kHf*Iuf=7s1}h>c z_!p7T=`5@FENlC6Zu>0jUQEhg@5Ei4=3Sp} zUu?~J zNW$mksK@oSN1NMM6Ys~zs28yi*GJoTCm(mmz1L*If2QRxu4<3`x6d~TPr0u_$h~;_ z{MLkE2)OrI#E(xnD*qPV@M>lDR#)g)Xy?}8;|NpnuIiJ#n!7v9`y4z!Ok6#X5I-u$ zZ&5IxDBV09#ywnLUmMn*gZvMS47Wvkn*PY%!#m#R&K{NKKOy(s8f-rq#GU8VUr8C> z?ev~|3f~d@x|aL(IF`G2GP{R2yEiqn2l%}e^z|aFZVw>*tY-K;dG(AhbfWd^ZnyWY zvi5Jq$B91CrBNTq-5z3q_7^+z8Q0AXYTc7A>R+pyCs*RX?tSN&byt3duegqTL|-2x zh@WNWo}2TZe}P|juAlpupH;uU4EMbz*1e6*JdgDJ9dmrualE4eUsn=6@dn&@+_vF> zHz4Bz{#EZh?e!fIu>7s7yE>hN-0l7NG~((}A$P7nu7%%jf4>DYzdaE@4=7$IeMKWM zK=5O|g=GwEMs>*#RoWX0h9#9u`MF>s8iDdd2kh2V zLjJ$&VSN|-t)MoptBqcECd*mUpw$)P-?G@=NzPM}jTA-aw;QjXw|gV;)N|kE>PmBT zelYf=o@=b>Nc9}E$h2OzqoxYW<$*swz#sRF?Qf?tv;C3Jt~88;I;tq0wWZM3d(Zn&7OBLsJzotH}X3LEHRS8aLc^x+SISL)z+>OmtY&g zvybrROx7I}y&yrcGZmG*lHqsVv2wi|)rDTw{6~hNN$p(VQE6GGr&3AukI>2kzf$!f zOmjmkiRUtFKQ~CtR-uM!uYXorr#%^3+aTdcQN-N&$Gj-H^RUv7uM%L6q@O-#N8f*v zUhO7J(_bmb%CWDwE&UOajt{~5Gu;%bbi;r-$A356q*l)ZM3~TT22!qSH#9tIXxq(T zX6ySNJ+3O&dvh$x&~mmyn=v1`XS!R}4g0X2+@?NYX_4?RmXzSB3il>Ueb+j9-sPqhDe&YVT z=XBA6t!qjS5;62gNgSCUBhrmgL^ZJ&HB*u0>M;9O%3>TvtCJyylwq2t9YtbQiyKQ4 zL_&sO79Xh5Zk^}@NB=&qX|eK-18<0UmG&`Q|>8lR?HN& zA)W^jk=|UwIb(e&3s_-s21qaz`d=dJt~(h+>ZJ^zKbw+w*(3noBLQ$#S|bDyRw76$ z^MUAF2N2{LQi5Mt5~96Ahz8pckd$_zQCWTyph0k!i;5-5_yQm_#s{%28qu;v2vPVe zI`JK#aCr$zFuhNQ$l#Pye|$!IV{p3nFcl-^{r10?X-(-UIH!z95H1FcbKEV6W*~?F zkQU)bS<@C`tcFJ*(*RLil1q9<5J4|-^TK?eC`S@Fb;is1vzbJz6rFIHz4 zSz&@lBYhrbw$~KRc0xXWtOTkcpNwHtP=Ri7@C#Z(FEbunro}KU(_tbsd%Y0^O0tD~ z$4az7KWhj_J_H10#u(R|bIv}D4KK6TGK&yd451zc>vxiAui5Y43d;|XI0F^2&y$lw zZ>dETrTAh!+|o5vo80yp?I#vidt{^v zLYym;PpX8P523OPoRfbj_+4^wE+o7$5h$bVTbe_NM1~|34uxIQ56gs95%mL;t)bQv zg`UaqSs5$LEw8);nzbjQh4s83hDrVs(quA7XR8Q1iPEvj32E%!f4335WJkm=yNnq0 z)P&7(Vzm;9h?en`sFYes6Hy?xHkg*2Q(YqrewkPi)U4*cH2x`RR%ffZ{pTzc8qqfXuAG*?a6Q&xpt1v%Bpa4 z5yB5d&hj|M>|N@G7@+ODpOMOX797=?dMt(wJfME8duT(wAI2M=5NT9TB|9z7WX&Q$ zgw%MlC#k_N^C!Zj*u3St4-82s^rK=#-}*?LMEG}J6lmsLTiWU+$c(DgYm;iLS{Mn1 zCDJEoeB68mo&9bOOhuz@{Rrmfn}_*h4cO40aS!&epkTzEQf%XkKF^f)x?6xlgFo#GhHmQ_oUBJziVNKfa*|^^B%FxS!O% zKKb&vVN>4=3>`Up)gYwlIsH(C<@Ic-&T5F4)l-Va^OFcD+> z1~Ib={aLxB;;m%_3~6ThD!Mh4Oc zVaz4tq}th&UB^25-)C1z2(yU5^C<<+@mXsL7>oCnX)OQ7t+5HSm1yCXIUmqoM+`Hj zVstQR7FS32>BUIUvR)urWtbcvCKTGJBF|2pz8L{pnk zXZ1w7k~Wx<%CodKP4$45*sJ&2Taod-tZ3=#Au{kf@S6D1#sl%3giyD>oWAm#7DC98 zv`Ns=U2O_w7coB>cQez~-166q2gB%lLHJY&e6~#Z)AK>!m(}p`Ekbtj`SQVMSBCNn zeiv&G>#T1F<{3h>8sYZ?t9qaW`r%06O#0c4fjt*4t-G!jINv)GWntWCpfI(1Q3Zyk zp8KU-IMC4qz?t--!|avhvZ8;Df6KiJz5N4Jdbi;$!&a(5;16>X*!2alch+SwelBM1 zBH<=F_HY@&_u%2sbK$)PGRi;Ywcq=d$V3|GMNC!k^vA{c)_XAOvs&(ZpaJ2~&+UjX zLwHr8hf{(2BH}s%Q3eRV?^r9O@I}Sg%CeH{cz$$W>WD55!n~`5;Dm%sRB=zqhWJf! z*DeYKu(JdJDR3&;w}bc+U53MwphNk^*i{F=bQK>>4sR6kD7e)?f1ci1OlHf2fjaaL!YsRmML+?r5-O; z7;_9*Ff5O-@App2tpT+Q3Uymfpz5&7enH#5B>Av#NEKh0OG&jXlZwkAc2c`*v7nz1 zqi()flX#bBbM03vksbO_HMa_lmgFsKEZI&a0SULd_Bo00G z^6&~Iy<7K0PB(1RcUXOq1_redl}o{D^hxy})zKK;yeY{YDOH#nRlg7qdVOs*e#N-qe5 zMf{JRa%O*pK!l8xOY>JWQ8}KU3wDa`u0NlLc_Z!0lrbbwa=9VfLoK#o1VpBq-+s1! zkyiTGt&G6~Oap+PSu6p(&1Rm^d zHA0p@ZGAgyy(@KRwt&ewhaEflkfUtSy|CEKOF6|fdcl6X*+Cr2CR{x5o+9rrt|IoP z2+U%Hwe3_6k}W46+~pH|Lnej;aWa%t?gh4QWhoUWFCR@y!-UK#r_7GPOse_Gc_*-5 zSIhbTP{wRox*M*z|3amIxP*s7?l!m(cG(*q^D~m76!f}4@?LjuJ1W#49QUU9D|)%O zs)w4ApD1au1eX>unYwGaPk%~Q_8$#xRu8j!=fVO7q-_l}N7sIF%p!s_#sq3&oRal0Ew2J{?+hxcQ{CX{Xh}+Y z;kl}L$eLxSmC=fSL}8Uv3g%gfgNqZ$>T)m*whyu_n1maRpB!~4UH9N=%B;zsdAOAR zbh=<0{z>b8=-X=5Uo+GCT2%m$DxQ4hze(k?qe+w8xm@2d<&^FiJ+l>s5C>v5eS4>s^uns zCZZ|BWR-(+zg>fo(3rubE?YUEpTBmr5B zwwLP?9P?yiO35qBrN$F!YFR1v5T}JiZ4$HfP}AwD8@@IQuq0ta-5cQUl?}COP24Ij zzc<){E6u@oDTQ^yWn?NT6+I!rV*X<03xCCD0><60I#Yk@hUTBq&4Z*Z+#4aQ)#_6* zAb|}!(1}fFJ)>MOK5eI*w7h!F>QWvGyOjK!XnoX%d?(ww$r>Gp+|L9Bm12czssH&04!_2v> zMa%CznlIA$sZi2Yg^-D@m`gJ*k}1xpVCoc5_lyEtKsFM?ty{$q4w^f#+a{BcnuG@F zP(u^dux>xMksKzE-M8-$?G$eJF|j@V3_%u za~-#ucIp!027h{KBqj%WX~ssw{T#})N0rZ#SU}-HMkwRdQi$%UJ`~rk%5)&JjYzNl zF5Jh4PQfQ=>^+ zE9dr!SK(|a)Q&KOvFySyoZYXuO&TogS+ZTTYgn*)HqD8@gS-#)u((ueMvmf#<)chH z`5joAk}ByX#41#pCaQ{MLj=X(N^D9BK7YoJt1{opO)%R^Xm(3&kN)m{?mhw+loP5Y zhXAn2$3XD2nvL^7T&3ci(D>$}Nu6oA;(cLS-MEQk$1iPEua=Rd+4Krs@HuuznCMtg zXro*1SRaXB+~9PX_b?o*Uf$@C?oA(>39@RyLT2^&#su=4`RDM=D&e}{*<<@ln#>3$ zq{XX=JCW%`==dw!o@cZc-#qM{zVU~E3J=^o4wXLXlO^0i)xUfC7tW1ULG9O2dLP+S zQiF4`R{acnyPBxuhbG-D-+ zav5s&=^C{<5LN_|1j&&&+8{{af|<)vHDG*Yc4$@OfHUmszUWA({^&kc<4M=>N6y4a zq470h-aD3+36qUj?jC;N3t9)BtM1cDmfz?j!Yi*>rKZ2d+P_`TodWXLH3m@BZNdjB%b ztXRh4dG<}%bV`18EwB4;oTFcWv;V5rQ_E^wPOjvzF&Il*S+!>U{f_3_{0Q6wsizh0 z4G>!D_6Lp%rKL-i!Y=eUBxC>emknREi3z5HLY3c=G=a>=7$c!`iy9#FoMjBCw?qP`SvSK_m( zs{WKxGsIB?Qd1%bKHlZp?}_QcjTUA$LhdNtNMA&O#E`JqYKKL|sVJ2wSKQ$bUwIvuW7%Pxz1w_kn4)us*K z+U*$RyoKk3O1;+wPvKY;5G7_w!S}~L_mKQffpweKLS7?s3!%SmtHX@2SfC{U|H|8F z74n~C+k8&1)Km8JA1t(TUZ3k?EWJndgu8V(6(9W!WNR5aamPpr8lCypMxik+0!NK$ zd)&WgV^hU<=C zwYsYBbiDg!>6=i&M?gctlJNq}BC)U-O3kxI2jwEMz*H*LR(E8hF?ifAm#25+;|XL^ zNetG1C}b48vFgoeD@$@O|gBoClYEU9a~?ie;2-MFWauFJncmaIKbVIqi{&TOen`LlS-BSR&JP z<^4gVkwIqdx5k5kk>Gdxgf*tdb{Fcln#<28p%Yn07T4cxFD=`QxF0vn_!3KX1KeqC zYJN(f219>6)GAamF5SWdXZ~_M z@ej>EtMgrF&UArAO%%w)%Slc#H14wmQQVPM^Szr1SiME_2TlA+@A{sKv z5ga=8=!O@09PfF%sUscj+M?{t#9@v+59RFuya1_ruKSw4CxmB)SDTuuf&?Wd#V`F5 zb>Hl6>Qz7Eyb(Bf^XR7jOqhEr%ze8S}HTHD!sD`B}~q$oXc zlt9Z1KBka`El7XS(CdUJ_A?0@UG>MaiI8LP6irKqfIwO&$w4A2Uk~!&%E$hdt?h9Y z`pahZM8`h%XwRx7vRo&!CKUit)QI~)=J3T_1;#ORlApQfaa&8=WttHlv21q1O%-a9 z_9eMeO8v9788w9ZBDLlGPr6U1$D_HHS*H1K?d{GIYW;@dj$;E<)MtyPDABGA^*9Nu z=rJFYS8!u1E|l($UvaJlO(a!TwwN9KscHiH<$jnH6`H&W^P)6;4~G;ZMZ%2>G7N5V zA3{u2vI5zc9J&DzEoN19QUr{+(G`!%s1A3I)B*#gvZvbttiwI*&@5gEi z#Cb`8$iS+eYr0c~@th95>DM1y+Zx@Y*cNSn6A@_|Mz>S3v%S9lB-t4UzXK*$I%76k z!l{|;tWwSO@FL1VNlmtN$7uNTVq-r!y0d=;2>m;QK6yA58RR(ZlZUmVL#TEIeIGQe zasq$%ZjO6*f_4}v**a4Y!WNIV3`k`ZMEuJ9?)=4&;DP&S#aeUaBFbyojS@l9h`2W#sFEdTVT?qk zv$(s0StwXx`J{7FYbHw}s2xURVa+VHu}-)|CM2SDbF#73J0=mYlVhNews5Vrr%eKaEXc1@*{9unyW27C*)tHlT%?PRMo)u1+wn@ z5a`9rwhXZ#SxZl%O~eF2-4`={aqo677rXSb%Xka{C+>p{T9yFkCFPet88#>>6>zBr zir-}vzx1GM+2P9QLR@sECYAf(^SuNAORK&*4R%AgMSNLo?V-Tz#;V3QXf@v>NrEc2T zH80ogSCefQgW<)XgVNvKJg_gl8>2i8s;=u{4v=?&LKCs1YIfg&dZtV!S{$aLO0{)N zUe@ibCOM@Lc~w#l@h+ zia>k|GpQ^6sopvsT2Hrnxl2&K4o_#>NfK9$n;bPSh~A90BY&qVFWo+);+XO~vcX!c z7!fuih?7!e0lqT}4g1Sg;o~D~;dlSU?*vA_J}PSx5%m`Bq3kB)E&e2#jtI+HBq?Yp zD>`=-cD1lx=X$KJdi`yZ=s7(af@E_Qf($9ULT&D9g=5~=cv~{LTh_g9uC!Je+Wyv0 z1#dyZVFNk{`ckj4Fgwd!)K|3nLsGuqu_jB}J=?nUmKoA5L7bNp9GTZtfYJfa;BMu@ zOX^eE$>gSbX|Ruy-=B)!MHI$e(`GIU#nQs)=s@1}%Lm(_?F&=ULyNk(+_a1QwXcEv z6SJNY)T>a}ejQ~Xkq8?7FU0ooHh!KL&LIhDWw+C0^`U{2uxfvM5D63 zv`fdjrn23h!hDRBOB?*Zq8VHSFpzA&o3-r_tY+I!?)hJGMQAZ3)_6zO?xOAWbpr_(&nf%SMaDKDu@O6of`4c^6KY~~ z5NL1VfEO%sL690<`b3B_hj@ z3rC62@ILw20keqx;z|G!uXz{>C0#%$2=J2LN3eKizIpDCUzRzxjwYU(xXBmzEe1EI zlXWi)l{d>PS_Z>@qMvC>A$xLtBh^?@3jLvgY^a2cjV_A;g*-~4lxKbL;Cw*UiKay%h8|HQooC*Y0}x0VLG>Y1L~3NOtO@SE88yAYGAKsWP$7%KRmua26{d(FuEQZOgT)-$l^7WUR|+U?ERg7S#b}#@PeRAqa!LE# zw)n`B&ipoCdQ5&DQEfKlQgKH39Ga4ajF;~%@6YQSTcp)uQnJ#K=PF0cmyEFB7t(ufEdV@GO}2SmWZcxXb|2W1_`SQ;3`X#GZJfRrvR^#zV2Y61Qt!cg^FJdcDR zvW?+>mXP)q;_JjBEs_f^?ip|<3MC~FwW7F^?*10Rbmc1h+K3Z&n@z?=rDid@o3P<# zUyfTbp}!lh!K5FaK>fr2m})d#EaTX>_B1Y`A0`D#7YRmo)Z%nSLoOhve5(Y%m3R}h zZ-5AJBBG(;%tP29W~MBgmbR)C1)s95F4o9XyK9t1RZJLIm8mBLs;4Y8BLMEFVbwRr z7TqbOvaF7dB&mwapqi546;oEMQyLu6 zy3xC}oB#@?a@Ha-)6vI5rm;O-DBkZ-I8#9JVdvk4xG?1%?|K1^Y&* zz3WX_x#&VREi&cJbQIb0=dCi>Ly$%W0^(5!#9@()?UC5Z z$~QoZ#g(d<_2@o0%gl?$upQAf#=d#oICWvBUz_3p1Z?Y<040brmWMKK;jztMf{q=e z@&}RR0Dhx1e641&aYU{$pgn~wuE$eHwyzq8qN?;;g4kA1*M65P+M>V4TG= z|HacesLPfPvW0&Z3)jVgRE$Av_M=`12)w6kwV5kAwqbgV7Jh5&-yl-LZoc`zjjhUO zr(6#SOdGI;c_7U)1X_*qSRkx1c_ZmFY&m|c-b(D+-Tb-Y{gZx+7xoh|a*ycd?)=D* zaznmj3YTT6KCrRuR}5~J=+^m zI#4gC*hx2?(GKire{--741-s#pr{SYwIyxvHx!@Fe~CsGQQKj4T!r!6wCFWb*~Z{% zH~so@%KqJnOR)m@6W-jZdEz09C!jehw)Q2Tlp9iV*SVc&LF^YQpRu zLMP@%2y$gkY97pLCJwo!MGQn;vlm#qrUn22clC1*EI;N>$!jQ+ZjM=N%og6!5(U|? z%v6Nr+1Ni@yU5&No7qb+QSXb~;+Zv8m9frq-7hag`HsxK@x;{i@5g zgcZlWw_H_py)XCtD(>(8ZgR(s{mrf{f2zl6l3fWJPjOsA zzCqaNnrB;~8mdP|)KV<^Am+!Zd*y?+I>-)bbL3~yj2%98y-#qRz10x~G!yK!eH5_Sbv!274#c=$9MV$o9%>|(7b6CLZC)Ob1e zG{yYroaKB#E)3C}hO@nL0(iP7=@PqFYxArI#-+YZZ<6rOiV>r_U^gUv={B&)ef1sR?UFc z@zZtwp6fZM&a`D>LNl$M4;Frva#Xt*)Ri-*J!kfwh=#I>>qSD_yQGG%>dJjRe<{*P zuoc@G)0N>h|J-I*5_7rU6XvmU?c#mP%lWY$`f%xaXBXEUYCe9O*K$__Re~cxPC9^k zc%(#Gd|w}tx%^INpbzwIvgKI&NH7>a^BqLkesV9vrXR9Z&m{kAA2Z2k3riU4)3Ih3 zo6{|~$uDRqZ-?%XH{Si^2M%0VwTs6LU6<_T;#um?#ilzOQT|IU#aPVtat+h_&Q<=vk+go*GGXx7jtN>ecZSG_L8qN z<&>{~>+qj@&Blf~&svo^tf4Pnx4vP@U9&y9&E$LM$yVEm6TxoJ8Ea;=NnWipd=3?z z=Ps6?3!fJ^ZL6?5K3bRUz!76hKI0W837eJ;XZ)>pRg*@1?DBu~WDkl>*_2bD9z;mK zQVKR3A)+wf1lEWO2F$wj2Hr}!#(bBG&gq0Rd)(Gs1xtGZS^vGY1K(?}*Z>n=e=4}- zry1%BxP^Sc2~g({Cz1M}zJ=z0@72%W?HwVYimp9tegu43x@l(1RM;k zoxRHmyH-JDn5kMS0gBm}&IGT+mxl#2S@Zw+lb0)##ATwx)UoJCnu`_FnIk6MtX+?$ zvv}MeQlIA2>kvjFqZZ+jut>`kQaIfefY#rNk^lQ{^O3PA$OpABP83>0nSx-T6X`s@ zc=md2wvcxBS3C#(F4xo5HeY?0VM+u3YNhed5J|BcgPE~nE9i(r+QPo-Wz zzyY~>52mR^Err+Ot1PCHFg5T8<462V>h_Gd$}|LG*hxDl>h7?AQw{p1tlG=RiOd;gl2<$N|tgWC~|Ne`3Uax->Z%C#nTCj6R2 ziP*M@3`EX&ikC~LRm0r{-*2zUYwh1MH6s0Hpb>j}LcxYsal_%j4@`ljuT4V9bRuVY z*|3sZ5ry1lbkrHHBmEY#@b zGzGaX;N4fnekK-*nMPLZ^9GJEn)9~v2v5xxnE7=Qp`jST8Tv~d;XVG1L=mvimp#Po zI#uqkThheJV5J)A{s=lGDMaz?dHE;tq@a08F2>v z)C9n00?2f`T5<2@+sOQy!-?a+O5l)X^4l%S)L;*mgGESt!J+HVZ~TfB-t0i&c_II$@)SLxaJN-Lcj-| zn}LrKspuCZXtMnNq3w_6l-;eB{Y_CBm`jjfD>6_eoB5#$f;ym@J`0M#cog z)i*#lxXJyYiMz%}OeXgUL}bnfPi9#n4*OZ?UjP7!pgC!fI>=>uRZ0C$C|h{mf{n_s zWCE9;o%NFy(OoQkpj%qhiMdbI_gs|LV7SW_%#5zB9cm{EQTzuBc$f)w6ZFPNI56v1 z7YytM1cAcvxcZ34SCjXr2%Mf(Z4&sg$U11PwS_AZ-wIFrvk*bEpk5+PZDa7ol` zG-}yUY%0R6Tfm5Y^{0e$sn3x`i2Qg%=-oIc;u#2{j5miy4bdyL>?SN-Z&n`CVOqO5&~wrilAJVy&l1!En6!n5df+9%3uLzuo7yFPe~@ zn=G;3v>X>sPEHQxNMqd*)`^*OKLL*JeC8-)c zcM0k_`cd)eiMz!rv#J$Ute#0;xJAo;rt{K2MD)Aj-b^tg2Y=%FE7wkNo+qMq&I9-> zt1#;^r^I!f(ijY^5jBvOSW%CR8+`#HUwAnp+f6LdBrRw3T9>I=n}DLzn7EFyW-bm* za%JwTgtpDJO|v|p!*ny~ewSUq7@>ke(r4qG&ps2y?F>dK`g;q2OT6g4FJ)Cq_R4m! z)0wNy?mgiBPuH>w7`V<=61AG4g%s}9a4dE^;0mEhfhaPHfeWo3y0k65x^CJ5T6gVH z(jQ;uKULb6`4jK`NBy$5pKnvbcRwX+H~im9I)B;aH430nb@SVX8!AgLqADE#MwXQ{ zTjJ|ZwP9;ZzJ}A#37&pbxE_)8oC2L0p#)nW>|VF_yeJUp3C_V6PvWaP;K5%ruj3I5?~ih z5YFML;Y5_d(v{p8RR8FwDTrS?`PlD|&u;LU_hjJv=OWwS6K<5o#KXi3DL%vfDV)gU z!E%PTo$0eIt7|$@m~gbaU)X)?0MyTFK1(@6ICRFaNH*fIYdL}cHR1;&eVvD;oZ0!0 zo*jlTR6Lwa7y$o6#aoiIS}naJhkE-fOHI};Sj$$!gL@78qiC2|6e@BJdGr(nmKkM2 zO!Y^3ISdz10QKu|T{)f0gF_(%BIVgXV2-!7)1IN(E@ z`927s8$>TP#dF`!B2JrfZzdyU<$-}W0ZyeK|W}vl&Hh(XYHm0bB!4Kzb$a& z_0fyPzhV4ES4Ka;_=_`ZOEyqbtQ_x<`03S&RWt|=nF0e@92t241L+0>#TW}`9)r#V z3l#(QJ0%w79(-mZoXj95e;_u=;QwqP{y*5f6gZwvz*|S)?C`s!8c=!x19cD^)Pza2 zk8W59AjO0M86%q}Ja{BM^ot|*0}zAN2!beJC}3dpRQC~nQ4kH(AXEDO!yqc*U=gLn z!n?tMqF`b+a1bMLz_efzqudaq3?PgwU<_hnqHrLha*(1708keYE(!sAYGjvzWS0YY zS&0Cv8*~yFq(=@cR0%u@OwA7@s;Bjz19ZA`p*O ziHPqn0*o^zT@eXx6J{3&X3qlYK@&!gGs&bg&7d=hQ8LMB69&kIM&&P!RWc2>8mVV9 zV0D2Gt?6SJ0QgT012{k*w}?j<^dD^zd}=d;d?2=5A^b?1gXqE_J2k~yZ zxKZ}#=}Z8s*sxk$uoMHB1M19X*xetjkhnTEX%Z&z7UPhE%+r;9jg!_4i`X6uwxx*{ zlZy_Xi#; zM8;Eue~MFCV2c8)nU~b57dT-~Q~0JAsIeCi>~2Y)m&9&e*x^$J>^b>WlErc~_yRQO zHk0U;mbi&q1m%|mneONtQY4360oM}3z$D?DeW?{Lk)JI9WF}D+?u_qCywFn(Ox#}0v^()#Zdw#K zfgl|EJZwp{CPB(p4z(qYj8yr!zw$B73PpFqWy``f-$ZcL6p7n>C$M0Nl0=tW)X%xT z`eMr%;e0%i#zL#OuPccow}cpv#N(ne{vGo@x5}fNfPR`*_$j$6w_ z69in5g6Gh7*3?E@(4I~+n!v(k)HE{xZ8_q7+87dCv=3QD0D3m*v#!yVIRbmATdUrjo1+ zbW<+DHG*FDXXknYvS6#^IGVp+Zgd$R&eY8G*+lUv+79~kz`Z9Y(igLMB~;n z^UO)|gyru%bQ34dNmaYgC%-uir1x#9r>M$1^2mmV0X03E#7f|IbtZFcz%z}GbgH6Bb& zJR9wFmDg1%+Z6@;2UHw)Cqi6j*Npe6W^|%8bXrfWDJ{$}ZPyr2tL+CvDLlQnReK?P z-MkJ%=?qylZ6gg&#}X}@5-p3cX8NTiN2?44T#ql_nx4~-ET7u}K73w0?daj!)M5Dk zDr-6d>89=)-bH-g1#3Q!9S#**j<@aZwwjuKk2ccF9zR{3fZ8G)Kf%O0EJsUdTLb7* z>A~cW&QaQa2Tgu)p5A{lzMrT0A9%PvXN11-Xi_dqK-D@0!;-^3HEDJ6iCFP!<7+A4 z@?((@L`(-0?Nay=clZV9xa{(|Y-+o$J-UUg`9-XnKaE5iQ zag#1P)~!1t5$IR6dSDX-t=yvihso>O2^OP-Ju4)AG>+DAM?|KG$8Pdd%=F1yb^AjQ z{m4gOwI1fKF8InHqvjP2%p!ezNR;LdAMNnK*R@3}G+B6Z5~9G`8BmaIjgfUrT5|ow z?fpeaAVo?*sn8-*0CLi z1TLin`97PtW8fA(C&xh2c?h$|vz&fpg^zouG~t2Eyua)c7CdGZyn27Bf@Hs~$AvWe zp%wZ?7y|Uo_ z0ma=iM-aT(mEY8!zx$kA*IE`LF4FXZyrfanu>n{QtkKp>X~U}-%&z6>s$Iga{UIm< z>MkRPR2%47LQ?9jJ&FhUoUHW9tv!pO<2seZ&*3o}`U1v?Lpn}LL`@(6Q~cLP;>|{K zkkidz<8(`sJE2T4kCzHx?KB8R5L0d zlA`A{zSOAH)6SGr55&*K>+Ms+w$5iEj&_@g9cR=9;pE}m*w=(5&c+t?f&u78P%~t& zQAl{Sg?Lm6JTgwwqtZK51Dc)g9WL=5wa|B()oWG~sw5`t2-#{L?QA9%_<@^=khY~S zG=P~bG*zJ=j7>U(OS({^zfeG;QFK4~sc)(PyhtTXMwiLTvyH$^GFm_4*TddF@3h-MbHz3t`TUl~lUP&y zcGC>@k8gI%40a#=c0~+Av6~zVARXky-9G_aQlj0{dA}ihTR*uP_x&c1-*ym*nLNI{>Me&W2E=>xc-dh-< zlWoIOOv6*?a~~fS|9%n4G}^*aPUcV$nMOq3#gBY4%7KsB?)kwI#;?Ey1JU(!zY7NP z^`O3^1hPH8g5C3-Q+NNXoBT7F{JV_2^{VZmW5Y}6_PVCnAAy3su>QNlwO=aQOANxn zm&RzYZ#SgvaHv5yY+^^4Vi#`>MkO$u9Z#s>XgOMoq)L%NCjAcS`1hBSrnhND&k*KoobP^LtMU&pUz(`!> zGg;hF+l}5Ru8O%lVc(a3NZgh4MPCd&zKfk-cw7i-0All697a-xgsM9Ph1YBeho$j0vh zeh*QaceMW}V1)(zB6W{D{F%sc=LRBzWGCJOEq^kt&ER$T0am~QJ_kEdLqUIWTtib2e z!jNpzr`>PXV^0*C|Cx@aTH!xD7aPXUWktje&bDhNtEsCRArz*b|P^{== zFHdxCPgNqlJL2J~fdpU@m_vu$$HEYj>tG=_|UR4>^B%!y&;t_(zI+5EMR13J> zRgvF@j#IB-%Rgk>bJhQvLs^2M_$NeJS`X4RBj|MyyJGSBIRMS!VXsP=@N0QUemVEf zAe;hmhPiK^Vx=sYB$}!BLz8Y&dATV{C7tRj%B@?15LYy9@JR3FR#?W=yHEbDG#;G( zENmOZk)U@a<&ZW-UP-cI!}4wSA(H#&lqSS^Nm&d{0~k-i$K2;MrO#IO{7a5KKB;J= zd{lJfqHc~Sqt9jr;XJps7Lk;c(WW-NuVwVF#0OJF>>4#sT=>$bn+XQX*9|RUR?=qY z8+MeNnUtKeLmm}Iy%LZ?)lZwcNVB&KSwD%W57hFfKw~}y@q#5WkPRJZ=4X($WgMqb z9KQyap`S}qwp6@_`|=goWA@bY%KNy6b%b$K`tOXfLcw?^0{PbpWxso!dNSOyX1=S4 z^G|pvuNUy9=%r6_X)0$i4AXK>zw?V7?<(fTznaas#*hWHnNlf{YDDOL8UR$E@Gsxw zG!AhygnNC`IFs6(+PD+1>9zATuq}j#m#O2oxBa$JozqUgp3Y+*#3gsvq3Udbc=d9B%$UfAa}(Qh7W{nr@XAj0ZQsP(YX#*jRb7u%jL!|Vco4A;vPadgdWfojqq!EykEo=HJGh-e>tIkX+$S+u3l@{THe=>7z@<$><`(h(tKx zl`dzkm#o1dOwuG%*(Kk+^wq+(ICrGDH?2-3>Lms-aYr>4*TJ>$zqfI^J@(GE(aLa| zoFcPs?mSjCg-ji|ql?yv8INw~d{^*p3+&hrZ^0BRIc|%oMkubNV|`5_v&AW%Hx-rh zufOgg!1Rpg;XP#MbQe>3dOqeM)N3E|*K#1-`G66gSEYrv9cq)@fxJ`jq!@n`EHU63(NO z)KD6BXo|q6%r=ITu~tR%3FcKAZW|{e`Yj(qal9^IqZE)Gwx#a3v2L*u>+%w!JFv>W zvdGwx2+Xr)L!&RrRLCgjX=Ns-_0gE?HAxZS(KsZil!AV3V^A0UQtgpC3K2D}){rzy zb9N*KrZao?hmIgfR^{j&f}@H)jhdi6qi6-MVD$`bIb^d=)&4QTh~mgC^hGPxc?fUt z$79K*(~eSlvB?Z$BSj3TsHuP7P^jqtN^L`h%(AS2RWlH$<{OvI!(-XdF&1aa6~|~& z@G>9rIVQxA57qpv?WFsk^u^~vR<2CCiRA9rRSb>j*%Mb58tL|||I!_QZkOTw+d3&{-ek+a z31wnGWNhw7yqk#~0|EVUf6>bR8P-YTYP6}eN^yt&aZGi&6np!sHD8_5-2auJ|NHdn zR*+A;SgFxarR#P-LGePX^0tK7MF*5Q>xY^QvsT)H-l)SyWgsX$Z$Yo0PL?o2n+Z=( z8u8o2*yY@k3~zi+u>O}7pG_YPc*pdA-Lm-vxi$~(jeUq9LYn!lE4Rz8I)fz)y62uq zY{xZx#Z_%LC}1#%sa`C%-)RDaVSm;4eDod@y$e@oKvz+Ahw1 zxfGQkw=2u)+Xzu7nrow6*22aAEjL)%4%&7v{q){#B1L$#=fUS227hI~DKzKze(J8> zduFQQn~_wf)sCO{xAf0c1AIf*AZEOg0)DSEbilB(#rfpavs%kCFz#_;C3Y@t#i=w} z6C2n9Doi%G9anJdssCqVE%4Z}#8R>ERsi;_VapxCA{ENl{AUXLQ}{^NqVS8f|2MYD zlk3!ro}fe_y$;2GgM!Y`!5shRu$HY;#K*R56YzH3H1RntoG$A&A>Tj{!AZx6@0-sy zfAwS7WlDozG5U*3rPrcF~*H4B3`7@1pZl ziO@m%?WE1$4iG2|l3p%!$;YMleVTwl%|ZC??Q2 z3<=fMb|}zxV$Sr4$<$7li+K!!%K1e)nVtmrO$ZK@v%2uPr@)$)@q5^x_5zjbgo{V&J%0dCC(%B~aZ?lEoF`A~2rJf%a2~gatIEW|Am6`{aUmxm z^y?vH{MN%yG506Y++oqy-vgx)^*h|0fmSXk^2vky_V+qTo%{*GPjX5b32({RY&UC@K+R<;L z4BsZLMLhf@CetF85#^qtG?4G9ojB<#9p>*=>D(5Ha;J%Vs1#D2trKV4As=%_-K(|m!)lz$9G{0lIV^AQllyfebg)5-i~%go!(%z%j)_ou9Z z&uMF|Y1q}p(Kp(p8{XN3GTOx^IM#UvYxG^!7rr|pbgva<* z<#98Xgj6MSZe%I=lxoRkl0gbtG7=@D%Q$Y-&jhUJtaH=^t(&S!v#UysUJ@>&a@vrfPg34W3-p{B&jlQMC39V+9fXCMlcj-C6+hN9`XM=|*11l|75XlvPg&nT z>E;-BSz34dc0?sx`ox`h=Vf_w*zT1_zLeue$JI<`$q~ifm=u~qDmY#$vtKG%kxNvN zz4IAs*qWdOeuR~WQ5A^%Rfng=D%mmBQ`NpxMT8qQGTvn^(Ur5KHMKa^WmC1C8yP`S z$y^(`;IqmfHu=D*ROk8fiRfBTbcO#^bvF@tDN&sQQf)wY&6-}7&`WN_SzT0j#DHaK zS#-_(Mi~ZDVF-QBXmoW~b_Lj{_9nWLbO7~Hq2bh~?r5W|yt=O4rm*Iv^xsQv79lWA zyzxe_D2_^Qo#Ng!vnyFnhg)(^3PFsBwzp`wVU@W)03&qp?~$CBu* zl>arOaw>IVw2D=+aa^MMDf|0}#3&D{Lp-lV@-6zCnLo@}hy#+AU~JWijtc(Wdbd$T z4T83a<`nr87AomAiTKutGi7P#lu1Puku$X%>NY5zwxLhA%Gy*=fZ8kd0_R8T@~YeO zUyxp{8uT}tI6ovzo}5j`*Hd^qSUF>x$}) zc01(!l$@plKuhhn=15Te-AlXJMi*L7ZRJ@f_lBD>3b4euTe2osmAKgrrPqmAF9WF# z6Q#!t)atO=If?|d?&&G0CYRf2i~w~W`V`LTl}5E^^X0VmzqGo>=x@LDvc^RHwCQV! zDfsH!xj>*NKV50|S~4eCmw^QI=jfN5cDwX#bpZ8k`}V_tdjI)$dd1}Yi|N?XgLXeE z_DAk@drfD^W;HnWbT8TVz}I$N`DQr-fJqettiE~%-EGxEy-K##ONyOFwgXh)>RsY~ zt5(BX2_>0RH6 zYP)W`n2LDeAsp0Eir7wV{po+39i6>B&$g3;%)K^W`<@s&XfHbLkb#kQGc9^u`LPWI zGe44;dnqr*`s}8&^k;i|ChTi}ED%i{&y3eF%qY!_%hwE&2+sw?L?LSCD+~AL{~H+U z87BbG)qyGuP=U_kv$uA$wg1NdZjN5%{8Ts{n?@a~)|)|i>vgH_9vvvJQyhWz&VMp! zI@8a;(Vxe$pY_?ABAuO)1&!!u&-H;jw*(idMQUQUMrmpn6aI~9%`EJnbz`$E9psGP z1T7TtEZeH0LjH~0lgvLe554vvz>zMAvDE1L{uJz+-yohLQfk+WgX;fcUO52ua}p=4 z_s$29%m>(wB5tny{kJl{g{U{ZB2%}z_&O0TH13DAV!u6zyD_TgtK>&2f-z8jaxquG zSteSy_88M`rL_9pzVzhlT6o`}THg9@cP{ItBew9mjKPw{_6m|d3DK&AsKe(^T1O}itlwmvr#OT(zvnK&%g7#tmJ?RDoJjn(E(xFelzA4zP%#F!u! zTpzgBAN$T7`&}Iepq~V>o`fi$ggKl<#GgdfpTx|a#9f^vpr2l1Vf=sZ{BYUs)OJag z@?nTNlPSHJ0)-IP|3k#6YCT^=qa@&$%9+hVZ*)D!Bd~rT+_d_y52Dn2hX7Y)4Mk_| z?sT0YMW)tP78)Si`q`p*bv@>Jd1wXu1v;<%-eh+@@T0}ru>Z|OYNslsLS(YfZ>S(~ zb4P5~10WH;_2K-Gc48KQPZ#hIJ>Yo1<9j0f7r5hjR>zwkLNJFr=(b#zVeEckLH|qd znqj;kivDU`h7>ja#8kHcN8BWWehOdTmhFgM>jU=jG7Xr1_RNX@;&CtU`Ooj9D6SO= zRw7B&vW+rDj5W*LtM5zI;Wrvs`GZ(&y|rKI=Ctnm_ANAC#c4RzM{-$CpYNlB2CAM9 z!PvY4mbu`E|0vUV<~ol&VG0+Ii$s-l=@KWKAeQzpp^+!0+-Vas**h$Rm4%^(vZocC zqdI13XKCFhV5kA&Sv3>xL{VIJFjRovC#l)yT)twoqq00?gU~$DeT(rzF8U$kv^@Uh zg*<+kw?{1_@bB4SNrggZMa#Mj^;synGRp6&5WMWmPOO_J#$dx_#>>iJIfbhpphV|+ z`3JD$kjXq$^G8AhR*$g_x`V=M`-;b$SY}L1!qkx<%DC@?aNfgGyBn|PIII{=%+XcP z38t&~5ia~E?FW3~;n@1o#${gVFM;#g(C`k5sksN@=IImIE%t$!XxZDw`J$g2lo)@2go{vsl-BS)e@oYRda_Q>}p1+xfJiB0n`G z0GBg^u%eCso_8}R(OzHGIB zC%0?O7NqalX$CSZg~UPgJ|9o|JDhn&#N?Ya={G3<=}TxK^!^#%oo_a8okP}m+_zfy zGTe41Y8ty#2ev+*co*dvR%gQp5a$ymn2etcfxE9;59)l@_mPUL?_rOKd|TbtMDPCC zLG^^6AGe+N92+?2M9;Rk*xC}S4bXo0`rqOo$nkdORiXPJqN;dh-iuw**Q*_uWE=$^ za|b~#O|Eiu;aW;~XisOXrH75y2lymUt1KOfnU#U&W@5Aw*KSGJTixBBVjc381`Nz| z-ubHn18MbsKxUJ5D0^oC;2Ud1BS&bg@Wcp=vZ^0vtm#U9=->)FMpUUpK8*K-bh@{F zKr>ZgVs&Tks>uRpy}Ej~sg>9tUG@OSyHC(ky7sL+XD-sr(E8-#2G$`bE9Wo9*B_V} zFW@9TCyBhaJzX4fUmuYiLQO~~E6YKN#RXGZ@JYM9Pi#@uDy-yyM3$jnQ4hg8_bbiq zJL33jl4@$$HwsD`ZV|3*P7cz_5KoFqVPSU;Emhw#oNeGV2dgZ`drz6!J5Hyv0 zs$2??{N%?D1OP_8+zdy)318tlqqaBiokDk3XRaxlXt~_fM?-AaZJM{&yyQ5XVXj*V zEB(^qNS4~^CRFkhm9$Ly(dK5O@f=LeN({#zOVrH+&K)IW}#E7t`pWrjE$4Vm z*=Hpcs($mG5&5UOZudr;@t>mI3mWPLgHQssLT^u!)bOsgiie7Fj4{%tFI=VGO zeKbp2d+i%fP)f*F7)lH8=`OMG0yId2750}Svaw^;v)JygYk*6N|z4c;fNtz*D@m%hYR;2eyO$x_7Mm? zyG4fGL~@oFPxd{>w+oPA+hAu}5^AY*f{+dtXel&DDv#%)=~DhDkb!sDs=y> zGcGTywD;3hdo%+th$;Z_Jq)#uGuk(_8tiSiFCM~mr4PdY^l^Z!pyC4Ca#5|N7E^l) zJwEHB4i64oM0luL|_%GKPO-oIR_>kX3k75eNj;+6^{h;@zmnUuk!~~u* zvTWsX?IEg!^`kqo6_^fU`0h!yQrmLX-h968>_a8Q-;5I)@TKm7PUz)~^%THZt+#yZ z{MIXP1e!syu~U{JIewk&h;omAICa+xn#p%^`i=aU^Tjx7F_?vkBj4VH$}gGYk++gh zWHKT`_BfVy$L8}clW%((D)cDbNSz|tRS@|`)FPstSihA(NguZKA1 zZ}>no2=&kR1E+_-eY-hZ&cNeIDo2;Vy4BaL-^oetf80Z;KG~(tH8(qna6^{^u>B6l z)~=`WcJ4CjvQxB;XkZ@+KAG5FmzZfMOM)Ak?SFo2%^`r;Xxl=8igSD-bNBv?YR=Ua z3KsCvGM3hgR+BzYR>~HCg!F(d_;SPviSQQy`v4?UG5t>~0HXSrp zU;guL@vvj#x1y!?>!=_Kt?=jP4yGUEb{luM&@?B+cO0Yhmv8o-^7L<&5$2=!Yc?mI z8@D6yQmP&e`JCj=l;PtlWj>tdJxc4FOJ_QP;BU`oV&)bOSLxBQYJQ^`eq|L#O6j>w ztMWQ1D_I$AzbduYZdQok8&mEHCNRE+4-2ECR_8a3S~KqjM&RFgZ9tD@tz07vCW5gd zL0l1`x#J#-*nS@?GlG16KV@}nPRu*XIbu&RX-@c2bil*o(K{6pCR%dFUaCdM=5sP3 zYU>&Xb_cX!LSE6tMbZFw=du(rsR?J92@MHJ_du(dR*#UT2XmU+7{=m|YD~Yg zM{tdV|S)HI}+Oz&s+Jq>>1^3%o)Qt;!z`LG<$~_b8BybF4`C=feDUBA=?Q|5m1c z<(~N8X)OF?qE&~r!gp6ZFR5s&1e8<92RRe1h@?*ox>6DLEYM*W_*9EmcTE;A-;8^| zrt-MVd-6Ov-**WwaAXi>Rmc`WV0eZ9t#k_Ng2axx1x%K>^{72nl_zGo69!V;%1Ait zQ!?^t5RX+Pqkv5bo_35}8f=p6IzInr>2IxNv0mQE#;3tR-7f-9=2jDNaG7yDa>7(r zsmMsdQB~pmC*;Qn8K{^6baD~09Tw4YT;V9@BqHq(H;2@*T2?7ohN8tVp{(dFiiMab!fghS1 zTB37YJ(d4+)aFSnaZ6tP&!<@@wJ^i=-+olydMf5~eAu_7n5yJ?x@el)D8`3exFmPh z3`<(Mg5h>gm58Wy2Hspq)(m{6SG(C=q*u6=DU)twpl%r=YIfo5vEv|OR=l`pvSuEcb>6mj(R^i0 z55#c6Dk#$;h?*~-VYDnNE8jjN|F?BEWko)-V7}~^v_9vQl&X}bE-i2RFWXr~h2=#s zUj9^TiSoMHzxfI`5q!ti z=aKQdlcDM-S%ucwmtH|74^>L-#Z1;AjM2HIa@7Y>2^vTdS#EW|pA`OWq_}mLsf>eR zY||qNYqO8shR*WFtaC%FD(&bU#;j9^b!)vIq6+8{f#1XIUvvSu1&Nv}k!OUTxS}TO>mz=4tf;LXGYOPpu`f zwC`tMpLp4l0)pzI7n$b3tY&vx$7O;RWPyf}=z0NLFZ%B6QlILHtomEM@;O~UmAz70 zewE^IkJbvZ5DHG)p7y=70Hv7JpoqMD!c?|raF?K$Eni{5OWkC75Nvl>401bY+9OoH z*p#WMzK2<>lQQuvLG`vX;oKVgZ>NGc!Vi$7??&C;OJeqP)*C`(&Uhv{QTfGG`jB8T zRYr9nO6TcRS!|YLxMFAZROO{kIU#h@t8Y*D!cr_0*tN&mrQq9jexCB~*{ivk$q4I% zqnISy*=3~J+~XAkLMfGzkCqUOt|d;g(Mf8uO~onqK+26{-S85P@j)tf{o&i+Tho)! z-17&e9;n-JEJQ-XB)EXU3`b!_D8Q;+Pi!`C%+NYV(n8+DVx6*Qx*O} z==GSg>)B6pbPc>x;-HS$fJP*~wr12sQQh?{ZN^e<){oiNs|sa0$>cWp#zAG9sPy8h zHdE)?2Y?&3a^1DaxpBdaJzE3-I8{Ga&sbX6k@34>_u~HDg?7o-!A>GC3KBns$u8#C zg2;|CjoKV_uj=39&7q)p6hGX-UQ7iL_pwm+pN z>U+dEN$+4c{`ez`52?OCB1%iybSk6I(2-#7r_(Goq;@%?77OMkC4qsO9M!*?1BiBG z#qGmC+nTr~2lu-s6@2^cQKlktM{K30DD0=|dJEtTvE>m1Ce5{s#Y&_7#ktp;n ze|=k~zg(W+SovnKqVBh%g|_m!Z&|61JjiKMbQMOW5x6`!S*dOKMa0dg^2;kqvdy6@$xVAJR>D z48#umb%ezA9>4XNx6J`kNFpgD%^o;vyfxvs)vAg*)3??7u}?<2{bBI@e1mPhhF#Cw z-sszgY$LKk_YmVScGxg>KJ=gFdBhI~W}kE?Tyv_Kz=C)bif3cGtuwHHNi0p7W9Plb12*hvid?+;bJLhi) z$M%T(mxvw%Efz-~M>79&elYiblkEMDzy6)8dWgA)sN;XA(|@QRf0#6X*gSs-B0DlS zJZg42vV4dA0E|c)k09Gekjo>!59i15*u(HxaPGjT{viH(TkvXok90?}e@$LL#cDOo=->z0ZFJnF1 zyF8X=J-KuEjRtln{iqq9zepoP%H2De^gmttKLDgaTfg4yoi6aQ@a)fy<Z9K7;LhzaPU`Fa;w_%>8L#TH-tIQu=in{!BR}u!UE#(oWs2SlRbJ@=9|-}E z@CX0z?2cdx2S4*-{_GI{@Yvq%63+qMZt)mT?iiolqfqWLj_xbI^eVpbD*p5*-t`DkUggfd3kV8=+HLiJ zzx6NR_iS$Q5m`5QjsP0^*a2r><(y#ia?kp4kMOTg^QaE@QI7X^pZnZC z?tSj}L~rqzf887){83Npl3)2#|MZNn{EaX5$M5{hpYG{S-AK>vSU>b2@AIPn^r6W6$ z{>`LW)8g>97UyCl`4m*ShaEzsg(nS zu3$w%DEJX!#?%(>;jknrrOHMfd{6j7|27zmkptS%*3pUsa zvd=!(NV1MAN47(WrI^$caYPbJH1Wimdg&!95~||Bz0_V@tu-3Qs%4K^H90_qHL>)|kvANJ{O`df87#6uIeqlAwn^}8aIFZxq6I8OzncGqgGDE4!O=w> zkwwx;WsxNkNh7&55=}Yv^wLcu;ZjUeOEvXW^_b%1Q4&~fbrKRta8y=VS)Bw@`=EUC zD+^!1u*Mp9!Dd)ui#3+mUWWYyn`L_u?OA6(0Ylmj$n4+~YqP!9GE}?u_FHhny~$c^ zvE8;>bkh}gU3S}b_g#47m3Llx>$Ue@eDl?JUw-@b_g{bm7I@&#(yi9qa>*!$26+RKOa8~Qj+uj9cA@!2 zoa2j6q&w{>K#HG#23m?Bh$h;GAc8Qy#WuF@gNxwkdc1&SO}Di>nSd1uNPq|^ zAP#XTV-Ck?!!hR2hBiD9f)j+G1S3d63Z`O$sleYO9m3uJ=)?uY5{fd6A__!-g5)vJ1JS!87r#h7FYZuv zVkDw1bSFbhwy%AY92+J^_{KJrLYk$JL@995wmko4b6&mRBPAVB0Sc^Q6@pY`A`^K? zLgG)IdT8Va7vW4yfWQF`pdN*#_8c0Kf=>q_}W+zG$~taK$U zWtquX$})<#%q8;#fJH8DF?C)H=Jmq(%UIm5hDk)`3)3ivHG*J-XG2>lqFGH`NCF8Y z&}L1ynTHj^&yV6Hr#ahzP6z^(g6f2zIve>&vth!74p2e-=+M4aWOhOcfvy`GJD!NNmf|Pn;r0eW-xQR{*-~q%C1tu-I z#t%5tjc=T$HF0qOEr`dai)|M-SLjUx@^t@@i}WcX@i#%D;%^acc%(Cz8bA2m(|wpE zhVlfU2~P$zl%eD*K}q@5A!1RXWG$;%(|XoeW|FN^RGvj|mqp;puA{ND9&urdN*&s6 zq-FK%U&ThYvJrNgxHzl}0>N19ip#MCM8G^tIL<*<)~A=fA7?r1$fPBB{8W_ ze%_*nR^7xXwJJ&;wl=>XO`R>Yc)Qt>)s?utZCdqtR<`0Ym$`%M^g!yxAQtzv!@MhA zjj30@uJ5n$Yvy2E3P)>N6A4;i!Kku(;!`=64&3!)I2S=q%8D1WGtTU0k?PD3u-BfJ zyre!$dsx`+cv*RZ8XgBEJR1{BA+RE~XY0vzxG3Sa`f<&-f|i~47E+PJgvT<;{I zI$EhJPZOw3gjM^X)ljzXz6LEQY?B*S+Xc9`O@wlR)7n>8F8HDtm8%d>>1Em76_k11 zYjf$Ki1^J96VXjGh^0y05xal|j*xS&zeMLcw-^&2oa}fpc-b1?&y9n|#0i^f&mAKg z5`A&wury=rEuN7ItiZ|$*HsIg%uzQ zVxSR??t``1oLOtN-TJUvn1=rg(x6yhC!9pUUU7Hv9KsOF_|N4nZ)P2d-t?}Qp6yMe zRDZl^`r5Y;k=E+AyGqJW{#UHCO3||3MyU}ZZ z`+aSHWZ0!VtRW>L67Bzv%yYA^)B4cIl zL$(XRY`eYvD!ebkv?KC>nR7WPd!gW)D7UgGu?nua!a3q1JOdm#fWo1EDyuV^zJ3d= zG&_KH&^~E`2kJsBT{DBs8$TE13}9=Ys=Kp13!z2YEYh1e)3dmX3%dhQud#bJ9(ylQ zP=H&Iy-jGeN2@*j;xntGB6wrI@b4EXwn~Oklx0{Kcf;rUh^zltL-1%d;1IG1N0eLqxr0 zv%eq2KOtm8I#3^7aH}JX#3T$r{CYb{E5PP6JbF{PBl100Ixqvv!WRNXy_>mGw7FlR zt5qyO*5bJwvIR73HT9Xk>bt&MY==^iygGEVI|N39B#QDgKVnS3Kg_e0N=EY{J&9bW zv{|;YQ7``x_`^vOx{h;1eo{Lntgj{P#wK(^uhPB$s-cDAL}bDw+yX@dTc1!P#oyY! z3iK#18>lg~FEc#DG=zkGoW)o>Gwj2@fJ8xDkOw#G#TGnBr~CZQjUzjbd^Mnyq1e+#C0s&EY)c-xFCZF6P!cO+TFJT8LiTyD;Um6% zqDlYT2`P}0x4>*IAR5ei(}bTy%%Q7A=o-PJ!~%IZ02auETJS~7+)kWGNU1bNz-qq_ z63wj4%4hUJj2yd3YP=r1Mzf5>L|DQBBuQ>VHC4M!Fe@M3NglpxNl&!PeDcjLoH^$4 zLNLrpG1SS{a=TVc!bMYn2e8J(>_?*`!2@v2q+B`|$b@OoPVW5BnMlZ3lFEAG%$3SI z9NfzKgQkkKKSfker%KH;Dy?ipOFRHT*knR)oHW`L$NnOsP29~;G`B32Dj9mjeyXA2 zJW#>&D1$04N~5$NV!Og*PJNU`#Z;-Hl)MYYHSep1GH6N=ff!jkMZ)_KdY5~3 zEFXNQA3V*nQv}jNJCJ-$*rZP$g&l#4!b~it3nQ!k^hB4$%ZD{md|NP)`a=KXRK-fw zFJZN>Dm5Qn2+CQk#Vx&1Iy6^wE!B19PHV8Gh(gn+0xXq!NH^NbLwrWAL@KY8Mn>dF zePMx{AyC%^C3vnR-fF|kDX96 z8`)5Whc@F-bxm2zY*%+(Rh{yqm}S%RWYL>Nv-@K`vcpr=Tumc9%e3r+_#|5Tti&n( zA>G5xL*>szeON5)%}~_4(&DGSlh$cHxhS>N0=%zmYdf@LPBnyt#I(NXv`}0?L3GW8 zA~036HOL!S0G1ubVbsj3d#-t9r#3~Kqq5iYOsajAr;WSSJiW%U+*SWx&Cx#%)*kB7 zVvRygv;|gbSf*7}WmQy}49h!*8 zDBII@%3ipoh-%$cU9mr8zu0|SStU)mHO=)>fobH~)g*@23|^rfSREDCZbK#BGgOvC z)|N!v-c($P?LV|D&?TK#FQZf*61=PZ#>=JBOudDB>sq0-KBH@g3oV7}M1l<^-7Hw& zr%c^hO4}BK*E@?@nYCFQwq1R#(?#6K-laCZ#RFdzUV@#?)v;W0Ou6LU9SCJ$x`f`R zCBli_Bqc?Lw?xp^(O_yd+S%k@)VhTT72zx$SvovdfvuKm^# zCf^GcTl7_5RL;XPwI$+dWzDRoKMbsSJ)5_!1g8J@v8 zhGnEuJ@k5K{nar%70Zw9zt{uhp^Z&K24=&HoiQpV2IHO5I$Qx=X1#MO1)yNaMa3-E zFN~FFBNj=kN`zYwGcoquEro|UL|2e*;jU)mRko#9GUusuxRf?)v@T6r-PauBUmwO( zJ$-;9yk}n4=RwZtgFPrh)$9E<+=fM~p_VEi6YT#@601qJR(O+UYt>i-wl5FX1TYri za7_Vjh6fcc<&e&77u*Ha^&Qof;WS051W0FxQ#4JhS0h18=$A;X1`Xuv||Wo!Hi{Y1qc;x|Y&W`lVt*hJ~W7 zpf+fs=I=+{q>H+px1{8gYwE(I=8YAlj{V+{t!l|bg6lM8%A|1dv+gN!U+sRZHL77c zUa7JPak(9F`q|(0w4|OTOFrdQ*d}1&Ei(Vwd~prT>taSC2rcUT=I{L$1>aTZP3pS} z6!J@6Y6FKmoqjaTRqinE+^UA~OaN)Fc5+{{@LMA1&PLNT{k&!ptQ+3)@%GBEglXR8 zNcF+D*jsPD%~7^|Z}|2$*_m&pEvx?2?Kzjpq8@C2s^9=0?!Y_jN)z%S2lQdzbfx=c>2Nndn9OwXItJ~9-C3LTW=w5Z$Kr$N<~Ry zO(>STH<0_ zpS7Lze_N?K6>+kmAGY2xjs!{?y#@c*j?Xe@aRU}s*7DKW`K{ae>6s(wRX1o)q;ry= zSXc*cVWMVLG(aHN*n*W$sg7)5-%@n_g{|&)&D(`MNOp%>_DYiD4)<_qhr?&@@*Xa` zYJ_;2w$U<=Z34{rgW7mvPN*3-+(kC`k?-`PP96p5I{<&30ng&$Ch(k`Tt6>4`bq>( z2G_5p`Hx-#V#j%3JN8&2XGd?@?@YgW8XFJ4@`JDC)4WrMza;gEcrx#0zr8(^EAn&ZQ^6*{u^ux?r~FsX#GmiXqIS-&Y=%B@)SscjV{V|7}Z+%g(aA9 zxmP%yk0`M2Y=I}y^m908e|G=gk0X-xwEUO2e7K&D>y&W z%cpaFs&jRp-e*pE0_QgDE%27dbsbG^0q8$%&gi0Z`(clLg}Z^Bm!&D<>{x>IskE~i zRw-H_&xN_&xt!wu#-n@GE^6l%F z?XEm|7A!y^$}kGTisk<>ZkzzYV+0Nyd;nn?6XwjAEpz_hKm`KG2GG!P1_E@4v^{hvQlUkc5}>}+=~JUo zBW~(LRg(a$y0&%&0T%37Jeih^`0M^X{P^nuE)Nh?%Rvd@@mfQ%$+n45eJEw3a~z2jQb{K@uu@Jf z1=rF{H`#=fO3L;0k!{#fgj95eOjps6wK0_)R1YmQl_s|+fT31geRbYgWu0XomRV}K zC6`^w*MeY*p@9FGVT%RGSORiHHray|B)H(42tF90Xca1A;b}P))Y^w2#x~JxM=F(~ zExCoHTZ_J>q!Lat5|dg>HxiQ*F$$Qp8!|m+G~`p&IW=ffpBgn(k`i@ykX2Z1RRRJk zn1>z z5QhjU9pMPgM_E>~$B6wM65ULQ_w544r(`u}3 z`dK>?0iYgjJ1I`@BFC;y0+@8Db3zRhOOQg2TBN5Og?i+_Q7uW8lLc#) z!m9^VIcs|nYrQqsUE5Uy#rY9NW|@l>D_{a?PgcQ$ABQ|y0wW_JN68jKx>~l{g4iuZ z6NMWt%!H~ql20w3q!Wzn9@prks_o_{5ZF>-epmi*18P8fexkcXa(5DbVPd0uV z75mC1Gwd0zBsRO*_a^nd2NXdkJi(N`)@QV$1PN(G3fkm42QaBL=}DtY0oA^8HP!{N zh(M6NyY&cFc1W-C_xF;4Ns|gKtVLoA@A(XWkwlS2nQuX z>=h0fHA6{CT9`tfsj!8Xx)jiQl&|b?N=PxQo{vZcKU00@D&v{jt5O#${volEj(ntA zlvpgWk*y^O)E)02;{XD!t&;`XBHfIKrwn0>PaA|D-=v3;G&<*cEJBnAq(GA2q{RPw zbj*nyck;qKDorUxqhY?@r$$XF%|}R*%2epLl~xInESb+exq12>|PkT!xpa2)R6kTs-giBZVfaASNsf2uw8woFq zS-D?YZkRFar7=BcD(_U~DywRhd5pk@ zphnUmAroN>L$1nnIZ$LKSkOO=a?Oty&)=N<6uAHDc_L^I$X6KvB=8 zA_Qzsks;WfZjXEYtmOlg!;_x{G@%1^tf!JDS$;Y9m`jqX54FO~98C0?TNN#M!}}K! z9N?OCV9bBES=Mcu=}c)G=UO!xU)i2_ZYHzVK=y=?P2hF6BJ!7HN9altj^reSRnATl ztlXVK4xlNT4lt3*sb1Qqsgr$QWk1Ixf>l)oX6P;>#Vg_w-{k}c073t0(My<%q1HdM zGu9Lth=3!+R;_V0UY;)4nw9A`l@uXSMS9Chzyg=Rkc%ZxNmAV6`eu7A0%$#R$j4y- z^GBQFmxU#F(52~+hnf)2GF2eaSZS5SW_ z8q`?u7EQu!8KW0HLHX5sMGme9meC?vE|;i0NiqyI6=9T!$r1f@7Jn^~>i z7B5E5Xid}H(Aiqi#8sTPh6HUbr7~XUR<|Df)_NWbqUKlTA!6@a$@u zc_`anLDcBv&w%FOzh4G8OjA7XdIvh-S#;#0Gd|)#DtzUL_E)_dUCLd4$R=zt)y!I5 zJs`(C^c%@_JsiN~p)oD!Er~mK)A{u89cg1K6jwf{Ccn4sH|#%Xk-pyD(8Rud?iagz z-gl&_NsUfXsO7iYlF~)gKA-?sQ%AntF4VsVz zn9sc*{C#0_XqkmQ+oaJD@BsrG~eqOM=nw+hc#;pHc_yMB_=ENh4Ah!r0K(3##^;`=6Uk(0T zZd3;{5P;+~Rnk1y{q51H^xu)01Rj~9@oicx5Fl1`Tqd|8I)>!Ks3SYpB5359$|WI- zE#X<&qZ9?mBJSDS(G_b<#q*d^<}lqdst7}RL{Bc{q4Xp}4p{LW9X3)UzEtBxR!>d| zU5j8OP_$u9ZNg;{!xGeC9h##^ZsnGs!aANC_1R*c(ZR~GT*kPh0;!%_^4SN5;6ZeU zG18O(BA!mx9+5R8QTpFPI)_8bkd-NA(h*eu6ytV%TE%GwAKTsxfatSJ|fCccOAD(2&m1VHR z**9??T1w$szMY1+rA?+EKvEVL4qLTdk3tTmPllmF;-*m^MJ(u_kes1>?wlHighg%- zlPwow@(4mLW^NFKY6d}b7ATgGKmddQJak?4og_*UVlJ{I6OQH)N?{dxpi3!FBBZAC zkl?@V)sPKe@y+IK+8(jNX5tB7bXgi;8eTzZBh4rZ;^@+)K#pQ|N+EorQsqXW7zKeE zD3Hp>b56iz!h;_IVrO4MC*j}FKmO^8CZmIAE z&AvPqQaT*|O(aL$)Aj__qWDHhAm&E?X8__9h{nQ?1}UEY#U!l21Vra~MBszUBaN7q zXg(=-UMNiHiJx`aKe8s~)TN02-)+haL&oNM#*E+zUqmXUZi1rv{N_l=s8HpEP`S`y zX4=2Fs9$XaMciqgzN%i3000C4kuKU$nvCj^dQ|=me$AQH}_J^6?0(TAU6^nXAGoxz+_L005u*sb*4$ zl6vMmmJK8fhM@+CAlCouK3WPSGHPy#NJIb_?NRD%)}OPalxrs8JOMB5q8=cMIm zYo;l0s7ne_N^;;)V&35XRhqb#E63J_tgb)+M5mF0g;)lnXAbJ^c+(*I>aTVtTP9aO zZfJOth@b^oYeK5gq35M~skQm!vqoz~UL!T4fqX8kP*|%8r3CoE%L9-B%y#QW@Rh?N z9a3=4xOObovc)8zE1&Y=pPt;E1memC3zP2RlLn&8Vrc7Wf-T7GlIYc=4&;dbR&DZS zrW~w_hNjcPy*OIJ* zx-5jUo9FeaOA7yDlCmW~_G72*>#y z`Ucd-Y5KrmF+pzRV(r$h002w?ksbgoqFdN<=H`xFXwGZsresTeXXw~ucYr8O@s-@3 zsLu*4Pp0V4CSIl<-fmLbqzwZabn1(81V|{KZ;%1bOv;7CM9#Pnz4#}RNZ3+7?(qI^ zS`_c`5-EeK+MT4_$*z}#_Uf6`>-5Tquxdi-7VGK44AWU#zz!@uWolo#E>i_9r_N9) zB9-mBkt#J^8a^x%a(yYyvh`_lY zP}-#nRv5I}pQdK<3<>Rg5^WjQ?s4|Si!@Gg)UPn!ug@r-8iT9)#^BH(!^73^8|Ntw zqbsfA!t%Of3IOr*9!8uAVs?V=9|tiK266RTiYPNGzyS=Qy=D~CrbCM1>vr&_tWWw1 zi5ZqD@TqSXSF7?hrqT+;Ite2gvvB?@?#ocbFchAAZX^w_a@OK-CQxpXnk2iTMlBm+ zy8-`*=YlTzLGU2kLg_MbR4i_Y2JHK-CqTQWBQsSbODhP|(C@J^MhGrSfKN?qvnSi! z)9SO-LZoAXM2@O5Is@q>taA>7Z1S2UwFGJ&-;RIaGJ2^rFZ*)!hO$LZMcsvSBCpZT z#->o_ZQl0f2TS7?Gi)KOFYVUnj=rxgJhVWZ2Kg;@3abXaL@l@)g(Zt~EZ72-adbx) zXe$E%Iv_7BGw8{^^U1mzXc9)}*7G+VF%l;iB*t`itRIN>t0fYoLEa_ZV(PO^u=gT`;qKUtKSNBQYu|`xG!&~^72=wd=7e&5cU0#n8W@eIQ6p9__hf!F z9$>a+(`p@qg$m5FOuBR-+73#abuLplcN2FoV}$wz&IKEaK?>z-x2{e{vR?abG&8Jj zQ!@K1m3ItwVdD&9qlSgpjoqBaaR9SEn=_6Q?Klfb65Il16ZosDvvYTCDa8NsAKq~S zyOaX&vFDZcHVJV>r?!buPkbM3&t+mrSSpz6?F~hjGtX``ukR&O>qK62VbQOBU+9dJ zpHiz(17tXmHAQ4ob0I(?l@WoE4|x*&0%nIa@)mH(+RfM=hIMP-9%DClkM*`*bJUJY zz&)|B4cJgdaZZbG-tw)OS0ksUc#bZ#<>=_6H|8eWFQ3hLo42{>(p84jv^W<%JWlQ-#;>xYyl*EOd$kbz5JPr4T-kB)bLUoj?O+81Chz^K|*zHeV~WkhnKB8{Uea(MBfU zQN#GD-?v;XwfNw;8uQVQ41*@Pz|ge2yThWbA2?<|H<3oS9Y5$;yHtduG!bKW%2sca zIeMH5*_GdvGX^E4^CkJ#wwU8Kl`Va?k1!^O@l`yEeWQA+qxvWFV=zDVzZ8U!==sVU zD7^oIymM`!|EVqdy5}7b3h+CeO*qaI;Wfz=0pQti=DZSC6baZl>l6D!+FV zlMc(y8%Cr1{2OxF2^N{&W6w`ks?kq77T+JXLo+lp{opS&(uIr0r@5MYJma?=zTvkc z@;9CTw^6vjEj*kZSiV;G`OB}fW)pA^lPtcQOlJc7=wpoOr|jpgghlFx`%0Pn=;YAn zeRE8z?9aCOig}q{yESg=nL=ENXdB``3i(<66aoYtI*Uf!i1tl z4`52Fl#W3;O`oDbQ59;|s9d{ReehL)hq1OY$7Rdbt=hQj_1?AX!Tnvif9=Ml3pmzc zjrk`ZcB~jNH2#Y$qm3-HXrqiO>SL1z#Zuriga|@S4%4DL%^-vp`bv|BBs%Ld1Bba~ ziCAp#4aF2yT#>~VcbkN#7=HpFs0na^$Ec$afDZqX44u;My9ct<4lAg-3NkFQG%GK? zwVG59uD;}&5UB7?0hv@{c-fzLzYgdxV5LO|N^`I#0Fp z3M>K0LS~b`ATrNM^kj{4zP_&9E7mFN;*$SXTMhFs%mI0o%)p3!Wiz5-6{7Q?fs)1Z zLg^%2&Ch59jl~58i0Gi(lvQ4t<(L=+cQ^o62+9Inj5-&S4|ZItsZ2SoO2|$@MbZQD z##`^nq>-+#Rb=3UkFQs;T=hP}z;yUw0MS%fzh4cs=+8GjBSy51P2(8Pbs_0fNof(R z$b}^eXqoQ1?N<3)8G%{>Qlid1Dk%)v_4!>+tvkH%uj&;KuYFHV8p>I zEDxU5>Ms{=tg*)uE3;wCBBpF&*dh{300rhWwzLa7p5376BwQ%0KLag9fh7pN8~EUb zSCP?1XOuYvau4{s(xs-$RMQ{}zs~=w>%J59-cpf9)vbR4ZklqZ=Oe&_@$>7eOTn!E zyy2`N?r$=$F9Q3|%{+VkSlT3VVN)53fU@Bo5P=D#$s~fa6TQ*MMnq}H zBAW9Y+hGcNn+g)pqNlh~G43vo;}`c<1sGSwqI^#y7}L7MCHOV0OafBO)^@d~(~;?G zs(Vvs$d<7Q>F-j};hzvQbP(JrsX>8KfIk%2L?=GcBrkj5%qCE?n>FVHDsW!UhV-53 zNpFK-X@CdDcr+=EFfFo*oaN3}KJlf{a`BN>`f3Hb|Aa1UHRKv)LNq_MxJfK=>S4yv zCdB<2GKl_L2y4nBz{@Ow1W^B!20v$fRpl`E9u#6Jb6%pOt;X~pU6oE@rbAs0D*_SCXhM*%17Z-F$v=;+ zO)9MsnMH;XizV!WlG)T|%cMBP0EEDA=UN0(5`ch9U5bl`lU@TzX}zx~PE@RH<>S)h zJ^RR~X;m7Se5R&LfA-QpVrrja?6}7p^3fs{6U+S&Qpjc!@to%r;_VpXkchx$BV#b& zHaXhSMCs&`GU5r1kVBMG=mBRsQ_7|CFt{Hbj-4@mXG}#Ug%6HJOGxV;l&Th`SYhsI zFQBGqIJYIagRe9{5tJZB!LGqiS=lBQyeXL$6YQ=LZ6gaLEoES*-=E&bDT02Qb} zd-*~>cI{VZkt&2l(NNks6QU74ry?05map>hcVrdqXm#_6o%|xLzu?I)G+9MSp_GDI zOaM#eKv(J@E~caei*7|V##iNZJ^rE^tLQS=_h1eUg_W97ceyZt&M-_ew4q~jcu@6> zr8AY45N0*oUGJjvf6l@eL|_vV(w-N+Hu*#(?tlvSqGA&9m9GStaDn<>0KX>C?-zQ& z-yZY;1wAkU3WWdg03kHszzEiBZ*Pj1zjCgGxXjDbidJD2&V`l*OJ9Bn`rO5~FLdw| zW||VJP#$Xcp%Oi30y5iOMLJ7+2s&AMX`;IL*gy(b#`2b>uw^tz;mcn}h7^#y+<7MU!vk$9fShZX z#2zSzKDC9Aw7V`MLNq$Fo$Ytexd3RYl04=ah8=8NXhYu(TfX7(k8%779dAGtk&ZMo z4B?1T++h@>fPkjsP>eXNp%`o610Tu}4?o1i20+Y`MLuZ^!bT6>Y-cB`100C26eeM1YY(6R1Bh=iXaRw4 ze|ysqc)_MQ009m}fCG*!)fXm>k0$MF8Kj&-~u9B<&>9oPU2Ht-2U7y=uHh{Tbx zAq!b>U>6B*0SOpx0une}zY&*s#0A^~AY2^dKoCU_$N=L&&-mFP7x{`l!2v60`Q#_J zgB0w5W)xyBL*G`tM{Vc@TPZ=6OE!B>zK#z9{JeGo||4kpxRch^3Yix^S0Mq<~P6c-02SU zn&1C@?s$j0-fx~|xX=COdZ&BLS6z6+t6JuWx3U3zUH}6OAQ0Jx`~U_pg#kE2+mj%H z<|okt&3m2%3+F`WQPF}E7`zv<=*8+;zxpD-9tQE=df91TdzO3x0x_Qi%cq)zkYlK;{EUsL?F&E|N7(O410L|U&jeXe{K8NSAus)EPzGtx0PunFVvr3dVF%x^**-xQ zevkl%F6|OAkPU874Gq8%;E)t)>=QV_%8-r#fv?K$Q0)xx3Hk5F6*I(=HDYP!ESL9A_~JpYRpeuG*e&?X2(+7jOgJF&KR@7_*ERkI^0_4u(xkklC(LASvnW3cwA#F%^&Q8rok#u^ChHAE6N%eXjoo5+)O<0}4_V39#DqkPcOm4y{cO7cv$P(Dzso z`<{>;2`?m#k_tsqDM!%zO7bL?G4deK`VokxmuI(l$ZR9M$qHGja-rGBd3VBQ-PTF!CrplNg(l zIhT_d_Yyi;5*k&rC127tuk%n~(+%7p=??H9$uc*2QapF^EXNY~icmcD&@$VSA$zkp zk&-wU@I5_~K0z}y@pAvN&F7?%KT(r9A1@%WQ$SgyAh+`e4fH$RKsFIGJ;f6(gK!}U z&pa1UC^6C^B{V*#&)P8ZJ?Aq%jgvk<&_3}JG)HhW9nUmPQyTyO@jq|y42Et%W7OUv zA@}MaL0i!~Ym+;VZbx-fBOeqx2#^aDNA5sfqhku*f>a{-rgH1|(09gp$&5;a|P z8Y4hPvy?a1%MNUmI~BA`?O;1GauO_5Hpg*7eH25@G8csuIlZ$;KhzPEb4i1dE+w(? z^ixkm@I)KW=hm<#VbC8{^FLJ+8?+QrZQ~Oh0WqsgHtV3uER;tl)lnnW=s1)tf0Iqo zvQ9U%Q$Ka_LXb~GHBUvg@tjmoZ;%ZAvPx5v4Gq9L6IE7kF9Hf+2y8Vr7f?2>Y*%?z zDUB3KB^6W&Pf3S$NlR5!L-pEx4%?XZPx(|YeNO+@kX8Su(*OwdAAK%BXO&w|;uBDT zTEle+^iTgBZ(0qYT&EOWrPb$dbq_}MS=&`vk=0o1)m}xiS*?v;n>Amf)fxAbRa?|m z|I-b-)nHA+FztX^qcvK?m0D5MVgEE-SJYuCHexR}Vx^Q%;}u>z)=y0pWc77kJvL}FbhC6F_u-U^;K=QKWlbksTD9^HD_1UVrf=rhgN8%R9z+3 zXo=Qg{Z(BZuMVWO0N(Xo4L~;IHAXh*84qw@ zcMbiqb?H_b)$j~Rmu~U)bZ2&J(-sZuj}vK-A6r#zS+Y=9b^x|DatHJduJsJ+?|JDD zdZm|oqxV|r4|}Iqd$Ct|sWTAl_IBeIQ2DlYZ8j817c1@7000*nbC+6i*LCApaMc%e zDOYg+Hg>Ofec_gF{g!T3^M5Hf6r&ev#b#vH#NtbtH@IPVKc0G}YDVKJSmpU8RfL~RKoA?Gf0fG~?0~{d^xKm7rZaWP! zQVkLqIaXqK_8AX&gD+Tx&v=DFSdG!RgHhOx+cJcng;f}X@$Y$qpo8}pdj0o> z?U!<`^nL?jh6fdHxA%Gxnf~Wsr+JwNdY~h)pj%Fq zo!ObYIp~-Wp(~Q1$&#D7(+{9oOrv>|zZvMj*_*eso3|JQKbG+tc6`rSdo@^v2jL6^ zVWr!65ZK_Q-#MmZdZh*7oo|{Aa2lr#pkVbGQ6pg#q8XconwbH5pcPt~LHUxunW=;B znL+ufn|YyyZlnFssv!`Z4Kkv^*;2V0lr{QG!}_9+y66&6l(o1xcQhA4@K)p1oKG61 zRkHv_(Weo$0}LS!n7OF;nymi`nyCM}ECV{Q8#=1N`k^B_lnGm`ceF?Oz@QmhOdZ;* zk<+n-ubT~;BCiZN6FLHSRHM1rLKRx91$vu{4zd?Jl!uNFAV7KR8au0a4NSYQje53~ z*{FxQwk_J5pZT+!*|2-NslW7_zf_Bx8m*bonYkFW8Tzyvy0{~?M;Usny|{~^+dI2h zxfz?dyV?$7yO>@3m>Yo){F<+88@J7Sqlu2Wd3&O{d6_%gz1thD3p=_G`@Q9RqDT9) z*Bi09TAV+cEED>oQ9Gdp+#to8xx<<};~)pYTT78yOvjtH{h7RRd#Wv*z0q5#Gug16 z*$=onxZOLn$2y_G+718wK(Z}+yGxw9$F#YX+Qn6zup_XuF?*pyd$GA1)V|xnj~NjL zdc1R+tovEWbGyUY`@)Ajy{mb?+Z(APTE<0LvMc(=$NHl)oWIXnx*;3D2b{z&y0b_8 ztP%Q4A%G9Mw#Q}FikZ2h?I6f$+qNzoWwiaxVc%2 zpWDB)`?9~>tP@+x6C1{%S;3!~57wZ;(|nQ};fncy$lYMPHGQu&nW+0Zo6lRxkDQ@- z`^k}dw5=S^qr0Quo6`k+y?a!^ar?>(Jc~DazGEELzdXUev>4ui$1VLjDfta#Th572 z( zzaM(tb^D^dU7^{Xy(gWniG5Z-p%K=AJC}XhksXU$z3AG!nVEf=@m$i88k#*__&i;x zv3S;19q7KC)>}@~cU$5+n!qi(%Oy3}MSD!gy0{e_!9!la8N9XeJw`WR6#kj$pnaKx zyxIR<(ziX?+x(iNo#r!M`0)JVZ9Cdco#N-+%Hw_1gInFlTB?^G*WX>$F-eB)Kuic#Nwf;+Gp5Xf(qdi=<`#r)Z|Jun~;02!B zj~wIw+}Vjf)+u`2%^jLGU(Y!`#4}#B;l98%nh)}t>Ir{9Dfx;q8Q~d!;1S&2b6;iO z|M2nb`eaPDYqD+IHcxg_!kj z{?`h9P1c%faxvR`dDMM@SMaw<_{IGL51IFfR#FE`9dOFws1wCq zl7i~b!LCsz3Rc$ke=*&!793}Pk5j!86Uia$oHuM~*2@P`=L7;Cm~BK1;A{8q=##ru}SZ#0I%-XEF^Ha^Zk$2w2QRXem)p} zsw?Yp<2nAe!Z!fuTWLW!n)+redpLBvW(G3Uj+w`@_}$A>dPy4kcfQ{{58)s4n!<>BIZ2EB4$Um zwJ_&Z)=o169N3bJ#{$a9a`&glsUqCqa5fx@%(O|0@ZG$PeRa!eGfA=M@vKV{gpurI z3Ae-+e63qqIE=jfl>> z@h{tM?YXj|>oChLo=gP9fx&)mF3vI5nCNS6oo@izC0jStVx?v;3e5?n?|rB=AbG2n z;kr<7_*U8p_Y=iqj>6MrH0~xxZZTVsU=pYZG+Jfv<-jX*_9$MEX4Tvi+y0Z%_~HNO z*Je2$cRNy-yc(r=-L%&xn_K>kJNx#F_1CpC2Fqn?pn>!5o%KoMKu{uHMR-(lKF{8N zV$u}TLQ-2^hbcOavh#efwv`RgJ1dpM9O67h1H>BMmOB9#&!$t*p>bc%`&t6L|1Xiw z9jc$3DG%hfuGIrahrOTIVDgeEMZgIPtdFizJr?-JTxAsH!Az5QjjexAe%qpo>pz0^ zbYN!OYqI=`@ikq4VPaqjF=*lXTdPrRY8l}jwrPV1fdHUsuLF^%dD|IPh$8z^ql%Ce zgaDtj!F4UNhGbwwmC=hJuPRdbJ^UE=cWODYl-`p%_Nb&+<(zN51+BtF5IX`@O^7@{ zRkd+zXDY|to|9|jH`11gqb9_27vRGS499nPjHmrs_u)!Sbdy%13e*dycnrOQ_alZ= z429tLl&MtZbY8rTB!8oqm8F&Mq$Dw}aXl|X#J1Q)&ln1RwgCyBZ_f~{?{*3Cpb1k% zk>$o(*CbiuspRGIaN04!WbFh8f>|=z5lIG2)+(|D*T)FXS)*&8r^Ymd+h_b>*#66lu~G*EuMyx-OvcaV$`>4oo`l9 zT=`_I9F>6MQmY=$#p&ZgG zp<18rD?@`9&Ls=}oM=)PPEmLS1*iyM6eaA?l7r(&0HlFk!+i&2C({1w#Xh2+ zT$l4d{;Jo;%In;Jr5Qr%5&}|e$2=MZV%t3%n=J7#zM_osFS40Ds7HiX(mn3-@dfIO zR8$Tz1JRuGpknNl7{;p6W4 z206JJT-Nc~Q3i%;vGk1)FL;Gbd+#{OT*miv`PI*Gd8H`IOT<2wtjbwIOeLZ?G(M@; z4ZnyqpYocGW;lbIg5X=U%_~*{_(h%m15Ee6p34Q4S80rIHgy+@wKNy@MjhNtO(<6r zu01i_DjB#rM&sDDw_2G*uiisgoF#BK490Hq>OXy#nY&{Q2&#J<>NL+7m9#D^!Q+|3 z5g0VVht{b_e|f>bn_Y<-6%MFM{-pLF8&AXKUaCXICF|`JP8`YP7ym%I?rtPcF+8@sR-5UqM0dRoDDoX z4ujOp82C5`(b61JVm?x&`C8i6BX8y(=E9kusSNbg$KJP!R$W|a5p#<5-{@G6^}wInwdhWm$Eubd2d_8n5$@%thBW4$9qlYn#4_d)XJt00SK7_J^7~YdZ3D(h zK3cWM+GGCQMHi9h8IDg&keQzrBhNq7Ptz@knL1-O4!0RyLm)rV)vJXY+?K797mxOA z!a?%|W1D|3qhOGbGK<0U(r+SXqA!T08w`eyDrz<~B6>6eXHg8X>qjI5J4_jflBo&K7E-KcR#lmr_qh+S;>Ls++!G znVIgZ9}#Sc&_t^Sqnt4~NTaZnOT0teF7dw@8yUlhi>Dnd(no8)!1ut{?y9m=2PM1o zDVKU(H8;0O8P6-OS0@@O;Ia#cFZ9Up~;{kAF!x-4{TSh`UZHPX+_4bv!(Q6LAll6(#teoc6(I54^p3+$PT&i}boPhL!+?C`K7^3C z@Gj^Pi3qVtbd=f8{^?_%?h<1`ubE-}5x__puaD#C%2Q8cZ-5q!{{mj@xGgD9du&Bp z2)=IYz_Vx9b2!ei0(quSp0^$HsdqnDF!>Ol3k>{fY1|P4QRJNWrgyYvW>8x)0I(8g z;2mkc8lRmNn3=A=e(Yy}r*pvLrli5rVv_*9PI&Q)!}B=~Av?^zB4O5tumlu&d+M8A z9`x_&$5)E1{LziXCOB=x(_1Eqe4J2mBqkJk4NAT3?uZ@d7HpD}r-MqPI?{PgK8Z1~80X&0wS zX+E)Za4zgEKb%@W)2^PqrJ~YbPWWP=LZzWoG{!Rm=4I2pVhefFy0St#(v!Jd2?G(r zO|rs>viWFvD81-xYVgwmc3E_{h_AS529-%VXA#+JNrutsKc9gQSs{5gZbjS%-R@cW zzHFBgK%wYpZQm4axlAvFG`cfaf^5CNvOXSa*@Yz;-g8j}cDdwiG^sumXzL05x|wfy z@#5>TvRFB9k0B+9nVoIf5x%+8FBr+~xi@QBsq}d{pcLWguM2;>Hh{}oO z%VDHXh6JY5ZsbDPD@`F5Bj)6K@&4?>&uoq=#@a}&cq%xtOEJ#Q?`sjz<|&cs#0bzS zhB)IBJ}dfnR?-(;JUpJ|N>JF>mLXeJh99C%vRZPjTR`wy?5P*cUKuT#osV8sQlpz| zkW++Gm7_UYdK*;`Cs%fson!r4@{KCU`LvwFKIytWY=ORFzOqip zFRA&ZB6WiFn?6ecM>b6k2qHUYz9Zy=&nwQpoE=iSmbbD3DWA5n#Cy09Vk{)a9wfj} zuEFqG=6M!b5d)5wEY9nU4T}LayjFI{%V%%AIDO=G32k$^u0)bpC$x)A&Yhb!j z%9v3ih*z`RSv=rZd?nv-Q-yT)+z@SFa9@@CGyy)JC_L3KCcUVmeyfe^IPGG~=hOsX5twwCJL%6E}lD=Uhwi#ce z>#3?LQ^9lIq0{}M`2e}|)S-!=7Bs_{Q=s4Zy{i-LBH_WV@63R+Q!mqz@v~=UvgJwu zG;dIE<A4qdF5a7Ew^utzgBs&HJoukH#ZAczVimT{JpEUBDSjy5`O({;4Igf z!C_!{qGf=w?P?NSSxC{*_oUiLgP z1WCsXVL9^o5)Ml;{;Jal@fr@N#W!-Um4^N7}%nH{hhp^IC7mw&#l>_v$|8iy=Fvv7foQ6_ZtM4*h!Lm2V6cVZKm^fn%=>s;-Y5aM>C~?)Enp&UOG!a+4g`E3nz4n{L%N(Cd+&6Xn<5BnP-5tqLz&w48=DLm ztic~!Lz%km94ZxPcPSd#i)#hCQ2a6+WbmIp-RhFp|GEoj3t8Fy$FVOJ>X+jM-)!9M zZJzVw|<=-_pO)|{W&<|$%o5X=l_rw%2I3hNH6%cc6a1BPJ;(~gwC+c9o2qsz;bm2`n#8~ai zkOkaa(UKG5HrkfxuDgyFhSL;~M}_jhbu5R`jrimxjKYfMCn=f_=RzXj@>wLyxh))~ zYhXN4r1UDSle>wU(_5<(qu^7gU<6iLKsZkE9OugLfrxX6)T0l9F2{Unj^7vLDssTo zppzn@7M+tq_Kl7Ws&MWYtUwvB%F|MZ(9_d0)*t3T|FpmGwm=4R1_t>r8uqLrT3Ww= ztUvzzTn+>KlZQGp=(?RebiAj^L6&O8wv1v(t(jRLgDd}A=&O*e*IW* zdB?G{eB!y&9O24T$zpJU?^dFgiC^QAq{EftJU-=^G=x*65GXjWeClsE1<#cy;GwhT zWcD!n)Bj*l?KhFFuRZ)k(~gpGd&}0KJ)zHHIK1NiuP6)O#+u3U9N#`VToS&Be_DZM zQ}4LXPQPi*ogC7tNwcWNi{X9$%o{@2zD(HR*1oOQjLcB%66Pr1Ug0lZzn;vvIYiws zCGa>G8+=`cz72zqx!4Oqp9=V)!ot!$$`n*xv)YwP9PGVmg1~d7^d@9?HLGLtVZU8& zvO6%4d)@nNlbSE!mXd0c0#_vThFGDQ>#$ofxJo~Zi0*-oBHE0CPa@+o;SU>XxXxQK z0Pk1t0xT(VLQ#WAQ@b%isU{2}Iu%7gOHfL~`suP4$@OphtGpCuT&jC2HfN_8*$HWU z{`vkjl8WhSek#5?7ZAUB9$~S_!R4)h}t*vG$?AwdGySz_wsBrADVPR+y zNj!4?`EKl`l$5`8qa~J!?E*t#j+x*QTMfjm6S)52XWzG|E=;FJ$y`EE z7WWsKGFlG@Qc|p&Ng|lEriXmgxM0My+4(9vDZkda6o-8(Z-g$l#)|O#siKK7sn2fX z4YjnLfbtC@Yn7pPIzJCe%Hf#uIk69{SVsga$=gUCH(c!R0bNoS|0?teqetA)w-6z;=_UJ1uOlKEYxb`^*2TPA=YD$RRWJ>A2yn~I zfqj!Ta7uWG%0K3-Jz(sqei4wjgrL`YtDR8{=hW{HyL$RDlgdTtFUxmM)wN(qLYO10 zwI|hky!cmYAS(!I3}6-aIXW7c(26?gH8)bqXGjAcr826Lev-x0*v`{Uihb5srlbIv z2$7;TZ~;hR2(Ws8!pqiyP|HC3crq!QbH1@!C3J(!8h!cnmRwXob+9JZ)t;~RuzW(a z^&vR%6i@stL5jP~;FRWJoU5W|DPX*b!HvGEwIzC`*GUM?d3rOQdk4_Y4W@8)26fJV zTkW8rzLG?S-)T{1hv@lzqbvI)wBqz9Il;s3zph+u;LKgC{xEAq4E=sR-CvK(ZWj?1 zd;@hft&|7P%g}Yx&6d#TUdK)6XfS3ik`7+~O2oN;-}*uCu~vuh&^hv`zyacQ7GpA9 z@F5z))A3O`#iZ+^#|Lk3Mgo$f703wN%Fb&kx3E2SX|EWfgLA zpkmYkmwVGRytQLo4_Nz^f71$VW?s39JC82o0hok-)Nt!qmq$kH+EcDJHZfcp8);lA zY;7WNc-Q6LQ`=O8EI{3Vuy~MuD664tPL9s8Y7LCy*YHsUJG7 z-o-Twmwrn`vs<^x=>$IJ_186@18$f$ievq1IwPws?W#Sv8#ZOU`}x%PRRe~ z8RnEetfe@*dfR9WD+ady;;m$F_y`nMl?A3=)~}f8oxGC5t~*G?>VwMQ9()~{9;GZSaV-c%|&2 zfk^$0#7Rqs#dXQ(0e4@=56(8u1pD%~-h%wTaVrcH=i$lM3bqFmWFa28r9QNQdt^Y1 zneuO6?&l+i631(s;>vcbrl)9`)W}(W2b)>llsJ~R&-I5L;%Of4$D=k&fPGM}qe>7B zu_)}|$~v#3b!VJ!4ObKK`vr4BpV3N(ic)^iP?Y zq?AUdmJBQpZ|8{JPa1WFClAzC5A@bxHdih|c)!IkJ4a~;DH#Q#u^?F*^FZ3bm1FkQ zCqrV8&54CjN{bg2FD6u@281@F^pc{awl|t~0FYZ_fkt6=)vt8emb=~C*xL8X+Q5&- z9db@f1cW(l_G9B7aNA@QWo4NB+vs)F%{Id8W!O&NRxTSD=0t5iJFM-z98pRUq;W4a zN+TRrZtL8tyIO9bNvGmZ8)lms=z*`Mg2%V;DQ)j74N#9F@j+lz$JKVxWDL|b%{lf7 zpjN}>QSfLFPZ|orR`;K$0eXUb1)>%bk*%DqE5u@6CNcRpD_Ztb)7Zca@T%*P%3#?M@hA~a?*y$0qqr5!cA#` z&OX9mAODx5uvuOV;_rw(Y|dfS(tkL(n#veP;ECnn)#GsOdCP5x=pvM9tw}87jI{%= zX!I7^67bD@XyB#M;MIfLO@n`f<=VccxOPZ< z7`RJ3e@>IAW!%KtVlm;B=-ON%#vEclxq#o=10{I;6CSx<%DA~&JtPSrkg`&6AfcZv zV_ST5g$94P0prJyf*^I$A>qvpxGau&fxNsf4o&HqwAM@I$xW+n@W3<-jCfp{cxfN! zzR}o1kSWDcxRJI~kPJYV&RxRF;Hz?yf}hkEWn(_Ve6;FnOOJ8uEv6W4u8)^KY!Tnu z>ekF1EDQ9SdbSdJ2|8X&uarrdlp%*fNHNh%vG7d;5)is$YFDkhTX8uZ(D)v+tH(Xt z_Oyqzw>r`~D?cJo>5(fOye$4Niv`nuGi! zM=cNTgJyYBLSKR;gPB2YP^V>#*E29bKscV#K_ZVP6D&^rc~$YY8{ar93QMr!d=?d-~jy1}$4E|JM!y zi;*bes6gs$1Id@nU_J!N2^#*4l)NNTa9Z^0NfFjVLC;!f@p5>ej#lxQ1Ef!WOIdd2 zc-+!scB4+pE@Fm-o-dh~Fw|=dqFvrtw3s$+WWt%UUu79DU$P2<&;FCG4}ZBYzsILt zp{i}n;fr^XwnY!0YTGBg@k~?^AUwJT$JS{*FBDHK(>s-rHUTr+P{7_M6bpKXOxGV6N}y}cd@8o~(F;OuMLMsq200>jq*%=OY>#v*Ljk*msToS#w_xDnv|#WDHIellcd zt(R!?N1;v{u775iRZPT}$|sZ{R+;iuRoNH+qz8IOrJZ%S|5?lVlMMb3-kotX{BFI{ zE~T=WK(DznD$2eAYTT-)vZZdc#e^UWXOj6x2dJB%$dWMyLm}-X+n*UJbz7QH{~L?T(|&#H~&Iqzcdw}Qo2+wpJBvsUu6Yix0x z&RahlIlZXltvPkA+O}xkICo1`2^w!M1Sf9oY96#e#;9(?C^OB zfkJGAt13>XLssqtN)Ab0;7JcD6wm@&&*=+Bf0{A zyUVr3V(+WM?0JmsHU$sKje$hZ^O1Aw#l~|jVlw;3YYC&P-P^UqUptMEN6;OMNc_8I z8ET{v!5b^3Z2dN(j>a-@Piah9Y;41SCw01T36}3x z)<%6A);;O>kTZ0k83rcN^=@}?FK_s|b`oE0_BvhmUTy~5Zz>it)@%3&mNF?|G!BlO zy79(#Ho^37GJ+^TeMWJ`Q#sW^7K*)61XBP;I~fO}p^I_1$z=fB7k zGnYdp-EK5URqk5>oToJ>8_AWYO`_k%1pNVg-D3yUF)?vnw&#-v7h|(AVHW|y6?eT?vuJmljzJ0dtr`LE+Q&h*3EEGMvk zd(5^-zZh*Yz38?6!)LKkU~*8m0hM?j>uRo#X*@-7KJ-tui_wy6{Ji@#4aJ2kl>*1@ zZLfb%hgwgEdsl~+(88=?9KFy4m!l17XLjXtY}{1f8e_*sbdR7>PiVlfpnQ%AjRhi{ z&BbO4$-yrxujcvr4!5{&&HRlqMufty4dIjxEu%g(xX$n~b738_kfLuLKj69mL>)bw zeLvtTF%T-vAcmN?hJI|lrEHD#Y|Tt>OCI!}tD~99Z3vRR4PqE- z%WW~!J*b5L5RA9sS@zIK_F$bLs5$pBg&|;F_VEk$CHA`dSCD7SAfO=*o{YrL2oER% zcj*dx843=VdJkB3w$5S?=JI%a6Qa46XHa^k}Jkn7{)~r1;M1%ZtYfOZZ%s-$?{yWGAB7MMLTBwb5!AU++1{S+k0M_a9mGv zVY`D`e|_FKbKXXBVPAU;a60bVIqsXe=;^%}A~_ieyc~17L^sVMc|!b7hMd=rn1GI$ z@cn8<`D&R2u~GDDBjIW*@M@I>d6DIM;~L?x_o^}J`pcEMEVw2jLni7!zA3n1B}2A$ zy16g7dF{P4iBxzwl7NaHtSPdE+|!S^NrKojca@xU zd%AP=+xU8u}Z#bNfxt;Io(VoQX?mP-_ghcM$gD$*-j{Q`QrJRqw zlm5up-MgS&x?bPAk~|naBNom*5cXXy&OH29zFlUyO1eS7W_`@+d$HSn$?yAX^ZA$Q z^Y2fQSJr;W5{NsP!q)(iCx4Tt#_Mx%;Zv>iu|(oio64~$=|zb1n{DlJ*zU2j@cYQe zeL~T5`ZMAeJ=0~1l>GTHCwygG_>xuklEr$R_TOKs!mlUyJrdRb-6g#MiF^pvz1li` zbltr5njC|j&cPoam1v)TX3y_fKP{au+WS5N5}$bu=fHK&7{ED3?aBRcpDva5R}<>gQTa&xl!(n`i0jHZ-m| zn=j;xcBPkw1uRJ*a@E~PqlXVCDqu-R+J{}j(=pK{hE0basBRua!Zvt}SZ^|0E;nN2 zt}$qG*-Q{uh-F$2fgZqw$!*))t=5Aj37~8EGbG*k?dKrE;;qG4GPO#%;X3;`T94vY zF@fExk_NwB!j7DVty(E4ktUyE`C_?Nug8lyDxK`Jrp~-(;>TvLw_$64$eXf)PK{B! z_v|;FUhkXLI)gIOOFtm}V00Ai#+l3doA;mn;Y8Y5HS5!y5?~GqGd8_a>8;MF_cXb< z)_e0${iAw+9?b?`^n~{IiEl|6(7W>J9c^(Ib7GwohBLJXrHoM`HP!kI3>PH&vXw(L zcGZIaLtZ4YN8e!La_v=br0{ieorPBuI_r8@U&E9{A?pSKgKaP#s_oDioPU^Lk|o*4 zDYHG?#t@TZ>#L71)s^`_U=CP25scesF)q@eFoxth6>b$d7d73LlGrEdrJpU+IFw({ z!yx(u>JE}|Ka<`QRcOg=7sjaLE!E{H@;N^}=EdVnC)Fe>0`AoglO|C`!GFWAl~)H3 z`#ZlkNDM1-{||Z5>`9Hr!ZUG9FUQ?;5M%h3IGC*Q{=DU`0|RTcqzW0tg*`78q@}8B zMrf3_V1<#kq$A4p?_62Atx=`wtv9Ye89*EoyrlUH$J@}2ZLvB6%lwE++jEsTK1}!G z5CTWQ_p***tN4m*H{b^DcR>;?I&^M(PU68lg(wr%5c(zG|gK+zvlxqTko&bu~+J0dW>Z^?y zIbElS@J(KLSXr)hPO6-4#y6Y-is;WF8ky=|Kgr~-$JYyNfv6!V%n9x{M@$;>pVGe0 zKM4B#Z;m{iUXR^j2)pk_q%%|=M+|TsUq8Z~2mJ@i@qYQgz}ybwd|JAW;Q;qj(dgQ` zp{Lm3CETaz;oscnB=G)`PH>C{cr0n?{P0{c@c!qyW|8^BYr~=KpVyZA>JRT7|HSS4 zDV`hA=jnl>0QcQgogINa4w2r!`;5Eqw-cmoAAXmlJd$rJtvpl?Y`^e!f8kl)PP`i# zKCO2qK=TI1Y=cICg<*1ieQnqJa-2Z9jUXvWqyD zt*r!+auPh&P$*`-X#^AR9x@sg1r?DjoSL915)>H}hU2^>#SleI104(wvgSk@7Nk&A&!D6d;}$_K?PmPg{cJ<&uNv zbHRipg(%~E_%ol_`V%{x3H0ARI^yl)DR3T zor@BTBUTAs88q*&>>;-tj$#C6NmAT%Rd4RUMGbUx#J3$I@P9P&435sVp{u093+`31 zOqS%Zb}Nw#3)Np?WkCxwWdnpS+2uQf8ee7Tf8lOvrBu}9((>xGE~sT;Qd+EjN$`Bl z%^BFicC4F!qDD6~KN~rY94y^86zy1`u$EyMXwUkU;>;I7|EY?q0~!#Q_?Ihh0vPZ% z=~coO77KI$7COTn5NdlXtx)+EVz&rmVXdjjVTLFApLDabBc8Rz^&lgj4YkBp@={9X z2rOMW-OJkXdL|`DDBRfSEOFe%)O;rTShS9ZGyCEucMY8zR8Z=tY*6 z{}8PJL5cozYX=Pp_LjdzoO2CeF1)}17_d-~fHp%)%TKI?Ve)u`Ee7f4f>vEhBMx7+ zcsFb;64*+Ue+-Bh);hzEp#xCpxoS5nDLFGtM?T{Yig)rlor$7#Bw6&+)8+>`XnU5@ zU!lbLn5O2VPf0*3azk`E_e14>KbV7WZMCYcms{H-V4QHe_jnf?iZq364c5PzaZ0rO zG}JtynWEQG)4czcdub{2@Lm4wd|+s~=Q`$}VeyrhckV8#v!!#uqPn(Mng|@bP4uPS z%M4H65LpGyR@{azD5FnP8Kl{#JI8M98UJy34%MEw=@OVd0E6S;64E6rHNu}9;sMZ{ zKRa$`2*!8)sHYH)h3G!VDfL@%r&rxN5ur5@47s*eZ8+1I;$N9NtZ^*%zO-<(@oFN2 z5VMJp*DS%LOvveXPSwgiqmxLVD2QZcukRkA^5V)fx@LFBK(Xe^xNC!hb<)FPLtQg;8pF z#0U&$ktBD@bfCaEj$}`J>M~JoO5MKmcnWryT=r!R-nsv9!~6|$E{0Zbmy@y7r>}FW z*x|2*B8yz)s*H*h!8_1?Vl3`y=!Zr`U0TqqyaWkkp zf126#$`JgKzq#4Fu~ptU?_L6FcOR(za~}n+C;V4%t_SP6a3un_wb9ioMA|nJ_ zC>Ts9=J$Y7tXmJV>9gp)R>BuBy`=nL+ng2fPdVuu&>1^3(| zxhCK)(MH={ypP=d>Bm^rSizqHhT5zuun=^q>MyBc<;H9hsOrr@9tc4e(;X^ym#BGr z?d3rcfsutwVCah~VKD@?3!;pqeP_Z0i#dO5*59a>LXd1#5V$*FY~E!2;OGE!l~Wpa zyez=FcEQSVw$Z)|=%o!Zgw^CqL~@>gAF`+&W*k=U7G=#V(MqGekdU}kU_=j~UDlUS zq8o^T>Y1Yyxl830FcdLkl1(BTfejWBNfWW1WXkuG6<6#cRg@%O;zoxM{e;XDP%5s2 zS`v`I3{z^CbV(D3gZW;?AQ%wSKV%`JaoJOX$pcGP;TOZ~yG0@CCY5I>$`s0H&>nHK z7!d*8WB6XGx)6rD6o$eOA;2kHjuLGw8X_1a|GZhQEH54Pt6E%Az_E+ttZHnEKbY*7 zkc{GBXO{p?o+M28pa*of;?Q@M*wVwsihz{1^wNIMOL6Y164Yurrs5Xe=5GJAM%wNc zr9Zv!5EEGUGNzM|=m@f<%@Sz#^5d5X;Y`xb#bIK(ec+`^>j2rN*bx$qp?a7QX-&TP zE!nP;=G{Blq<3l9Dari2s#NUyG!!W{$MKB3woGhLDUw9%>zB0A``L>>YP5HC5 zIn#g%l6vKcQu&vzF|Z}g$J+whbZg>YdEBj5Cxwo5gZ56!$j^n&2sw{IXKcAAMV?S_ zqlX{kI{RqeW($$l=DKiC^=*brf`-F2R83MPRI561!)NHHH3qoF>%_pQkU=XraSY15RnMk!a^nO$g=?%5jpIMCdgZEgXhLuwEDCR{iE6cXF|PcU zSP5cOFU65jh;@=LI9O~(;P9+w27v4g5!8u(u5Prlp3h{m*fng=re2o^lWy;BqwE=5A*{E3(#h?y_n&XOTR$MHClKDY$lD9^$En+$) ztwP{@8E$X=2x*PD#^~QxO9w@T8w!h8v5YRv)@P*E29=U>G;FKGu=Xho^ceG)@mN)Y zlB~)!j$;pboO*Qj;+pbeK{Mfw`{oRqO6uyT9l=!*ZlPYD=SCjvzagHh+=L0>Dqyg^8V zGlCzPrXN0Oo#!g-mfFN{c@@;T$QnZxw7m{>r?;tOb{w-i+C__{zkmzZ#ju) zB+=ogKesp>6S07D013si7wcdQQ@aI=tAl~QP7X8cNv*d@X+X(opj$%+(1h^YHvO+$ z!!>*s!%K8ciE=ZoAG_8Fcg9p4R-FaP__H5dxeQ0xKxoT=%ot>3c<5BT2>0%V9ryAQ%DKQaFEeyUSG+GZ+exVSkSmkWnIdQjl_aQ(qKDZZpWxX zCtx^&8sZy`Fde6%L6U_O9prD+GRFuYjp~lT^$IV8Ia9tooRcYTfT`GrJO$OJQ`l-| z*}+Vz-Yvj#nR$1uv{>NZJnM%R_KX3J^7KsXI7h}P+xxZz*8&udBGI+r=NG5M0&9qH zp!?ATO~R#qx0aZ1>;&Es4YcV|U&l-r(2dv1u8C;5+G8qT+_w;I(?8Blon$I83K>59 z3E20m>g~sw`8}5{3Qh$H~|Cxfinm zRkNv?@}{5X;qtUr-nN$PUmcV9?HQ~JqeZ1KWu*_vlF#Pj5-kgB=5RH%9mU@!nk4ck z)t#g}opH+Cj#-A)@+bO_G;mHfR!fXN##(d4D)UEFx?E!1MwWu#k9nnzEv0Kyn=66< zlnNu3p;v;edA%JqyDftzKqm_uKow5{Smxg`NiDxlejER3bHj);ZK8dZTordk;liFn+g<@NqsB3?2DkO;CDsx5 zj)`sjZyBYd=$bVtTVO1UOAYI43r>=(6UfB%Omy z#-a-ct{pC2Cz`qnjjF14+Z~NzdAv3s3#1%C`2^c$@bQX#hn8=n z;)H8t62>lJVJmsX`0C2u$-=3Lx+(!}CBp=4;N>`_+Y7C88q@mMt~oCYKKFlI@yZC55$a+^u)d*@qn&SuHCmGLe#I zTf;189F$MV(2oI!EkoA>i%y&r z-(BzYx+ryNPV5#KYI<=bO10J;Yu(h39g+kMH52s9m2cVF+6lkk4JA+x2O8tI*;`&Z zPvh8W%-$Za$eJ)t-dF1gd7r^%s!@o54vXyqsx0$9^g^s^#Ys0h68?&G?oKK=hX_zf zMVu<_2@(6}pY@2{lz5YNWWGDKFzmU^yZiQ^f{8R=ygY;>wsp4Frp}Y8EQuR4 z#m#*>Ge7@mLB0`7HJyK|cR{4w_5(!t)gP+}z)u!cDkYdrZPh1|KCD$}Mc|`I>Z6^E z4P_wP)V+j$vFm3tjtUX*fP7Lml9AynF*ohysVn1fr2)DW?)8_aG}Hme7BPC3KH)ri zavWRw4mm_9IRj|62)&x*;m7{^dxfj`X!w@|oZFsKJAL4?sbcDtlDbH+sA#P|r_o0G z7YwX-EiIo)_U+UwmdJ>TEU3VsCw3p7?*xEL4x_$g{S7Wm9t{!mvi zcF=5$U zMu0^kL8p>dTp9@Llw>xv{j(1ZiwfgYAHjqx9T#DaL3em-F=|FEfcs5vp=3Oj4p{kq z+NfG6oQny-6jjVD&O^`)=G|+;&I%F-Vlvy`(=C+BXR-s%@9CF7>J{oW_74mT#{Y9$ zLJq{j>S5GejFM!~Hk#cqsYJhk+O7XcMdxY^bgtpsoiM11em~W*$c9AIqbHqyClO@B z`(%wgYnYu(Y~WU3$-}-b(<7NU(iH+3tqp($os52-K;^ zGg#eayb$@0%d>N^x2Cc~D^!F8h0Orh?|k>C3l$m_B+-yMYQ|!*4-8e+c};d_^;XEM zkj7nP#}msJrmVy;LI04X>GoD?esSXPd|W+?SSBlR?^$IIv}VJTgma;b6;p@nOCShI zWeB zQ=^K|9jb}^CSE0HORZaHMPneB8X~zFMSrAykZ;m^pR35RUW%+7Lv*qTDR>`BSrX6x zN>@7n&x{+;vHE^Tfm@%TMVQ;*JgByMv(z2j}Zq;#U=Z_F}Lq? zf0KjqbzG+Ow)j~@Uy+|;Ljom3MPLtm(sL4AaVsZBZB|Qyixt%5cUGq0rQNDlYeBN6 z7l9n}_$Leli%`uh--?&4Y4TvjM!x5EeKVR4QwKz`@fRYjogUoHKB;kL`^lnX{E}s- zha6t9Qdv0S;N0_g(3NSRUaNlu{Xr8tO4Im?XIca6Z<(Ey1&BnkLDa_A7b}s9OR|Ml zI)rr0^t3zy_<6On$q_9-l1I}7dK?r*Tpv>4#}6sRXLt_%P@gj3#kNShqQNc-iDU>IG|8=B&f?AA#BfM+FPo+_Jh+>i z%C1hDd-H9XUHRzQy^Fmr{t5gUShPh&KQ8#%I-~lGrW09jZ`sWhekGR=WI%H($rbVh zSu7YY$lwJdcBQvtwTlS?cEm@1^mA|rYfP9?*wK1OV3Wj$lpCq{Dv-oj%hlvQl< z85*CiX!ajWP(Q3TH6|MGy}tAH^YssPxuM_2jY2?REwQD_)o_7_QvOFIiVrI6V2yr@<%z z6xb!UX|f=QP=omy9ozQW0WtJ1A1lpQP?tf4d{1*@6Ax^dTBuXzVwc#kyoiq5!sh8@ zcAhJ1i@($hj2O{{LdadaUhP{2TzX11$8Yejuq91f2Cr=ptDMse%c--6ls}6m&m8d} z!qtZ64rcFj(@B3PLG=GY|ND_ljI$(S*6lEsa%oCOCh}q8)9lj1L`?dr1qM=`l1M-f z2)EuTu`zDiUrOv^SsZQfoyvgB#hki?UMYhQ3PuWP7N?J$gDg4HcZP6*OW|w)#_+}_ z?)N0Zi&iri39~jJ;P-PJsDsbGJfTb73vh=F)4H36#lw z{^8p4FK@SX3IRP*P!3;e0}%8)t=wGp3FOq zgmAA=>M2(BtR8IVCYrwUujT1=hHm>zh%}>6!$)GCKi5d@V;Lat+^GaLi%if3NWesugqIHfC20tmP;c+jj2WU5Gu3J_<&HaD+oMBX1~jCq`Bz9&OAz%< z|8PWf&q_mKwnknc2(A0PA<@+(8mSRox~dv#2#`Z8LqDJl`!K4un zK`8}W4b4Qze2q#z%iGzIfQ%>|469^5MKpPUpzuk`Y|j^RvODuFF+z@c{Vt;>sM7kb zZ=Uzc$;LM@AJmk8K44>L60nzD(X+RkkAOi;{m42SA|s!T@_sD2eI+^SVCw?sgMA|5 zJ3kF{%0T}HVm9ZhF@md~`gJ?M`D|Cj#3=@GTV?uPV#9LE~|>6*1>kf%p=VQRykRq%aJOj(zRTq z*-o{3YpG&w3Nq9^U{cmVU~;{!8QA#p;zwZwULAWtyO|W1x(Zy_=oonzW1H5lu@DrX zOA+ClrR|FQTuH1k(o@qMKp-kto}iXB?1O3%>ne%dnFGg#j`K^V zn*&Cc@OyiPWi;E`g{7il8j2u$d^_x6-Y8CI*&x2MY!7`_)_x1W;SwMk()U!C0^7WK zyMU~8TSmoBJs?Yxmy|v@0{lPu<5jcwSP=ueOwJ(%tM;VSr775w4>fecTK8Ky-GIY;hOu@K& z7g99kY4UP7UY{WK%vZcJwZ3pMzItGoI!?xc0Z)jNPvBJAk!;35zmaioj69&)*hjI) zk4~~y49dv>NQXnjlg=On?2P*Do(V2(hcpX%Q~f2Tmrl0#TqBglNR-6B^n zhX2S89twpJ68qv-%2ka*r_@JRZ92+_r z`GYLWRt-hMh%pF+nu@X9Q~KqP)I3cBQZJ#vNGgj;2{3y5DZyBz^x)(=ujD>gv0}R( zl9LC9G5dp*%{DrDqbuF4&3F7M;X{o86-E)GM2cEb`8nK_Qbm?kLKRTqs z7JsN=SA@|~qq)pMDFxJbg%8jZF5wzXjwx-a+>Sv3^DeYi(L2qGYD)C9Svb6$xavo_ zk#-aVO^DDAln@)u)v77-Q4vE>j>ZTj-*gEhW}J+=<*nY&<(Tpi0)0nBO3S6CyK#ai z%joAhgGW$gammk>WH2HSG&B4yGP+huML^MN@zAL4iwEBTQh47ss7P`iUfqq*S)9a& z*2oNRn}o3dLVfIpJFBymAONx?Ta%pB_LJ0I&MH7B`jxVN*bwh1#`6rlUS7F2Vr#g= zc+-fI5+u)D3~Aq0;cFbh01^Bx6H3UG8hHZJwtTt*v4~fjhDn6%?Sw-1hQgs2lSKRo z2QSx(#N6^`-{PyaZnY5=_pT|dwn|0#FGpG!x8okdg>xZF3|xGU^kZMIDovMAKmA}K z3I$1-n0a<1I#(i{e^y|~FNlzI%Q%rN4i;nrdp{*h z6fSMwp_z*gJS~1mm>k8^SUs&OV4cXrooJ_$W9pgxp*&@y0$?xzyp{;0H;C4rv)M~b zJiE|*jR9rau+hLi7~Q_@)-croF(fH@Qa}7`zo?3IhG`m7eHu~#T%|oqC8S@u`Ax~4 z?T!MF<``n%o#^{hZvk5(3=WZP`oKK<{0fR0QvF@FGMfH0DFc=CYT1_>4JkW_Z;bRG zhqkSzVM-XVzEM}=1yM0)RTZ`p`PD2fr?S6J%_p)fQfcHT&hAo7>i(YoST*oO%1nW( z{v&T=!~l*yp_viQsOYyS364OJb*XBCyAYMC_Pe2tSvpE*?z4SD2x2+(4uE&Iv)50y z%dJ)qI4fqssH~n>5lGArR-h0>tI~n`zL9ZJ2S<1oBh`acPI9Rb@lTsf9_Hi;gt<$c zTmspIR6C6a8x0j)j%Mlq*SMmo7};%=`#EXAjVK2#B1Hz@T%#+%?af!MdRy-=aED*zH=f`;&55barM6sRi;<5fLx5 zNd}ACXpV_K6Qm;Mrj&})^wpiANtc&~WfD24Q3Y4`(KAdi&m(RBSE*#&jM+Q3(~bUO z!R+c)U~Ww2xLNuYNPSvjLE*_#*H)uwd`#i^C)E$mIRuD`34JnAE3G>evTGn+IC4egA61Z1l^!N1fDx@% zLSa;+PaRlI)TSPP9b!+HnP#vebbq1SfrNOf&76>&eHoeqOr-bGF}!G3K3rC={h4oV zM8plv*Z66yU}{(L^OyA{hLz%%larHt9xFp_n9RvAMwka zsAq+Og)R5U()(M8V0GysCj!KhZcL&8O^O71f; zT8I+K;<|XRrUG#L7daQ@mn)*%=fbZ2RwEEXC%dzIMF}L zLL4gY%n393=8DDeD14z*Y=U&DkDG2Qb`NY=9AbF!s3r(DG(-E>owYTQ_87OKSCLI} zoh9v78StL?U}k>>&OjIb!Flh%`X@ZcxfVZn_U$e{axL;Ki?1Sdw<>KRbUyh^eANb( zVPG7^<}T^J3q86{M&+1J>kU&28ZeRC3#?tqRhNA!c;Ji2wF7T+xjuCarw1W^9g@GV zH$=<=gMV1Zhzj>>vw!qa)lU&d6v%k10+r&rFMNRI{X?g=;iN-00wu5ZA{NatNliY) z7;{p_FYJ?BiViNxAhI4-P6+y!3_1^n4sUv=&jODB$;x7u;HJ7t4fXP^=#Q&@Y_*LP z#8!5M@anT?ir|H zhsf&;Lhi;#|9T~XK6?!*ydIW@>G;WVAFH3oD0{5coPymo))gL49~~>k-bZW%*i6B; z78{@i$|brlZ?g@>bb2X4!Yi)_*zvuSl~=|hVEZgT+bm*Wqr+MsdJp+~%G$?Uzg!Tz z^cVDV>J<`740r&uIZwfPQ$D(_H4Di0|U_)j@Yqt%I|^=0|n!8G8O_OpH7d1N`%11*axj%sz@wk zGrI*eOF zr7#RA9Ap$Y#}i8ltvC|MFl~xwQwTLfIY=*NI!imd56aMO;S##QCv>Q? z_#YEvbx5pz%CJ-xwpd+taa`iW>2x!2jBHt9vhyl`KT)>+NB~Qi7S;U*_&ZX(O!(=j z>|FR1i6M;wk_20tlNJ1`iUtV@LZOF-XFT~M@eP+}iZ?+RZ`A@6fGU|~x`&aaeh0x` ziK)oN&R2?}r3S%(@wxpr;HaBW3;#2v)>5|?qy0eX*RqjY%{BYsz;n7^C==_T#5`sK<%x(1bS2GjVDOGeQ6!&~5* zNpN#0C=-rsUzG#0b>x0&65$TiY)Tp%z27t?B4}=Povb{Vt&*wDtE5TLSP83yV+U}A zkL{GUm?gruc5mI||J6Z8dZn%$NHTAH^LfrDfsoj(CR&w3wG#k>JZ_Hg?h&nXBWflW zz8K10SFRQUpJsIyL# zc0qrQs7TwHz>AMJFN&-eAmsbc%-H%F#a``Js$$&~-Q3$I>EBjP*-nL|{-wjBqM$V9 zp)z!Vg3VdUjj93zGq(nVNdzqt*GotKsea8eD=BJER5ag*ShBq_sCpSnv@o|${DUV@ z%e`2Pf2O2*d2KifGj5gp$LiX%8>|3SN+JcezscE|jwJC`1C{HGG*%F1cXl|1zRP+7 z5>^8TB-E%k)K1j45C!lH)v)v4chl>o)(iyoSfibOP3FB}Jc>a0c%rxT>0*oQu7**~ zw6a2k!&~8oa8+&Cg?OMgg1{ZOk_RmIn5N2c^3yIxa)?90=uOt|74dVP1$`I0deB`XwBsw8sGiB_TC#%w%d1 zwQ=V~D=rD9O4u&q3_boz0lC?1x*QYrK`s~nc}N4>v06qtnt6t@(ocqibr6f|soalh zXOE$85aQKTM86T5vk|pUa#2D=A?`l8OC7WMJmHm6Uqe*|Txn=7B10YCr=g{)%6V8< z%ao`b)f3|s_d0H+xrz^cO_k_;zpYLOcw%JST#yON6EIC%CUA5}ZHq>A2^L2WF#H-q z0<+n6e5(}El1O9|!}!-9>EBR74mn$`T|WzB_;061w=WzzI2l5Y#uU;GL;A`zeCi9- zRcc5c8R2_`w5$FsG^^3{_G~DeyH#>Up~O!!ZQGH7oj717bez_wxMB>Zs;D#lLI%1e zxTtS7F#MTXlYdrK~pt61*21_)z=k# zxb?;!M6@as94t*p6C?|ds*f+6=skjV>XR8{!~p}%&!DRyX(;{04{zwAm0(77@GGJg z2?22=8w@AOf2I^jDAwRUdI}79WCI^m!lOZ=x4tN}*N{%0Y&!@XneEChPs-`F_} zWG;&cga=B3ItXd_Z*Nh!#mR%rZo{!;zj<}8g{jo%ut+0|&7j}3Zc?Wn5D}E1pjx7D z(tk2rB5CLjU`Im0Q|urhxRhc>%Kf7oVct>AC!8vkcDGwa(U13pfFnh4v4IXaLT$jC zX=;sR_Hqp~dh^9+LGVCEP==BuUW1{LyDP;Oj*yq5?3`$YT+KGLRs20ZJ_KrU8cgb78l}~q3-U_7ueBA9kzeUw!X_IAUj5qv<8PE;_Tza` zlZZP=@=;+$MoZEB39yWZayvfLmYu^acKdL90a{_cfCL)gUXmRE8>DD)ui-#-S%-Z}2z+#~7w?nyo2vz~VS zQ$PH!t&p!igYd?n4VBj3qQ6f2jD-v8MO`>ZLH9K}1!sslPyN`_&kbRl5KnAk6f)$| zY2BpvfGmWKL!hIMz5g{&mc+KB@#}%z`c_B1@I3Oi|HyK{zi|AZ`LwOOotl@$+{~WE zob9(s>tE-_;D8lLRlm8oEr?2;_Xo8PMA?qQzr5a_?D`)so7<#YUCy0Vwp+IwoMcJ2*}^xz1+-=(`H&kTbz|c>hpZl3vM@$9q)Qo$4Nj zoUb$!-kyL^?_>=+~O4A9t)^8s{7E$IRK6kY~f$9TeaWp39xn zzjKKzIO(K25)7yxv&{lxc!sJSE_H8-vu|Unk9|qkhK>(QSD-tU_rHk`Hua}I^+!r< z;0smQ?r$JnHn_oWaOh5OjRmf|hLf zXY&;u@#<(}=iguS52QwD#A}RRmyV~;$D6?%Zh*6GKygjRnxS}I!NA6yKxLQ(oy@+8 zT%$>1BDt!*e``SVPFh$0hxCf}^lt{Y^Bbl)`%PpGCL{&~d?MD=H+XqfRL(hkNLy@J zOdRB3G;ef7-fuXMDvL*7AJ3*g9K44Sa2xSnlkhrS?`#@&+|)>v zuka@ug9M84FT^ky8VE$y&>pAJ5-^EnF_BJHaLul8PX8iZsbaJ@5H+je=_T)U%|Xy4 z-8nU2EzClY^pg;$dU8ym(z8(|vA^A1;~1$DiC?1^sF7dKJt@p?ZHO&Oxpl~;(jZe1 zDY}uT)RRNre1t1fm?u+2Deerok}#xDlB(13SKw1X(8jouMqCr@r%>&>LJM<%{<%`W z|9#hQA~#5-HEQ}-tj_p*7MZr50u@MM&q3*X4M%NCH>j>h(S&wU%&enKzi@-F%z@sY zMDOT?{zIK?TNPGA{i)E6Otp!IP!$8iUQqVK zq6N)?U>ecF)mZ4#SXf=CH|MD?*$HpwShdu-c2OBi*g+E5Z1wYu{Ej>EiaT%+l;|4l zsC`&0DR+JI?Cu&8`F~J1ikZ(TI5v0g!!h|l*9Z~n>&e(xIIbMe9E=GyT#q+gC7j$f z&Bz96U-T9*+i$=w*A(4NSSDh;qs`nRlu+NAnEf^Q7TmDHIXSi$g!gaxQm(OC+*!0z z5ntW79v5)1=L8@Z*w8sa`tCcr4PvmGJ6K%ej^8Nl(|AxJc*iv)6bFTVVDV|8^09h! ze7%zZV6g%;zN%?}q;METJ)|mcMSrG>ftxiz4Yy)O*y7D;f|&m(9A|lkF`>R_$|{yh zV0$3IIiaJuqoeG|VtOEaUt~+t6idO8(O8sMR+B2ip~&C@1uw9fVT3POE%E8ME$GvhF^rTDUW~ zzFl2OG-At}-3p@L$T)i73@oZ~eplMmRA1&&#%)nwy;H~3P-f*u_yW=p#nlwWRk`L8 zm%Zo4yGb`{6G)%J8%w7wN=WL0id)y3Al3+;nj zHLdo*&=b_UV{X)tN7qZsxXb3&1J|@_)Pc177j#D1HQYf4yxbUFcjCPq+Sc4kf)rSh zi%QO|TD)31nDa(-xUU$g`nVp(f*`D#djr_7CiNga>^qZPka)_y4Ez#AGOn2{D*{xe z8SGbm6D>+y&lfRONJozsGOq8V89b99LvJpuX)#D99z*roO9}{<9W5IhTGJu65eIiT#pUQX5Z622Vz&>9v*~cP45N z)_2@wMafLXEIj+l2XX#3bGjDHi=7KGZHG}Whe14x!6k<|yvrq?%M~xj;fD*f2M2K; zLr|O3Hs0k5h26}9>8qC+*w)=_(DM%GpK}qnX;y~GJII-Q(Ke>dncUkd@IjxQ$0QHe zu71hQk<+%>%Y}IHGiGSl*=9f94E+~^;nIU?^An2UZ6V2Hi2Lv2->&02&*j~cqhq_5 zbGw%-uk&iAw=KTU44${6x7Ti)56krh9*?8#twRZ}ukV~K;)AU?&t27$pD(6AKd;%( z2Rmd_kN!JsB^^FX#{k=efGM4&SvTQ*_rOCAyw^o_e=Tz>+PYKJOSh(y{=uCTu1(F)v6>c)KHD3ZF>lDdC)e_Iia2H$}zV$B3yhGQrzvxh)ELH5%3o z149o3FDC_`P_IlkmM%SZzb~9~B~_X)o>Mo1SC5px^KD~+kGA>nfFPZPfTb)MB-eDM z-3ij?Pf|{OS8BTYtDC;-6SmBo=+DX5z7n3KA-b+Z|M*p*wOI~VlTVsA)$)Jl2Y2(6%Wo0U+2qw^s9B|PkYSGm*t2T)fd+CDWY2tc}*=E?TjEdsGrhX zdZH*^&aKPwja&6;iC9P|@~!k=1CHY7=@6F>c81M7we}J;Hu3`|`2Yrd83s9k-JCXt zyr!RP0AGXnUZSe~+p68>yi1?JRUeio>NvnTG?@F8GbE45o)uB(m9s%d?uJm3a5#E&!O#h0RJoLR{wK74a ztkncbKHxP`D|&9O>N;G*YwfZRpgE`N5~568;1_5mHH0WJN#NJi^Pp`vEBi(fzhD-) zj=xBrAc=A{yS!bN! zYFU&})AMUSD65CupoTX8SJ}Toe!cQJ|M5JM{H(lm*SAjdH#K5NOeOyS`<`xJp|E|T zDciT$63hX`Pp8sLXhd#Rh~e1px86CztV{kP`_;DRo&jZkkxso@`1kf#|AcL^y5S8q zy3PQ5q0f)2Z!^D__HBfHb7V6>xW1dW@wM-ou=~erLe$%sAW7TgdiVJHuj|zs*8F_1 zA!tT#C?|jTw;^cMcQ6)mg!J7oC#M@bf6BEdU@CuUM}KK0ua}Z!V6_`UF0U8N?HfT# zve-+o)W6cN@ifrb2>}$Y=oOe<=NlX>SYp}u?W)&3`M%J)HmU57NCLExoe!`*r*Nd2u(l=RIJMe-l+qiF6?_{7R@no^*Nnu}V0<^EUwy zx@T_xT}@QHl9qJzaBW4NcwjR>prm&+VKX#Jc+EO*p-gyG)i@1c7|*^|o|4-O{k}xp zmG>&R!P`AE`C9F4#0N>##UCWGsSorwJea{>JbY;pE?9XNK8gxFf(;tgd5`lnN?Z*% zgwER~7fCY++I-KMZW}9vM0f)Oji@QW&s~_EAew(CQErbPsr*P-# zNEdub7C7I#oDEkrjPGv?OZ2w3^@27NdKUPN7N(2`sL6Jw0(YGG&+L0I@V62Neb(7m zMs119crThIe`sgi$G&!3yvR^ z+bc)E^DZ4JfF$Bi{s}7#ak2pkG{ZD@n*_6@TFe z%qM({AdEn|d~&CjO$=Dtc!uY$UIb{?==a8Q*DTc;cKf{}@zky~T1@7m+MlS%C&921 zdDJx4NynqDSCrSx(Hf>v20j=8n*Pd{2l{{Q9p^Qd&y)0I>_x=1l#LF*BJw08JRm|S zn)drZ5okG?D_6|pSuar|358SSX<3;y-$;$6t{~y_rXCycfK)wro!^<*kXDY}kn8Yr z9cRcnHzxCKm@EDDL*-7xLHT%LquU>hCeq_mN19#dy3)WsoB?D|SiIydd2MarFHMqr z-TybxY4i|>E2|jWQ&Wa+A)#KlD#_g9A|RC_{e)#cj8fJ+BrP-PZB`%)J2V19GQJYAlCu z$;NiNGEohv$xA*I-NwH}Js?s!+vIKc!L!%y4eTV|8HD9VBAk}8a3he11aHb!bP_h> zT$wrPqmU}N*6v=6tB9iBYp+x>&l4lETX=S@-vItb)4QQQ7~Gr5H#+Ni>G1$xA)ij- z`{tvm%Wrvb;S1EZ6L_~s2{4eFJKLb&1tXjCQp(_X-gMBfrlu#Xg19-e2URk+XKY@;>t9 z)7CYP{F?ZU{=14eJF05CK7%Q6HmEGIYA7MCg&4cwQkHK%|B=K>1iV|N`v4%#zsRVc z9(E4JF`TDc{0@Iy_XqX(dhpJrSzOYS%`+iP(Y`OUCNkwj)_Q-{pr;+bz!vCfYmU)v z+T60Q-f>EtWLmzsN=n_at@c5xKFz7n|4fsMf)YZZhr>A6X$4LH<@u+RbrNK$~ zq7=Vhk_DaU+7}~-?BFJgK7#Mcpn;zReD>z@TRx@60KT?pr6Rlt60gzCnMwaesA|4AnmI zT#1%3<|5hh{s@@deT8x1$0q^a3U;@>7d>giEc|s64Bgi`%N4IoNgoA|(r=igrz6?@ zVe!dk!Oh1z6*`#5_c27|IfuI~V4g;X_xTh^L)$}=YWjhbx%_8^FVfBvN_MNMg|imr zVoHy^qMi+9G%e&0PvgG_df8QK-AkeI_2os!G1Y<%HB4@}k@D?81&4ZJ1aloD2^=X! zK&Z33r7`%_LKlFt)M>{UK%Pg0tGJzbo#ve{i@VQE(BSf%fj79nMc+P*O1hjyIJ!&f zrKK*gdhJwTO~VjLAu%t#8gYMqHfx08r|M>@@;lO+c=aAyg!DeO#t?_SLTe=kVRbu9 zoQm84M|AfP8RDwOa##tQ#qphqpd|7JYh+3*A$O^nD3`?YUrj%U)@=j8L@PRQI+0O{ zKoM475waRx4HFgU-Mtb5mNdMpCF(s==Ur3q|BhZ4{+{Pore`SGIATB!Q!SRoC_gze zSqICp&whWu3GvtfU9KDrCoVUV!NQX%&dpXjG@)Gq*P7p!U)QdyVRE**j8+l$Q--$* zPSmlZHNR!B`oEF@g}A5U}y5_bWOWZJ4`f?MeTiAFB0(~2p)Fb zkOWcjqoj3Aai1x!=!C0qvo3V^;b`F6HqUQ`S-mgwsp`X3MsdC~EhSZ^ zgfMLB+qFV-oBbn*iB`AtBdojUuAW_jf~hq*!Y4vS!Nu|9Eg>yq`jt7FSx+y(Hb zb3r>Wv1^iY`otAo_yjR6dnA0?gefCWuK2;5R!q1d@ma~v5*njX>m$apmq`8Vp5MCP zpecL}%D#@|>uiZtgS@h%gK~wHTkWIrZS8i58+}D0HJOU* zHmRz&BMds;L(3@NqDNzTy~udv#}wIke*_#;kdwkkoCq!OuQxPYx3>=@Schg9E`CR` z@9K{|fh*(91Fv5=8&YRG7us)X!T>YtQJpM*lILweiPI2T8y+lJ@elaQxcH?o+6+wN zt*MW8$m-?Pt2+f=z4@tE*7a-{3p$Td(vF2d*8j7K?V4uN;K}qCa5lSLo4Fr%ZGG0% z_+@XbUll4aKpb=&!en$Ny=>EHq(cSWZuF-qsBK`<@gDP>uPQzs`WJ7KKd@#G%W{Td zHEz>3ADhJF&s32||GRrgGuhG3*SVx5WnYvZxSi)q_M`4e?}9(!&_o}5O$+e9hc5Ha za?d=)DJ#yf2zpsQ7+#j-selgj38lzkIxdM*-rwSo7EE=5K7tEH>#ZF^kNs~lePCn* z`yPyE>A;%Gi!Q^`Sp9HTgfQ?J$(}D!AtVx}zr9S+mvN-Nvs6g3U4Ei*==^4vgDhof zP&znZsdO(by`&=@bH4<~c{?a)hVbjsz2hnG^0JAngw{~Gc*=N4N`+N`{I7=PoV*R8 z`Zdm%y=rchFs)SuD#LW5X-Fwll^cCX5VXaP)wX3FW)~fXB7GG2*a$0itIa*bkLjQu zT|&K`@uMR=3CK#J;Sn&uvlDo5Re8XBg`2hOj>87KNCk~XMxyb$xOfDN^Rj)naFLe@ zS+8^;zW?sM93w)Y{;y4AN7g@1*RYs36t>DZ?x(e=O++SrT$T-) znKjspvceW#)&rg=kj#>MXc=dQI@+7g2Fu%9xXne6$KqF1D2`1?GeQC$lx{!03zC)P zkhRx`w`o9??aE1bg^y2-MXUv#PnN9D{YWGq!RKU8Rwf-9^c0)_@V)aS4F1tsjMqT@ zDUN(4L0m3ADc#W7I_XU=NCH3ZB09MO)2&@MxO6!@fFP}MDG`Lq(4n9 zLyY&`eA&uHEDBLR)jGtM%rZs9CPkt>#@{FCj$UTLI^b<3H2zCc#Ik)Hez16k;j=^x zEn<4n9AtC@+)Z@Kpm*Fc{&&9-Ls@_a%ZdY}j%q@st>(B*a8!c8xJTQgp7?1-Q9n5B zh9Fid+UKXPSJ|=Fcm6cv!>}i;c&o}d*yk{;(KI4lc&g_NUqYg?VIL{E%&*V(GV)1w z2mV_t;Q~uhNkb8bavAWWsa)Bt)PStCaokdO#Ke=-iOO`7<8*5HY_qJ`US5lWm^2lF za5{t_m*5}i@2y2q2LPPE%@BS3 z?5zA`-vzLp^Nn-z^}=@ZhpjF-U>8tsFJ2ofDjAD?Wk`}(&dNQ_F`*5&z=8kKkV}kI zro*1Dc$+oOU--0|MdKGfl9RL8Q5Ljf^?6p33b>Mb>CU!AQw*iTFFA^5#V_M#K@1)% zPv4hh%XJiR8PdclCd%8MvQPywN#w%J@e2iWW2<9++7jWGrZJWvlyng0jprofM$0+H zSli{KUn3+dhj`kZRZ>0*nN3t;t(EiZr}#5g@a0x55|k6~R3_=?L*oa9bVfPH=6Bkr zOzIVe41Q);wRs#$>&T|+tO@>@HW}vVxpqk7_eNLU%v2!t&DGx z!dY3CUuopCkoR+1lR&wD8Qus>MM0NG|+~VMvJQ5gqRq@(lJ2n4~TGk5F6}#%6 zNQE_LMM2;2^NtXH2ENBqn+2Y3AQKJ=pYJq3)v&w(llN`x1bWYw;9xk7}O9F_Yh6~ zfJJT`6Resf?ie=s8S~mRJ6WG`-eBC_voKlyx2x8*uWcQo`$&F zC+3&nYa0hsrWtZ~fI{zIqQ*6Y-?KGHLk8&?)xYc4!HucwzwC+o4B~8`Co5qMd*>%b zkV&eZC4Qs!G!M&Hj}SM)3AI(O10ibrnO+eKA+pJOYLh2_V>11&_wS_bX>HMOBYkVh z@avyM?)KyE;y~%O#q6&_ZpW=n-Su}iIvw1|i~42IGE&n9doeUZJSczBcT_US_vaUn zUA2PZaO}EP;(Gtc8B6p`!14Bgx&rzW)(1BpEe! zKv1OacQPE=VdQWL9`Uao*#mVj_tZI{j7G+H%Giy%p7#d>Mibx0qW@(wGLK)lk7Sbc zKpXZ|3j%rt>lDw&n_{EH4M%<%j90#m#S8X}Z}^S_NqTYxN0{5(U_Mmq9{Ll2|#q<@*%r*1O=jP+yVdgP@=DBv}_0P=v#S9o_mW}BDzm4TG z=q$Oj**b;v@8T+S$nEh$6_ZzkdGJ&Ygr`zvp|XJ)479adGvZFwXK@&cde`gnrPX0) zOxT&8&G3;>yfIC2bfaJSe8W2SDv_&K&=R4ez#8oRG2ZPv8kviYPi{K@{1_uj*db!v za}Kewdya3oDF*Qh(WJH&1akxGC%&`QF>wWV>gtazdpK|Dt2&iu)^bJB}|Bb}O8rx@s>lgd}S}Sx5OL*fZC+^Xn9wyb7s2}CYA&wrU zn=p<=QbhIvD!&m=jFqKp0s*EF;(u-FRY}>b>AZe4uX68> zkvpwqm0zK))XGFU@-Yvsu9kO8%>~rh1Hn&gK9CKRr_~*q=~aG^xo0O?K1YlWa_^LY z&wGXl{`0{4%apT*S?!kns!=B-`toKkdIXp`FMl<^_z{H?fE?rGMPR>Q%~vVnR0Z?a zgZW(Iw&o9=lddO5O^4iIM#B1@NiPC1m}fkPZ}D$mPOnN=zA`vh!pXiRRsCf|p|3!l zQLJgkI$n25_{@2obwZjW11Mm;Yk@J#AVQm-Ka8&~%q1+%^v26_uT?XDCcvE;5Q;-ad=~^qOu@c*OeHZ zEpIP+LF1#$poh4}ijVop_CxdKTK-J-#B;aZlHbC9^T`8nPp5=iuBW@g9|pkl*tCF8 zT(0QRi;f?+=0I&_85vLEU>~-1C{vcAkCRh=!xLG!Kt<*QQbV%vWg5^j9bN zZb_6r!{!RY0CT#aK#+)a-G~3_=3n!__~$^^d(PX{&c7|aub0Q>`?0yl^ijgSunlGz zibaq!gZyp%7ooA7CT|LDEicNmLe^Bq163X!_V4xI50NPzj*g4bRp_8dh|FI7B03HL zvla~TtAR8p5<3UZA>M*(i{NzcK@=<5DAX1cbhSbLfe@vTNMg;aifm!II(ZCcyIm~n zFt%1bHjSnEY@|c{cDP(s45prWJXJ~dM?%E_7v?>sLuGz z`Gan{Ll=lHdXNM|fh}XQe_U9^X*{Sf_H878v)Bg*x})N;NYw}e8dK7*$p{pqnH4!2 zJkV)jc#D zpYzob%U6gE4mxw@3^1>3Mr!1wVj;(<{5Ph(##q6N2oZd9LC^W*?Bck6u}*msYn8hk z7~1LFiO$*HC$&6^Koe*dy-~wN>$JLBda9ykbuK5YxaSLcv)q%}jozdJ&7KYEMqCvE z{jth!S1X8l+J(M<&EL`Ak5M3_f5mUj=P@N5_r|{9bM?lh?{bo@lJE(n5-lbxmR3gK z0OlF@(yD)mQ>bs#57o!SXF+o_pv^={6*=9gcx@y|%yr>Ei@Alb<{!-QbO<51sRun$ zGTmzHad4?*)aRDS_&h~vB7emI9t`fsvf0YvJ-28RfetD334@y@mcCNqvchE$bh+FT>R=Oq1rFIaBIW-nPuIyaVC|K zQ}4Z=0W_pedNafA>q|Aw`8{>GVCv{>N2V^95`gpOrz}qU(+r1O#kb0~#`qoBO|-$} zw>&?rFOiZ;t9LQ)Sv_(zU;rc4ANW2`^O^BB1?M_m8#XO;2#iNtP zw=wlqHm);UW`$Wsz0!33O!SXcyPxGx`-`y`qDC~&jKg;)+nM5ZZ1=;I#_F$dg9JON zWbJt)ho(`t3ZvBKYFTs<4N1SL6mVx!Bddp*F%1lsfNqcc>$rANQGTlW((b& zcAHF(N#NnHUoGg!t)#Jz=epa54O2B3jWPYTF@&`_wVcAJq6e6gfl~nK5CQcx?Yl{d zO=T_&OYkZ)V4lP*7h#+7+5NwYL1ix`d>%dq+{~-c^Rb8&(GA z`$^ZlCN}&G#nNrtl|T*Ma+dT~tyb})GS2;9^bWntpDPDKW5I3fYrdcz2Wg=l#Zh2o zAvi+wXC5M{vPKV`tkHU`L4GYCx!Y!LM3W+R?HTpa&3MhxbB}z_nIPz_?eTPKGHc+- zirf!?VquqZWg}-Vxz_Iv;_re(&__+}>;W43slU{9F-5&}-FBB`1;4BcF2xRc*VPv~ zD?Tn4zZCj-0^Gf$&!A#^>64)^&c0>aAC7QLC3p}$@h7Vv%cEC$A>uqtQpTt>NTSN%+G zCV47&yC#?&6cqIj#oui?-$h;vQ5I}IYD$8+3HoLj7o5rIeA~NG9kl7l_JCJi;Pb0j zl3Aqhxl`@q9*}6m<_zb4Wg-D%{eS*e32Yq?wtH9q(6;TyCVu;x6~u6j=sC+__2|(F z=XMSM;|AZh+M5G@Sbf~m<96Bc@ZN&J$74!M{|*$QM-$A~?@-*vSxqaD18cbhtGUwV zl@|GJH^NzjSB2i&c@f_EkER2!Hj@xcC9h#UYxhQ#IfSxqlR{iyMLRV zf)8C6j2H0H;_x`!_mLcOER1r_S^JCd4;Ts*K3Q%bUD$Rb4;jx+3vD!Q^G6(&cYKvU zT0soU)=H%jtopQbawpSP-54jQz34|4=+dA(RfMPnA*`m_)J+nz9dZX;2)MY;&+tMGIpzU zs`HtS=32?e)U3?blssNm4prV6cc(v83S< zuKqs&en5f0%E*D8l!4;+Qn46|iz9a;26oN(l+s9-7NK5chjDz^mHbCC>o|O01(T0v zYO)AcOXh*-$Wj&6g7>C>ZAov@G?V2QO|h9LmU$5!FbR`If=^_R3HXmF*mhv~Opm5; z0uzy!^pFV2JUZBnQh74wmxNKNgH6>dWNLz9Puj+NO{R0Fc5SCwddm1x zhxw!e$%Ho=m5~X1)Tx-wq@O%`5Vbdgwgyr@Ii#BOkKVLc>&abymSe3ZVs3h4G$@5F zX`?e4i}Q)2Ie39>8Jlgnp_Ul|L(qlLhdkhEg(qd4fCyrYhIFd`W>IkXXjCYON!URm zc4iMLr(kBGRXAGHDThH9na)*OQr4vdVI+Z&k+zp*b24%q*@5SRmg0z>taxhX_?bEQ zZeWLwZ26c~G?V(rfsI(Dxf+>9SEI4WrKD<+SCyHC`XjU2ol7pmC`bk|v_Q<#*Ih@lwDh<-YaUy7=fMJKZ*q+`RTujrTa>Sti4qHt=1C;FyZ z*OH5f>0P3w zsL-i!;RlHvSYKEAoD3PR7f7L4gn`JKom}XJo<=T%;H=C4)t)ZNS>rff<%o4HSZOjk zpX(WM!)m8S+nVA9jB5&?Cu*P9R(Y-)@r6_CeCeo4uWj7qE#NUe8vrOU{+ms)0WJB6?2h?;u0PX+_~=?H=9o7bfx zk7~Nmx|gU}bz5hI4|ca2{*2zd9rjHs?3PM7}K?WuPv8Ny$yXRex{b3Ca;3Wcwxv5Na~)aiN_YNd47wq`uCj@ZEPxXYc( zj2U>h8hCUYFpU0Y0xPgkt%IH{WhCHKm`ncKrrugT` z-D|Wq{F-Har+SLMki5w09Et5~hq<{27kA9s(aE|I!u27_q&vUQta_)3!t&~>4d%kz zwT$4}&2X!`K&PA$49vwE%!+xP9i)!EF@4otk0Jhv>1unpbN zN5_24*9#c@X*J8lajlxDd%tphvrH_?`8Qf?d9T5_sWW<*E-aJe?55>Qtl6B?N1M|< z%(*`7$V2tLkQ~VoEy=tgfS;h7^mW9^tR(M>#4I(d_&mxX-PDuHm?g~001TyyWwOTT z%~y<2hP{{zsk>5X+X&r^hAhat+|WK<*%Y1Dw@kGW_5{0W%pAPgdS}0Abk|JG+#_7V zUR;{e9hfKFXZ$+B-8<8-xV^srdaL4W*p++J;QYP9+Q`CM)-4;!>`jwm#|Z{-s`C8F z$<4ubZP#|}+#M*3cfH@h_PZBot`8jG0!_w+jKJo%(gvQ;Qwq^(Ox8Oc*%H3q6JFWC zjj$F?alK#wxlkO)T-O`yhV~2M&^_ABEopjvV=>)fSNv0k+{mmq*o_>%;|$)ySJOpH z$c5dpH_m-RX?<`eE5r?1#oV4t4azlZ;&L6@`5n^j`L~VIx3zYSHH96gnj2T1fiUJ}Ugl>&=JS!}Vm=>k{^oDa=4IaIbYACh{^oOj=VBsus89!i zum@!h=w}|^fL`c<{^th&Q0Rod=!o9vdywdd4(V$C=Vw0XmhR?*KIxc_=Xc)ep8n}@ z9t3VK>IOjSq+aUtaq6m`>YL6627nJ^4(qQD>YF|vc|PZP{^`t70F@bTIO*n(J|B-B z?82VtV*con4(O7u?8@Hg$NubrZtK#1=YcQ)^T8Z}u)Boa-u~_29`52k?&NL< z-fr%8fbQvD0O{WD?w;<&0Pl7X@AN+J#c=QVp6?KF@B5DLv;YCL5C{KG3!?x5qj2yD zpYSg*3Xbps4etnz&{@eY6a4S)Ggzxhf}^h(e9pdb2HpY@yX`9$9hqagK0zxoS*^sb-urvCzGfA(Ha z`$?bnaG(2)pkH&3_lh40gdhBgFZhv9`H>I#$e;YmpZpvE`I_$t9PslFAN@%W{YxMH z)*t(y5Bp31ul?FD`c3coosaZJkNV@k@KB%n=uiF&-w3Yn{@ic-vyb)?ul5aJ@e|+n zjxd)#1`r*;*QOyPl2jb8MSJo zMkTRk<=QCHKd@oNjwM^x>{+yF)vjgR*6mxkaplgXTi0%fUcD$HjKna~u80Zu`qfx* zW5SGvLz3iZ(xYRLj%CVp$y2CKoIo*K*31*9WtOy#f*#tmThpa9Q;$Lo)oIX^qfWly z>S!zfR!1G|?&jUw_iy0Ag%5`-@UOyMkvR2Do-uKAM}VCp2CR4^hmqM)N`^rBarc=V zYKo^E)O=1_Fh#!*EqYXY_VL%tXRqFV{L@N%GG(oLb^q2zX+$=do~p_b*=RGVD@TZP z@IeS8lyE`{%QB9W<(j+bFXarw&_fS3n#iM!LgIjv>}2BL4(uii&nEJGiZLkn;7bp_ z`a-K|JsxwsF*F^0wCTqi-+Pay^p0e0sU`PoGC-$RWa*?kY_rmlPb$=MOD?8ExfD|a~BLvVYN&$Va1S5 z6h%T2MK&YAZcYw(^)5U)EtRjk_K4N-P(qWHuRU6nO_t9hqcu`mBdeWO(kE$(kxrAk zbHv*fS9Ii#UQRXlTy)cgFjZOGg_YJ>Wu?_kdfnu;S4%mdMPGhhDi%Hnnl;o=W)WqN z*@F{iw%KM67Pw)CZAe@ce)T05g7=8E8DfSVRybmyBX+pwg$s@tQA8zXxR~^q9);;*o<{oOoTtVASzAo; z?U(~yb(QTal*1N#?2_>^g_9cEZDHlL*JktWnC+E&PFm>Zci(0Mj#%%Y`yRS)zyp6c zXsDmQk?E!rce?Pr8_&7!edp}hPVBnwH6&DYBYShsJOA>NUQB7>1WwlGg!HycFOvhe zTgMfZ%Xhu|?tp7=ym7v97JPT!dtW+Y#Dk{=>ZT2+C5~p1e>h+x_pGn7%W3{-FVCyD z{`z%$IsJsxNiVYn4p70c1=w+I;a+<8y&Q6V0p}a?X6=BV7WsX*zy4;4FGm0ThwtBi z;tg+q!-GIE3J3uN)-Hi_ngjorl)4@}5oGnwFRXTRHDDNV_TV%Q*+e6T?Q3J`<>Na2;Ugk=zHX@gtZQkT2j zr4*##4}Xxs1j6jW7mE3XFJ!?AR#1Wxc;HMP@W2Nb(4ro#i82%a2qBv$FhLl+*@Q4S zK?zOZ0Xd_2PIR7=5bET?I@ei>cJg2m@LYsE?THB`h#(6NZ~zbz00aa;0upi%s6a(= z&<6;>77LBVCK?)xLPS)e6OHIFzEOx_SYjB3u!KZmQHWT;A{HZ!1u{x%3uGW;84DFa zOL@^!O$cD6$v|mIM=H{fT0*BBov0-UP>7!rfB?e~Do}$ORG?y%0I~QfL`gc*O)OLa z#L$H^x2XK}Dt8$>M9Oyt$gFYak3q^)Q zHvv-6LX@Htbt+Rq`qZbURJ9%u0Bai{00qQW0Y#XtY!%Q_0U!gVCPnQ?L5fs~4mGJj z-RMt~THK0`7Nic9Y7sJERXRjBx(HB#3P6B~MJz%O+touGN4Wip_3gDewV)B4DeRjV@*lDvH}K)E1s?sB%R+ z(WNG}w)WWtXafUV9;e#F&1qjWvW;0x7 z6U!O3DGqK@U2JGW!+5w9g{mzCa0?FWBCCpsE|0sKgRcg8yM)jKAqY_gB!^m5CSX7w z(2HIKI6wpxz=U0+Ojs(_bwWyb>80b4}?fh|jif+Dn~3q|v13(*JVIykg7 zPHlx&w#El#t98nh>9E0D_6OUBl^%Yx0I^rt~6GC{9{eyx6`En zHNAa4At5Zl)aaG0s#)!7e*c@SR{pDyv%KH_`ZwXdCa`paolpU2BI2L@EV7S1?w8Ye z!g6-DoueIcVu&K`YUi+@ORU-nqkP8ShVf79zG%`Gg6mOrbfh7nZaN6Kx?puTcM0)b zdH-DT4r1$hiH?9He1O&a7Hh!$4RFDBx7GvSFTtZufi4G_t5mmausfV}O+Z}YYG!@K zmCfvtI=i)Y{&>g_x^|IgIJYN8@kkHX#s7g$w9^HcDFcE5YO zr7%a&7k~ZW2!R1|7<$o--s&hzndw3%YHQ@?e+ zyI$F)jkCsei(zPcfZNM6NDzerEI?}8Fl^Jdr;0Gpnmcg2y9flX(Q2qOW2p~YzUB)& z1V{lDIDky!u2S$WLP$L9J3-zs0iol*%HpcXn>;NeIQtT;!Vw~WA17!0$uzRzYi?h|5y=W6akUKyFRJ+@AyWO*?L6f`SYdO5D zIAn{sm?{Ets4C{;F%OJB={r3C>q9{}q>G?)JXA{n75F|VlfnC%LGm-dE1R`iOTSxV zzxJCt1o$IYf~stM6pE!F5wC)MWeuWoG6J? zMNOEks&Yk3!!)pxzEXgPH~dM#919abfjn5j7Tl_UWIuw`LC#A?&ND{s@;qg9KLAsK z9+S$eI?LNy#EMkHt&BuAgS~C+$V-H_OcY5?G(ZGQJI!h-1`I{fa!YnpD&gBGb;PK5 zJhr+_gqbXYymZC?4rDhV6TzMwOymrUpcJ~HM730tJfpldVH7yc!@=}RMyT5|Tmyms z^1&a}%#!Rd&!onzlsJsUM%NQ9N=zwlyhLy$K#?pcgDOe2BQtEuWjP%OX+N}!IG5_Hhygiu{X%wFWGqQtJF)G{l(QtZS~?b5OXXvp{TP7y^n5=FfswMg?k zPZhN|ZRE)Rg>o&i9Lu%aMENAiv*a+{TT9>jt^TCDL}N++KPenb z0%XlOrO^+2O%qE=-%2?hg-bAO%i#-BB&38PMZS3yP7fr!AmhovT-1FO0!I~vN3AU9 zT(9e@R4Wa{%G*+>?5{3uztGD}Afz;OQ#<<`QmiahG}S*Ah_JMetc3`#=Ou(o)z0gZ;@CNLXgoMP97K=bSt$jaW^+RxaH#5Y*O( z4AX`qhDW=~GR;af^*Z#FM2)0GI&f(AeVg*{AXeby=hT^S|cm1VozTHPFdFhqmh z;OkK!TQMP>F--EH5t=WC;*IK~KpRLFL=(FJ> z%VAsGVWoZ4p&UK+f>r}&+ylO~Y}M9nRRJ*DF@f6H>b(Wcg<`SQ-qT{Xj(ky*ZC8|i z*DGAv@4eBN9Zk9wV=&BBRRdKyuj}1*JhQy83;6+Yb@WsNC9N&T}NiO!pbmcZ% z{ZZhPU3Z+zh~ih<gi~DrRI48^F^QQ-hM^+rrZyT}NES*FF_PPgX+zP@bw7p5YY8 zfkU<7QgDKD7GB)q;iZLA%A(LorDg5h)UfI=gX>gXQ{u{HVy@MMTF_jNE!Xsv#Eo<) z_Cy9LeA5`!;$Va3`ZV7%o95E8W(Z`*+T3I`*irwC-$a;SNvmJt%wKZ;=ukUnbS~al zmaIDrVw5)GsKu^WlxKSORLX^5jU~}h_1ZqDV9@N`&Q;T~J1Gkz-SAaAc%4(LLg=rx&#O}xFpX*DBZkZ!($^;DP6oSU zjs;ub#*$^%wSDAgzCv9Hu@R12ilW&sbm-$k1I6CviI%wAtty`-WsS~Xk9Kaw<7(;F zu!DNi=Bz`0@+w+BYxX;0LgeEQNbSIjY3e0pam53(?ewn13v*9AOS=PX<{?CA zF%9gr^kO!<=A}mLh8_mo?C)#LTNifhdR*>ysB8rPITI+emXhv-rEX_kXY~T@2{+0M z@6^+_=bDS)`6h<99#Vcb!Rl#4ADQXx$qw34>x4GCh^d%u#{?V4_iB8z-?$oUHS$z`_@r8 zCw1H0Z%)Q>+MQ_Q=GnaT*{f!5S*N!me>8R%X$Svd>z43fkMj1z@Ryceww7RIPXrKu zZJaJ<^`v6<>_*m7=4gvkG*9@yzTC5nRZ!nHJUameXkGbw7xw6-+=yJhD{lY~CvPriLV(t3(j>dl{l@SOVHQ90 z@T|{Cj!oYJDNK&&LqlPxjwt?i`u^r-f4yiL?n^yrf{+(AA*jl%yM>m@^<8{$UXO5j zpLesjOaMCqKbBssn#vCw)tct_5btM7e?3db>t}bZ@6~kFt@dV~b`T@N-UhATCPh=+ z&r23#RcGwq-1q|}yi&mWtVgoKd@VrtdIo1&U1wPDQ#E;Sc|NY^tWAK74ewtbPbJ)P z5yyEi-+9p`=x86nYFGH7SMxyYLb^Td^|jgmiC5}Bm3oa&W9vdv$)9}k>H!q6{Fxk8 zcVF1!Mcz7Iud+{TVdp0h9lZ@-?S>m~e!uC}Kko|E=?U{cORVkpB=f&-xP*^YqvkA# zpUvBJvAW~^bevg?LIb-~u8Ry*1po+Lx)doYfglH_0}7k`Yv}MH#E23nQmkn4BF2mw zH*)Og@gvBPA}5*<^`Ls71OTf}sg zAecf$!UK93j%@AvHSE~3XVac7WWh<5w^q_c5p%(UJT+(HOn}oU&ksX|5=D-{0Zs&T zq%T!O2db{RRjuMlv~?@kuV6c$4QsZ%+VpIZ*@|meK+C&#^@`F36H@*BdWpGgAb>q$ zXq6`!WCUJTU}cmorkR3_k+;<*w%k%g2Bax+8VCv`7@9C9D%XlYN#9d*=AL00D!kw(^%2p*ec z^<8+Ljn|}DPe$2RTW_@|7hNvVhZkRY9B-FiD>4-1&+-)<|h2;7S>$~dW}HWp>0bI^6VRFIGi$sbin zo{B1ythS0CdQnd4)~p`Ph2?x&>Z+HQfw@GOVF3y#mazy{eCC>JGH51QbJjVbK&Gjn z&?4G?dos!?tDKPuc_51aBBN9_`ch0TLP}Etl6IOvyF9l0Baltep@_XvO|>1Vn<&X- zzy1RJ>RPdS(B6Aj%6DsCS@X)DR1Hi`CRzlC-`s{PZf=@PYow#-4oBRKJoDUcyhs)2>ClikWwenKOu-#4>Enw3yy=f}Kn^N@Q|X%|zp9Ey-g!^II&gdZ7V6E;f$-*D~<`+A+ZH!fM zyHm&%fdJHO=zvB%A`&CgGM9}DKFL#_Z+;__o5?{^)-#U0vUn4DMQ1u4ybfO;kS~2* zj%llMl6eAlLMlz|J#n#G36s31P!MyNkK21JJXpc$q5zhXo5RRD`Tqs^-eX$ zla2HLgpVxoG&-qduP$Eu57-3MPsX4rnD`5%WL_uOz#8>-0w@AQ>7arSJoKrKeQZav z0EC%TlYy0-8S^;WQFVzkq>u9=XqiIFyin3ArW#=h(`dpqy0S`Df~8DnD!S3#G?x(z zkl2K3vB(sNw}0H>Z`A~+W6G(2KxF6;vjExUGWR1*Kmau%0UVR0=!q@KY6K-{lSzRy zl+Y#Tb)o_@B%#!dBm`d?Svo!{y>^~eb6@&y+Cul)kxFIiXPW%_m;w#6K>`g+n~M4s zI!P$0DR6*to2%djSELClfK+8M%98kGRl6UZVDz|}voCs36bev4Src(q)TTDQQ0iR& ztXf;8Hm)$1@|Evg3X@YZiEV7X{Apx(``7*w%UF%!VPX5HOoAXK!3;h!lCkiC7|B7p zCV|QN}p@ZvfgC#ND z?or1C2xcFJ3fzG%D}M)tn?ggT3j}-t$%bZd6LPR+Y68wklw46Ze}l=xeH6>kh3HJeT@iE6~+jAgu{A1!8(tk-M z^r3^z+$Mm)M>BD<@i4k5M^Sm3+`MwmE=-+FH>I4}nM#O7OyV=5mvgLiX_~43mQy>j znpSq)=Xz|s*EI3h){fyZeidUjz-H#ph3Ma5848I)3%lP>ZNdS3M2DG77iP*nSIsOe zBd&gT;hM%?T?BU(v~s)50ULEI$Hrb$A7;&7`?z~i{c3gF*r#>I^SgcNU!H2rZFjy5 z>^er^g<6N-{=PXx0saB$92+LNxu(ntr&S3K+=^Uf3YV8+Z4^noP9w%##Y3&v&WVjm z1lahB4TI{CulbHuS2tjJi)a4+^D!l__itghpdWW8LPOp+&f^YEfERnw;zGgEq6}%8 zEkLu{U3e8Y97^y$B{1hStvdTPU{<*bl`q_O+c0P{%-2u*R9_b9w*}1&*{aYv<$k6)n8}aoZ0A-UGh`gXj zy6*(nE>{D;l%z|p@KRBUX)g!r&6)Y}cCHm<(7ctS#R~0eiaLT z*_dP8Sl9{GG4(+#Y=Qvf$?B1x2mVeIEW!a`f(r0lllk1EJrV8=9noD`(Y;`odCBo) z+tW48d6C6hompGd*p#@^06O0taombI-_-%&PQ}}PMFy?$5fiHaoMiNqx-Ew20aRci zNUH=IB#7S!ZeicN9_&#^`cW6qWz+*@*55r_(a~Sggb|39)$nys)ODNV)mYT*;Kq4C zYjxb@1>s?&7_6P$FDYTWbsirY?p&i1C9j-?Z5}+QwMG*=hFVS1A?IIJ} z*&;?^*yPdu?AO}(QLDs)E%b#JN+L6U%N1w{CVW7b;YaPQ$jn4h-?<fe=pViqHF2))X_F}E+mv7Dg4>0DV6w2D0sNGoPPoOPh zGY({-TtO-5fh8h^>@AR0*`7vGS(Ob(8u}g#f>EvzM$@69?ZjcX@s#{X2@h5sF0SKx z4B!ubPAnY8Ew&=|B_Ze0BlWc#J|3bxw&Wk-Pt2JIGPHz15~NQ8$`#;(hFs$O;m4Pi zi;C0}HfrPFrJ;~mq?cf%h>c^%s8autoQ=U+x~Z4|zGIaT03HrtO2T3hA|hZlAX);J z|IuNMtz17^p`V!vTFi|J{G?q1${^rEB`QSh$sX-BWCJ}Ua8Q}wIi)CdBPpK5Za5t( z!eOYHSu187EOzBe+G0wQBwSS8Ek@z7FyZu#oi9%RpxKceTWa1-E}=16VOt1*0^Fr* zg2*70LMgO^C8~gs0M0ofr6pxn9{8O^Qsi}5WUh#j08HiZab&2qB{~}652{#mb|qy_ z2>{Y0Alg~myrr$_&;;ruFzO=AEh3b7z!bbDdDg}t$iqQuNC|e?iNuWHI9jBMLbDwk z?{Q<%d1GRlqPEo_a{ddHj2c^ZWi0NX9sb}gLgzXHATA!E$$6%OGNFDE$m3}ySq7u% zeO_vw1u{rMd3I=Q2!aI&r9xoB`B8_xh#^uAPOV6q`#GCadLvYVqbZ8xr>fpC& zWvqxLf|BHcmSxE)pi5dGA?6q%;v;GPp)2bD){eQ(1fqe5MrmsZ!UX6gZ5}|eSx1vm zqbBYKe8guqHkp`m)F-APe%cFvFr6mQsM3sCYI&qQy5d@dS_a?<&y^gtG!}`AOt{_9soSl=Forrc7|EH*P8L*^&U*Lbi&do0gCiI$p)1 z(4LlMfCwnOE@)ZSBoe+`O!^{rHsKS};lSXbeQ6#Aw$3k229(Au+CD@-006Oys3oR= ziBjVXmdmBKpLB6*!hUKw*%DzmEYg}$YCTD0W}FcUXyKYH$0Bai#+t|WX?F7B$UdOi z#py|+q<}IgUrBDA72=(xt>^y#gCMXi&0gsxTE}&uV5M5>vqn+09_*G1t(RS^N<1u$ z_UAvcRh(+voKB{>mMdlM)T^FrpY9i0y5v13NLHR?J0hTx`qPemY$2TO=f>>Xu0WN# z?H8Kvi9(sBdTBlJoxSuO(CY1pI!w{}ZU2y&(=5oaoZ02-Zggs<;p%ABb}TTmE18xuLiSE-=Z%D+HU?p;dTNq{3>W=o^T4Qu<+v7^gS-f)}t^9 z%;)H#dyxrZ@YEmC+U7-X=j!mi1^@u?aFrVCP$Gc#qV5D!aHQc!5{s|ivd^z{@Fv)< zJAI_8!s{zyY!v>k)wbl=uxnq@^h(>CO zTE~fs0s|TCz`_TG!Nf)-@!lF`_P_`F4)P$cuO6kv;OZ`O+Ts~sZtx1J3fm;-PG4Gb z?dDd-|7IPn(2A?^6F>Ip9(^(>H!2*j008(fJX|RW+Og8%v85WVEx?sau+=QQMcW;KTtWtAL15@#$YpwMkToAMZ&^7810~y!_P}5LiP|RlVSW)-2U*7{B zEVcDAaHQ@WK>%#(jI$Kb!F=^_$;!?`r){ya7^28<9=-aA~V;z zHLp%C$nqkddEPN^Zp<}vJze;Y2iIeAh$FX2zZ@{I1_R8&UkaKav zcsa9BHob%kJ&e}?3$Rc&WxuI8daJAEDY<5>kY0D=iuNS)FWO9U$jT*L?_}uE_10*O z!=w%ZF5ogl@`!J_YnnJqyi$zd{g_cYDT_!aE`~rOU zum#A2DQh}L5Am71vpWN|n$wh<-__U1`I9tBT&7WJ-fH}6>{&bbJYww^-*oW`I>}Q1 zhQQc@EXh%q)Q9PaNu!^~l7DQZEBjA^fo@lN98bU;UupK*ci@aOw!?UAar;T!6?;^< zmHU$(or#=|wK_g$p<*{6()8xRBr?N$AIbY#%!-BwMpXC(RP0A?I4r6wVuB<)!24uU z{{jGC#)A`i@`r#q&EApF4D3asAHvgAcFPLTJ2y zF}$1n$=8!$co`}A1-{qv*UUC27YiD|K+W6bC)`8M6MSz&YHivvDx+?3Uwgxw538-( z`xHi;Shs4_!+O>7`8*mq@nUWM zzI%lqb6&GAh}e7sf$x*B>>7%37!>y~UR0%Paa6^m@H2f29py7em;FoC~f{OFr#xJx z+6@Jv0)f({keW6SAa&}dhg7dt@4D4P*t@9Xs%i7XnXwTsaBB)1AJyb!|-HMGs9 zK63gnlNAE6K%N6i8442>QlNuHrka8ZI_j*lYC5d4J8j0eCQ9x9JGH<|3$P&P+ABS< z*6Rx|_ud`=ypybu2{&Am%{JY9 zbG8lc(aAU9dICx)qCPlEIp!96iaG{Q8#Jt`JlIYw9aH1cEb+o?%RPzAbL-F}Jvh>@ zBnP9CKPmBhQm`lGlkZB^B+X2L&OZARlBJd#O;s`(EDJpSID!+`Ty@=*&E0;X6F8m% z2tl3`^E?iz7MXj%xfrLLamI&iEb}f!&+4((Y%LPfy|FF@i%0@0Rj)lJ{W8o+!#XJLKbLCPuRQ#gE?_G4=J*;N`B$7^mR6P^A=%R-%NFj{5)3z`o zI*OX|$}P80&fY%U34jrYgJsw4+-ZbaOrUW%_`RO0bD$*Lt2##aud%({O zv=ljzuV~IgkU~tezJU3SVA|8*208c%JL$va_!GA zoeJRIkodcHSqYk163bImWe^7r&3P-_qy!5hJzC{#BNRI2ILYZIFx;aLI$@=qCP1uG zoM>X>YmppUxFBfhl4rRj3;mJ_A9wljWaiNe{)|KyBrQoW{=}Q!_!c3*C9_JaSqnwt zGL;41%OKgLVkWCdMJqDpPZk`RVbB1Ea-I~W7m|~Q(rGmk4hNP8SOnJ)fE4E~pmg?( zAwKi?zOzBjT`xN*L30PhP1TJ`j7&`bV*nUDe?C)G+ls{|x?(tMHgA)eLh<(DDQnQ|QHa5XQ2yx&rJH;Sku$&ksKu}YUG6w}t!AhBU8nTe_^QnE*4|(=N zq}%Z&kcOlkA{R;@W;RkXR8puYv4p^$2}l$M>Zlwx%305T6r_6P4oMla0kobLwJ$M5 zPFN|ztAzljde8$VQj{#t;&hJB$|7odDk;Clg>6s$XGVmYP!GTY4aq=5rO*(I{FUom ze#;p{0a!%h;tXbxISbFYq>zj@Pm`S8szy2cQH40(B`U)px+{-?hx8ohI)#ChzZQi z?o%1#aTl}S?J5<;>)Eb854RNjmzn&R!S}ux#{V#cBO*a#M>rw^IF7)MPhg4@{Fn(f zr~wID&;k;WzywGp@)RZ^g#t*y$x^U^l&L)BDWgFOSVlt-(0~RabeRaTAVQd%iDP?d=*cZ_`usG9maz9|$k>LT7@v_!85n6H5)7PN`WTVBR3@KF04D*;9k zV@E$4Y8~hR3?$uw4M_UZnVvxhRPhN_blTIO@U$Vqp^8R)q7g4}1PAW$f>F476r-Sp ztm9A&Ticos#o)uP`4A8PKm6L)Ht>V6gJ6SV2jSRT?y|DE{N-hP`Ps2(ZkdVDvj%vk zARE;xC^}0AQgD>ehi*Wkqw5AppBvq^=>-Hh;Rr)u-t#=-T}5( z`s6B?``q2s0SGw%8R#>QGRh#B!5^ORRdzYz6>sIi|J??WpLyYB zZtTk2T;`bXJLYX}c_(Xr@;i@tAVxocKn%e2sGou}2H=YUID_>hc)IMLJ_*{_9`{h6 zggEKmd*6G+5t9fy%VhZ=ye<1L2|Ni?w5Fp_922k!; zZuov~@`UaHna}TVj{24l@Z7)w8IS_CFZ&*F^SJNwn6LSm5A&q&0&_0(MDWSn&;90) z{ZKFUPH+GJTG0Ot;Qr!{0A~=!KEV+ZQ09zo1plu1@~-cWj{`x_`zo;dG;sWk&;pGx z`5q7hLvRO4umoey1l#ZZsu1-Gp#BO#|Lkx7f*=rJ@C<^$0C@DHDG2i-69+>i7~&kzq01{d-E48Q>J z;Ss^m5zLShPpcR5PUO^3=JIY0H}MIFZuyRn4mr>VZ9w=ykOwOe3Hxvro3I0)Q0D|u z<`A(8rO*};5eBu85g)M;zYr4bpb~@eqzq62gHHH{j}tX<0f$cLhz6%W!6yD=dJkq{e_9LbUNAaNHVaUv%X zBYV8mm$&0rDwX@)fO;FU7GYzi<)% z1M>?fG7!$704y>r6BAb=!4A$+0UZ-9JMtqiB2h%xBSvJM`TEkjQ;fetbe5Hy`~ z1VJ+i|1l2_G7tR@Igyho`%*e((dR^u=K#|Y&yg^*GXikaJ99GvMzb-I@hl-zI7jm` zpRqV)4m44*JkfJFos%+86FO(kG}$vX@lrm!5jsf|HK+3l7n0`&)DdAbI~Q>x&j1*| zlRIuZQHhO+qP}noJ{Ow?wzOJdTalO{Rg_L`$Jc)t9zXX?;W!+#2qI)3keWK09fKA zP-Ra;b}vBLNVCx(Xr)4-F^k~n%s%tLJJuw8?Z6RM$0z9wD)=CRvdAyJ#QT6oubwO_ zJa<;YKr)z^ar z-R+0ey;fR7jo7_YUi|N{JT2CIvQ|C6*Z;tl?C;dwjGinAUfH-ouEdm;;xMFEp0uIV z>~HEqDbqbF+(Pv@zAqA@tPu*(h@QX>oxzS-(ui4Gj~;6e*};xhZjbKL2<>7=Moo)g zT#UHMXB4lM0j|e^;lxiZ$H8pGA30pOHZcM@#Btu3i8LcoP_=8Yt?1PPX|R)GUZU7F zkkD9VyZoshV%_{_Jt|jbOUOh>#s| zJ~-)6-@HplocI#tB49c0IlgU@%ksXtf&U1J%E)iSEoROtFVf;6z?B(EYVvW;7H!}`>B{tBsR~f23;W<*(rRDhs+nSL7uIS$ zU~ZTEsHyWRXYVY8;Y76eXrW)s^Xg!H>qjicsSCob1l6j?^5`MJ&2RE({k7E!(N&zV z*;AL1|GguP^v;Zf(|5<+NZ#3ww^3=6Rl)CBSis%qwcJyL+d!sT?DW`-chH4{zT)Xw z!uZ*3^bz0UQDop**8&(O_iX*WSp@{9S4H6Pg5mR)bX12tRE8+mEWE$2YK;& z%y4Be0!kXT`T?7Ls$7WR^@G2+Yk9Tf$G9`6@OrTD(}h3l4R9wvu(O*qCC0cLft?AA z-Ax0_BOx7~Zd(Zx-tm%M`D9)dj9raGn$1L+Jr3D59$SdxfR;FXvj4c2tT`{-p@;Ww z_U(zR?4hX6EFaD`udEDSPoAW$wyd}GJKPKspZ2f)o6L;NqwX;;+~StZ1*q)|+0Ldp zmM%Qp(Jw%Q>U;AE?i@~YOUiaL)YqKf+Z?NQ57yh9uy)_Ta=zWiG+s|{8UD0%H%KT# zXPIU(nP;{zPl-=<{((~$uxeu%N2}zDd+9{G-)}47S|0(oedTvH&M;n`nNR$ecU4dJ zHiXt1fp^xHRyny&Nf>AU9iV+`qfB{o6RW$RNbCHTt7HQ=GUU36Ky!9YJNu1ycLYCP zajUDZhmzzQ1KNz6;9iB`owvxD%kdtX_?r95NoUXQ!)q$`^4vM#uAJjuK*?>8^y;_D zD$e2EI>_3r;cN=P8>0E>^T;Yj`fA48J@7)s`=gaPmNl{EvufsZ1gbgD>>CfkyJ&(} z3FUPzwK=(?vtH=CW|X}*fKwFKc^T4mSwz2%MsRtQQ`zHN&!02i^L3`PgZ!#7IF&OG zl`~=W6~~z~@s>Rg_+0cmHc;Al2d8K(_Xc)cmUW0wikmDZU}bQ91&!t z@XlK3&NgKr9rhn@{?i-sIiErwy5M_U^0^SV-6r2HN_aaY(5nOT^i}vydF@gV$n&7w4+z-rFzT)rj7S8N7UU-x7!{q-U+Q z6rWj-y!#{VV;8>ZI?vrOz3hsO^`hUmmgMga!c-b}H%G zKj#gkg2`k+&C%iZMpL0U?^S{GTl(_(0+A?O-bj{;#S)n;E+5$cud#G4E06`ib)5#A z*B^|A8WLr$q%Ty8+RCz0K!^Wx?F`_@=q?~bSNuIH)bM6;m>4(a$b zJH2BJD*8r#Z~UEFhwiwHnL;zg`sIq{5YJeqZpa#8vLxXc^Apo(oH0Ees2i^N6O+i{ z(^xl*&==Y;{M4mC+H({J9nX7IG3?M7`JmX)p}#?0-5aI@YtJ)w2AfzAJ5xnTa_|dt z(RTxaJv$gw%xqtpz4iEK9C%HG*mr<3!X#D8)?=A+I=;m)ohdhc%NlRNj3TJBpv2Uh zpD-=U2J<8ZO%T<^I1Qk^Q95s8qj|g*!}z9poKNx#+t^K;ZqmFcHurhL(xRlD)DM2( zTuY3jaAPln{3)~|rUgU1I6wG0qf86soej<28V1VPm;I?l5tP4C15XH#Z_=u+_g^Kt zr<*$lN-0tRj#^G#3uaLncE_bcw#%%mJ|GH1Dm#H?mvW~J_V7sqnD_k$F}7n~ts=Za zf9;fQmv&+~VH2{VXNAvwEhkabQ*MQwPkC%4nub8E%a%zSuJ(FPs*M}Ip;sq_K^!FN z+2nkVn^cB1hH7^CKgrG(dOE% zSo6iInIP_NgTsOt5kh8~)w)&Fct-9YBdrfQbk^m9)?YV$Enn?r{qHlZX!$U6D_J&9 zcds{cun$z{$;cWJ&fAW2HOZEYSZ04po)jnb_LQp1?fSAev+2u!yKO#sqF=N*4SF;E zOYGw;&8#89)s=BO&0LBhBwbFBWZKIdt+sH;-)&`|n}Phd2}}oZdcvIp9VOJs+92&z zivNZ~Zz7S$1RqZak@Q$R9oo+_cR%Q8UJoaWa$huQx#1cvw=QMYSLb$rl?UK#o?l;g zR^f=J4Clr1brBGw+AU4QYF|XDBths|8P3o=?SUVef2=i@5tM&w()`PxJnCu(8?x`!iTX zr*-%UZ7Lwq#Ds+Pg$At$CVt3_nu1v^E`GW2^T<5jy4k zQIRTMT|yR~y+VL{Gu$&A9U>i!Gq(HOw^>J(d!I-QrV7qwCsE78oTRZ2jvB{3^zU%} z)>uSPQi;kP2BO&fOenwW6QX$0pBhd1emNP3#YhyA201!)+0kFN&}$uz_q~y+o}t9Xcq)8( zaihRn^|~&MtbJ`D@}(Kuq0~bMOpGA}MHE)oM)Ipv>|_9I)Li!WZl$ysC}DlT=|_E> z#d-(is#t#m;|Z?VhwA4WYfCAstymAL(u-(Y^Ry3y13QNEOP4}ElG?CDj#q;&hIbFos@_E9HIIMvl!zzCW4tz;Ra&<*PkfH zFLQk1x4fjj-j*S^dzB{udJR^%j6|a_B zmsq=+0)uI-7QOt_R_V(RIG?7-s zVC!M0i0-io#m7-d+G`t_+Df#pJr2_LJRF+LS%Rm9|K;j_#AByE2JLFZmB%cN9Sf6b9 zKZ>Y;oRK4234D9F_kFOdE+gB|Mg4!OkEEFg;G^D$qTJSFXxe{l+&up*;O$+3srB~l zblvvN(Ujy6JQ3qPUGdWy4~E@6f~h%{uNi(g(R^Lo_#r$;{IRT^?0K=7V|@kA(Ny-U zM~KTGK3g5RSO%P_i%sF3tt5Th7e)=hwy5&Oo6TH&J>~osE0F?lJNU==*Kr6qIvIB*5=<67Caps^7f)ir{PF{ zW(hAIbo2tr)aLHM?s21TokGdwVlFY*?4mOsc3c1(MjT2eW-X^~&VcP$rxIw~<{wDO zasXTq*d;g>w2Zi~z8kPl3T4`YXTf#|>-QBnqvJg`1qBYziTssIV$T-#M zmz(Ei7^&czH75iRN@p~pqg}M})@EA8u|&dpAG@i)XuC~gc<9xU0Oa5x@KJmwvbtuSQ7`AoKFR`6blU{eN7QniH8hrJvX0x2o za6-&599oS58}p{dOdl(AM5T;2K##kC;#rqSOL#-~Yll2av!4E$8h#Nq{pc93VPA4C zdVv+Je;id{8b19J{ppq%*`CZ5LW)n3(GY>5SLTn06KCKSEN&{H2$Ojbo*|wQ+?yV2 z1#JuF;m&IjM$;ZyXOcCjlF$f~qe$X!w~l7|mNmf^Y`T$1(2)?Lsg1Z1h==3wu%1eG z7K8QEmNMNc9w+D8gD}({A(X?g25_2V!=`Rz)!qcz9^Mxi$#P8f}CcgKAqC_Kuk2Oq5G;@q_eUv2f>yiyc zI3o`&f=k;ibS%rx3Sc!Q^YAWeH?CEnBRw zRkziV7s?gMYXP-TBWK_wqeQ6enKR%XAfzPh}BDHBoYwS4TFyPDavAwTf1;JpO8X#%)dG zYJ{U{m#mC6)@Yw@Yw*FV^Ac^^>uf=$Y3~FIh@apu;JGHIa1Gqc* zX>y-BJCUUG+Dd8$;hG4!6I(u7=kVITyXp2SO}fKkvum8Xqs^rSFS><;vyTUJFa>Ua z7i92$gDP?GLxEZAG8x=w?qV}T9bY<;lQ6udV)Hk!EHG_|^@c1^%-7`eu zx-@6iEBWQcD7(y@Q>KtTFZicJHfBUxdwgzcEJJ36`;SLIY0S8E&x+HZh8)^&rf10j zq3Or#P{=ftR?Mn)4Q|f#Fs{&ooz4m&^ITf|pzF*^nEeWr)~q+eIN=uBn*CxR!ng?R zYWVdy!91v&JyfXuYP9S|ip@q^%tl7dM%K(m&h0`Tm{6X?&r^Kf} zzt0eAUaa%x`0ZVe4r0!*aS(ITIDGmP>{D`D~zaB-=B$;GB$l*O2BdQhY! zxmu#d>lsGs6&-oJnHT4lPA(?OHnNv_=^O$zDjm8iEU%=(+13xM8@V!%9NHkglrm~J z$FB-SI;l>gf?=<$#rIUPi8GZaJFDy7d8@9)2o$I;tBSSEFI(bB+paq>To@uEM;$pU z8+){9B%01wr;zdYdDm>Krwp-g>N-rUZu()#HLOeJRxfC};gBRq2au7#k9$W~FX%hI zm}KmRpGZ5cO5>P5>AS%&e=&@K)vfL}*K18Vjvj~Nf>2W-Su;%SZQ{`9A9dn`;8{c8 z>(6Y-(Vq2AC1#&i$A(_wR*GzG1`wnkt{JvVfn_qz(ZLEiEzb(Y*QJUpb2~0I8EX8@ z)vvMy#Mc%6dRW9Zo3US1Xwx}|L`MX^F;>IyPq^$W;a0SjDO0|;)xs5B*JZ95Qav6d z{X2U}iu_^wvfr^HtG%17{?@uGF=fdqWTbLJsk62OV0|QAHv!1Qss-k>6^!TiJz#;yi-L^S=B>K@V)>Ip(r+I+8;KcXX?r zcPFzP|FnqV=FsphFld7JaW!{<0>|0lsAIt#Lb*e(?u1Z{lupZ8dFVuGrGiv*-k|!q zUs9(f7)%LlDA;&Wm}M3B4u6AZN%mIT)4P&T%OTHP*A9d>0u5H z?22WP=wAkzBLBqZb`=~+wRYwa*bC^w8=LZA_9AK7g-&Mr8^HIIXTGMv4q zVj)gzdg%|&Q^3q!CW+!OmmW8<^2)~#%&JGZF#1z2qXZ3=!p=?DQ^+|RuwBgH^ES_&vdoB#9k{}W zJq!w~pkNV%A1j30ynTV_af5PkX4{GF59^#2{8=Fu1x59{)FKb8vVzd*VFAsvLgJ^1 zr9m|0N?OFUJ5n5C6brO z3Sp~#bq!^IA?H#a5Y(#K_YFMhF=Z;CQ`sV6Xjgp$T74*XDg_Q>d5({he*0cD%g;-F zs`6wLWL3WAcg?lczSL4J2248Da*TP-RVuA$OMIou(d+4@QYQ&gL|_dCXji000pWr) z?oWChQqWwRL)xA$9=%d7oGJ5OiH7G-;{H@~uo{l8wgVGZ zzf<&r`K$O|fiv`m4XHCs4au1IiSE-)fTXmZc;Dvoh2vU=Ga8xq(Dpf9p|k9fL;i_I z=1Ax4KYyR66>bufS}hu{W53!jR%>k*%p?_^eQ0`@56k=2ooCIq;F@`D*_zDwnoPr@ zE}_?yx$`Na$Xq{$xW!kOX$kh>k)jPxZC3h42%N3ArcJ#zQw2IOrL*yC3@#g)ih!t$ z4uToWZ%j(HD!R2~lAoEM7%!qOF|BHsV2yN6Fzc&<$>v|HTTJgOTIH!GRD#rYK3cBZw@=mD zHoqNA`rhHe=H3+7ug?QkQMPIxHDgl_(8cpLIbwc9ro(?^)aI0$5UG%5Y1+{!VO0t(GLC;6x|hPA zIbsA_&-+&#{S)J7PpDEfnYO#BqZo^ud9xj{t16YN1Heq6RZUy4$by*4#Q(*5kK7n; z94&}N+zUd)+{I3-$t+&o;T270B1i*`5&)m#I(=r!JI=tLu0nzCq-HF4ofb%6Ko?=i z#$YUw&SKqbsOJ-GDFyBj-Wm{B=$nBaND}UFWNOlU=BZogFENg0Xhe%4s(`s(hEq|{f>OS+qpD! zD~0y4ejH`sg?N~|gtY}$IDe|?yD5{RdL)H|lI*z&XOK@ZyUhJh`sY#c@s$uIicm&! zsh_W^Cuy25Eit)N&|)tkkz&!bD4<+VD#*>D%%h=tZg$nr`a@x&(8U^}CoVE>)}sqS zC(cnU;@-n!VZkY)ARFGrRIx+`cmeY!_d#alSSlRFL747A(aVaY5axifh{`k}{dHC? zY?GG|hd_PndN$j3vH0JLW_M5lsO}Vp!_1GX_P@+5_ES`+Oq~F39wTOQ(?C_>J;ce>4x#ccE(sX=2^7TL#@4lLhT3Dy+RoNI*ak%F-Z<%DV`HlB<#q@uVV)B~ z6U>Rmny8;H3}UO18>41`VnfsoWA@hw$YN7%EGxvZ1oaW`8-oaPs-(hm&lAkdtPw6y zoaB%W6o=r@a%Y#dm%zTUbUKr$S8;7dH;>QIw0`X9pcd7D4sWfJ8 z_-X)iepzzlqnR%Yu`89`C}Whxa}=LulGTL>d=PG2a{M_IS}ynFmF)AIeA}reJbpQ+E7G zASrAFr&!Jd20()x1ax7tEB7*!iBT(N<1{TFtA@+}^%S5}~ zgP3LJn4b$)+T*D9KO9+)ayyraxB%GvAY6N2ocOlapuh`nAz*t3$66_ZL%QsF?nSy5 zv1Cy{R8Rp7OO3d9BZfQndPFLwd7+1A(zzy~X6~^lb{W~)>i}N$bO5-Dup+i35*zxav?Wnf6u*|ILAZOoSrk)X=WfF^R3&*xc51wIB4_6libq6l zP#1ZK>z8WfQk0q!MV219dX7-$WMfBZkvp86dH#Skp9P912y2vjXB6XE0F2ukAW?p= zKn8fjidb1#SFTl|ajN&6n;M5D(4A$lnpCrQ<(ZvT4|S9aSBm3Ar9o@?^WcJf3537A z!?+NOk3*~fIBf1ecAlNk&2*`cZLe51Pn(7a)rd%O4L9Ab2>a-$uA+|Qq=`YFYVsco z=^&{(ET^-N4E<49~###LpMj)g8Nmdm>F0uY91nd=EF? z{Z}VXrYjeCb4s8Ay|6?(F8x?(V!Bo3EoCVhIQ(+1JYMOWfX+?f?qq@Z&tSxsSb;50kLu5;r%3GbwR0!r< z83B$va(9yUYYiLRfGFhj5`lrP2Mjv_)8IS<*sQmK>U^cOR=AYaj%Rz2c%Se zz(&CBlOpQ0ognpqo^;RnRhuYB9V>0m;$_k@UipHj$0{J5z)J1w9X}DSS6-<9j4~G@ zx*ftgjtD#S?5fR`(@7ZG_7{s2OGKr+mnm~qiiOqywO2dIXTq0xd(Bi_B#lp4xw;tx z^r)e#^ZT&c{t&O{-=e?n>^QG0kosv#+x zM8>ie8?r+p3Xe*BM2W{VEz)nGvmaN|73nEFy?tCQG$^M+-lZx9cRJ(qJc1Cv{lKHp z7CydevZ+=plXerd+`skBn9QiO#vgt>mbAk!gNJTRJHD;at+GV0GpbG6Fspmqe6)o{ zvy{au5CyM+q�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%0A|#UIToY{fuO#vijmz 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 j(sf}zFA$b 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 r(pCS1gQXl6#- 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 z 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
    {1Z{BMw1^Bwwr$6>gjW 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 lDe!WMl3CYfcLd8SnE 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 z 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�sm4dWPjD#Qf#c>k8hWiTJx_T}G*SB>-x z=P6m0i!z%TNWLAyX$fpy;#Es$TK?Mj+7@JPE{ngA3SlnkR#Tf|?ayf0OkYjvS6WJT z$Mj2}JKM&`TItG)%lW3NkBmF87D$koehaax`)M~_)@!0WZk*jL=cvh!n+0XVR*$qy zj#{o^UsW>AV!ak(O~=M+jE_8*=-B?=uu1YGAn+&{lOGTlLW0Ja1IuW4FTFxO*0~S z6H#G$7pU5GX}vM}=oNQ))k#fzr)mye>m-rtTha9VY|Qg%uQpj7Br(vXnBbzj)Ioc2 z&mbaqW3q8^KA}X(k5crJlOP;8%IJglX!haiILUwDtRrU&U z;O?A!Jsj|pgoj8I&)N5m6gr~Gu?R^E=SCH?`Jt?3Z#qMMlWNazvLv z_d;}1w0Yc=QA$^K;Rb$+^<_#mfZ}up2GDp12owXvAkgM~OjAF!0(A3rKZQ^)Mp$74$Z;u%6eja*gT{c9l`{-da*(5WmIXBzWP{ij zMWr@@jpA~^cO)|>Q$_Y!NZ2hgwuD9T1lGi6vNLEtr)4F_dA#>d=EHZKR|i7Ydwj%$ zF86J|A#6jqV)rFx;Kp`*Dc5x+U|E5K6$B00|d@T5i2G?E>D1GwPU=bLD_d$mlcrTo1gBzF}0Jt1K zs7$2jf6GEj6sCHoWEv>QiZam)W>hbah;XrEVzd&2=kOnDd z9#VLz)a^rMocsj{9k2>KUvDbB}1&4drk?o{~i>6?kS6>i^i3`Mi8pwI& zn2x@3RHLL^p(uc!1y)Cdeir!>9se*1uNZPsIC~yeixCJmDRP5|5_q-5dAb-ifp>#P z7kC~xTZUJ7DHf50Scc6NQWw^YH+d3lXjU!gfYk&!g7#@&!j0T$gX439iZW;0#~Z!( zLPlu-0x4v|Hh5k3kdFp_0nlaW$c{&HMe4IyBE$xLwv{t+2O4rBSQmTy=wXzIce$5n zKURkrMVSoJi#y1c5jU3(S$fLkm%$iQc$Om)DQ?GiI%l9dhWQeX7>l&Vkz*M|wI?}f z86GCtmQeGSa*1>s$cNlCmqfP*<|v3VCz}7~foj)GlvGo(0c)$d65n$oQNok234fZR zhuAojL8)kTXq&X-TD`}8y#IHQZ`DlzsF1;UasKB`hxi*)Q--!Pm=Yozoba5`8E6H- zn430>vzaX6*?G1JCc5dCP{N09X#m)XeQ(8m0_h-yM_c;Vm%#Uff@o*x*pB{2USk3S z_K6ZEvKvq)oj*xU{h6JJrit#eO$14hjwT3$cZ>$rkmt!Sfap

    NqvOa; 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

    VH{NY!x?WKCHoc6jE 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

    {*N6(B%VlUpHBGFk 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%0A355&Q%f^B?qxV#b=?phK2RdNnm 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%0DT6Pi?ep$Bygs0HMA*9$ZLf)xIF(GiMc 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

    ZHMoO0N-4l@|#b~AV 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μ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

    &Gk<030Sp-8-Ph2HqTUh)^~p_Y55 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 z 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�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ⅈwT3UeLr^OVKwE=7;UIAVZ)XpA=jl7blmrNE)WD5I9RIIh!ka10tcD?*S>r zd6Sp2f)kVspO=em)uv5(LAS4YCzn@QxkFyLC@4T-^{*P`U}}$be6{U-oe+jccfRyk z6w>ZZ3MCYCxC`kw22O-wfY^fbl{1^kq7OL);09?Ax1^c)q!qXW48alXfDP^;6Mn(z z{$@8YIR+TQGt_y0Fq3-!q1RUDAdJPhc_qxAdwL?9_Htp5js3Ys4eijxcL7!t1(v!$ z?3kA;Hmk}vNMR1sAh2s_3tPLj%~j2?B>VB2_awL#@i%tSN$eySTXHIi6LF7Cn<-^~iY0FPiHe<~@6w|wSYReS!ceDfD zy)jvTr}=09;SU330HjTO5avM)n1Bhy-~?d6+ra<^I>6G$-8C@X6qsNO3|*dE;-(Qt z)T>vgL3sX#lWl$OS1q^07h$>`fT-2{x{*4vlhu6Zc*X13#b4ZXV?3%I+bQ&~s`-3( za1NRWJ$qWkw10b4sJRw>fCnPI3NC;NPQVmQAriv91HgdXQ@%#PAQHr&3Y(%#pJw71B2_*pl+ObPKH6uI42OiD~$^*9X*Ez9#sp7HULpI*GnH{eUW;UT&~fc463YxxFU%FjRt zbU*?m;0Yq35?~+_HlPF4p6yQ`hRprteW290yzZYD%x+%QQ+c=Sz3(*wN`js))ZFMz z{OFN>;LW$YwUHkTzQy?=T^yg5OB?|bKm|lV6ia~znxF};0OX$_0emaz7mCg&qM2e`^cRD=Wx2#_x(OfX?W;sgvBy})$n@Gqsxl`LDjdXhdbBF7hz|}BxJ5uG0UbJW>e_{r2hxJQq85nyD@tO-hYb)eY$#=+lm=58n;_9* zm*kQrg<8IhIkV=?oI88|ytxC>Do%Vjg^HT0YOPgUOMM-6?AWl6%$`Myi2_>{2@uGg zYuD}qIeUrk^*a&8gXM(z3E;<13Un!xIEV&~J-hbp+`D`K9<&1tF{GhBWh(XRRT->b zd;J<#HrcajSFLU98*YN&{Pkk|OU47D`1622jWs6408>b@pn?N9_#g+I^wJCeO5k0H zVTKxR$RUSdj8{bzTg{MCIH5+ZWrA2`V4z$%9T?jyOqef)xXaX7jjNp$y z&P?IVkj^+b#e+#cs3emEOu}R!50b!vBfWfLVTW37$z_*bewk7Sk&wrOYUxxZ1Bz0` z#v+Td(Z>S?N@S767j=Fy0-hu6$>#{p_~Oh6L=rjV07otfA(MzEn5dJ68tM!xEktr9 zn3i6OX{MUObkc_-nF6XQCoti~1x;8Wi4SL%_}W$&@E{2fvNl0$6Bpci!3ekN8fc(> z?g=QMgce!kqlh}%D3lK>i)^z+NFa8S6pF16IaM9?*&)fdhZ3!Hd4Kvm-KOt>pB7Y5b*gS39 zK`$dkVoD^aoFFbLGQSPC%qy!LGZX8!i}A`itBiBsIpbU|xg+ST@418Ti}BG)6H7wV zBs}`~)KWtoF_RWwu65=x?;!yyPecNP*J6)OdbK2ju>lN`JYh=z1W&jvvoR9LPW$Y( z*M584Fuy!=+%Lb}GTeCA+;_`BtDCs-%0HVi^Ti$sy`xV{K6&L%Vs3Tz6%SCy#ocE; zG3T9sex=8ypO3z0+nTgNB<{QKIV$qkVGRBBqhgFP`0uYj?fK`PJK5Du0y>zR?si8v z1ja08do$k7Fov;mtt)8~G*{vvxV*$U?NJ+)ob{+Tu{vN6YgQ8>_hjb16N+$!C)7db zB=9*HoFsiTtRYZVC&D4rVTW~~2L0ZkKWg+3f0M{x9q^YwB+d?hFRYyaUuZi3^6qyB ztfCcZhQS3AD~rm5Ak3JDv8zpwdX6dplg#*_?x~S`PU;^28zu0)?^$gR-5bKhT-ZGw zv=ELegroSl20HWEaFB##Nd(>ihc^JR4m#xF4vkSnBN`DE_M;^2=r=q6H8F}$w4x_J zS;gSVOnJO>paZ|C!7v(XVn-Sw8Qs`MH^Q=wY0TdB*l5BK@==c~f4* zYfr11<*xS5HOg|0Op@gr-Doj2O2CeFEa3?`r%yU^j*h$>zz__IP=4xQhXc?f=iKH# zEG2WIV(UO943Uorz~PY2d;<>~`ABOXk$%;b-6J#q$xYmGQk-#fApv3L(zuB-c<4+g zP18v+hHVd??o49{ku^(P*0P>NJ!nInq(|-zR04EVDgjTZLe4D|paZSL9*(+)gKAZv zd(eRnCc!#Gh>oIUtri#}Q3)7Sq7uw>ogx=G1dvKon{+j)?X(F%mBQ?a0*vWPUFg@A z!gR10bLmVWSkAXyYd3jmv3}4D zrgKFoK-|eLusQ%IVE;PsE478$&>a{#3d$X9b#(76qlH~+7&cl7rRs( zV@$?4CSg)@3{M@`(uC%Zu!Pl2;e22?&cv;s4zg0shm2ZKLpjv1HLYJms6!1o3^ z!2gZ(ehV1OL^m*)S$%7TOMNH*Fo5uGfeq}3KRlzZ8#WS8yV^gC-Oj&sw#TK7U2DVf z+AdtGRG(_&Z`(M0cT{xCWo+(rTh^gCmomF?KJV5Vpy#l?x8eCK;6OBe@kaOe((|1Q zU%*=5SN^Zi|9ff!Yku=zHt-$>pVb1?!3}PR#MDnO6!BPn!V=DhnqBYa-7@nD7)He+ znVMQ_i`}^$2YJV(&GwK#`{q^`JYq1@ttqK(>afC(2IVDcA$nG-uhP4qkjKC5z|^%e{~Y3 zb*iH}zb0{UCTEM(TF2)9LdUgxV+TwMg>fAxRoli{I0jI0_fp%2cRcnWZP!qJ$4fd# zeNwh_)`xiahIn7LecHEv=l6Z#7kQ@!ep)tkTn1*C_jFI^eomKVgXc(YP=EJ_e?>@y z#KnI}=o6{aa81Z?z6ArW2Ram{RucC*aV9^|bZo43Y%kS&WVcV;(__0gRZpdROJzs% zMMq2(cQzJ%=jMhcNN?D8cwsC_`keqd&Z?+1TB*ILQ- z29uyj_eX@(V0&*sgpg=|k4Rimr-Yjb6A$)(tT$n5260gs2@w#5XG39KM_jLiKl0^T z2L)r*mT}PbYz77YQ+Y&R9EgD!m~I2*i*h)JD9C*?xCi9NhXh7`1O|TO2Z+wVhvT<> zss@Owws?5hj0R?mnkRmo=Y#gfh;=}T;aG`pKn;#)f2iOF;h2t;+}&kYlwY`jaga`t zZUJclk?wAW?ndbb>6Fd^i2=-tE2i+V}NS z!gKSEbo-5!%lb_i8KooI`$z1zyF-auyLe}2k7nPfn%1b{W@Byl;#zYee8;c!Xuj1Z&7pY--Lz>Y{yY z&7ioLHO8hrhL0ug-9hXNDt&tpEBt`&I+=E$6e;QuxZ@X@RuFeR0%G6#N`M~vaA;fb zE~?D%6ZhmdG{g8tMblAgD zQh4=#c%s2~L{s9*Vg#3RYIK=`C?D1yYtq(Y8tq(cd_|@V1qkE^Iy3zGZ87N^Mbf>& z*Um{$jxte&)i(%f=#Msil4fsIa_7>_*E)vrwGr5w5603g{%lK* zsH73p{^*CpKyJ+3uC_!b;fRBSlr4-z^!@KEBfxGfaQvPB??Kr#%e1tDv}87rkT8}E zTcofsC^-w9Y#(^y_ciS>_PhVrRJJ6{;j9Y^q8?jJN0M~y3R@Elk!SmO11u54xO7uC zNu$H~W@VdyBqoSGU|SCYI5<)e+L}0y88Q|N42lDm3jpckVlK*ZL$ScD52@3_U~f&N z`8e?5Vyw@vv_!+Cy+g1VTV&i(Ec0<%;!-yIXp)#w-1pe5%-FAQkn$z5i5#1pZvDR* zVg%|w1pHG@FF%r~EQ)`eN&l+v_{`*pEZ~0~T3~1!Qojep4FIOFm<-v6;Io@-52y6T zm0CuZcE{z?j^?sbq)s~^@hTU3hZb%xrGX*~eX*0)mePc>%Z>~)h5WyMIL>6lj?2s} zjD8VB9V0=9MN;e)9Q4fBMp&`|S{jS)kM`*fgWulO>81_LZ)MIlyLbRdtL%tQtDE+C>H2jd|aA;rs6%Ss&ECM%?ZGo-%T3&YSG<5IVw*j zy&x?gtz5+9L8QE0t)vu4>R;93Sk-m}#BwaZuRwMwY=VSvO*v9W*X^Nv=%j$@sTqh)1DeUlq2Md=`BsY^vc(BTi*VQH6U(-c-A zFH}5j6A^2EQq2_)PM)oE<;EH_P7*q<3wF$8K1uW01hYC7T2$5Vj23Z?7M&a>1$ML~ zQGVmWX=T&;Mu?s+auQib=IrcKteu&E8=rm?@YBS|SyEY9BpHX`*ydM!N;7-z;A1ZS z*e?qow+Q9Tz<4lCpd7169qnF|!wT3up(vQWdGWZ6HM=>X4J;y@x7C(*;8*U81BtL zrD~5JZkmt7wlFEQG?BYFX(9`(pH-=0G)YTvDEk;tCWPG*=MP?1u0Lk2Up_8pTPYWd zNAzr}#69{#!d4`x2+|24wUcA+@*bT_35B*NTE34>+_}wkPBqV}M-p|-%@*;0!O{)Nrz8I4Tf_Zx)@~3I5P7P zQ}?A(;#=_@JCs16IHUU8IeT{HgOhD;vF($DBY)+^H7Y^!Xt8`|GUG5ep!rx7(O<3F zJX%@J>{PP??Wzkb+TC%7X^qDXse%I9!bE3t8>7opURc8dI$&_79d%cp-_Fh3fcIn?jg7- zuysNRK3}|V^Df+II zr$r6J0B53{j&O{PaQ;mict1rP4F7kK^&Qta9}3S{p3)MIzYs}x6+mPYlx4g447vU3 zia(kjm@DJy>`FCE`+QQpDcmht-A|j7W-(T-%8|#_-Yu8-^63^W*koT|PyA^;R&~$N z$?SqyYZXSX0eH&Mwjv2WXk^z~fII5E|IOrRd{ww+B`d87F!5G(K?yiRK~;Vklosco z_Q@&J;{*meTsX=cU~?Lo!i7eFX9wOx+)A=y)TUmO&gq*r9I@x?!lyQ$AZcnt&bC8i zsO2kJWdnPw-K$H1YAqh7Ya;OSLij|uN*tTYWOvXA!87b@@a!(U<+V5*beIQuo=qv3 z0+bKx1rH{{A?v5L#E`j{w8Y-3?HFU+xmb-$N8McTOz#&Q-D!TS1%Q`Zi2@{Scc_Sw0Wy%pqGNKbVM6chJ2 zYqB(JUDWHK!!cy%4r#R!AD01)nh^rCEe(#v2(^{u(JhEteuRm)KFjLcai>3+z3{(_ z{HndtNS*p+-ca%Ml2&~J?w!BYnO-zKUTSOfPM}r1b%nSxXZ0;XZ1}|KLa5p9!CDJ> z-ntt}g=)xR9Jp4XBfv1ILhlY9omZjFRh+lD`|kYkb*VQS{--KvdE8RkP{IE8Qc?{( zEla&zxU0iGWPqouqv*Wc$Gk^beYZ>kPLcGL;5VWr1ftt(Vhc;j8j z9!uV#L6SbxxkQChl7Mlh&)QLZ+k))F3|?2g#M-9M`b<^rarwUi{KVaZnll{nse1fk z(xyd%+!OvPs2?S@YYCT0c{tQkfZlXt@Yafq+R_`gKLj@9j*_bGCsE@u*{Ont=XeE z15_({;X@}@I|y8k<n_)-8DbS z3_96$J=y0fCd@dw#Y~6b-$ji<4JA%v8uL(r9lVImAy~^Vmjx8S%A1h0xUbiT;DcKA zMJG!Ps*pc1E?VKVdq)9U()m;5Zs&$UbE8zJsuvI6Xpy4}l;mq_^e15Y-!kiKPD4KY zR<1pW`?`{-@y9y9o&ka0zHyK?vGp78#%tsHd;6jxWHFPYnCbk4RPyoWZ2g-#7J~)I zE$T50oVWk5iLZ7&kaKMQ;V;Gcv1;Nj;91|P=V0Uf?}5r4_$M^W?ctsI9$hVzf@akS zc7BT3eU1K!>?OhT=>RSj_G$yb5Q`Yyl!-#wz?9?vwIv&mgQX9#|IHwuL@Fw>8hcqJ zn@B1BGU~v+my_-!)fI>GqhIp>Kxg$l@!)@`l)8tSh4P8C^4Yo$aQqYju{BG36kxgD z%M7Qn1Im02H?A^2s%+K5uk@|}rkr%g#Ttt>%6MymKIs_D4ZyC@B$r|&sdxsAeEMRj zJ5qU{-{I=F>JW(MWuu2wjomOV8tp&1W`BLo*E)R_ zIp-YpTdLP8U8=HA3=#8&8(qHL0OZl*8lz+*?WrmYYuGN$aTVP7i6qbFA3ZB zvyZr-jpUZWVtI1qoF08qovV7Z)!6H8dB^&vHQ!x|U$JLZNpAj=9Ty_YY0&t%M;!P@ z3fWDUdl-c#K2qlGS5zJ)dhhzlrn1jgs*RO=a;g0du)y~N*USBI0>mq8-0o-N*>9}~ zplYpT2A}a!TRLt~Q6`$NHB{s~!-n&y7dZH#9~C%+WE80dh#7@lDV$KQfO?M^e(~yRDKdGpi1iwOkrn?Klpt2G9f3E> zvJt`gisEdHSP`N4RwqT6!c(4T;ZU=kPZ4unj(|CN+wWC}_RILcF@D2*B)cx7T8E&SCv!;<6f> zc(lB=4{mAvvy!o0d8_k{8AmTHT^L|A+9Y8`(a*P(P7cU`3+CRoSf^=7R8~0ZH0cY> z0QtORbuFHK`U$oQ$j5dE+EJ=%<|jAP2WOTw z-!-AXZ$xp{A0JMzu4pKBpu(ql3lE1OkaDG^0YQN*w53` z6Xqa%ehRQ9NMl8QA};Y`DQnaaJ5R7Ab;B%C;lK`HY$MN>A{3_Ab~6OwjC0y+w|hE^*BYWY zqK;`C0=T`;-kMQhEw*vE6XJR&{P~EsQQg`>}(qCn6&p`H4TYl zfAyoDlTP9hy=9tesd1_ro38clDM>wX^mRs36sPu_vGG~fBvUrb+0~+4(}xhz0RDL9 zV(wvIqDbmeAhWlIgcYEn!XS|2ZdQfV9j9CrFxt*>RH?NPYO?0z8}?>S-$J~Deb-37 z5#o_!1y=1O8P)c+hjD4*8O}D_db*}@);O2pgo*ksbbpBKrC(*+6erC5!87+>6uGTD z#m6h?T1+Dp zaC!*DSusrcBEDRlN}uR8KRE{Ep*At2@;$>;n5pH(1NQuS^!on z67!={YgZv(IkF^S>9Cl8xgV=W4fv@T;D(IcJVu_F@gjg!SC^lP&(z?fd9vX#8^?ll zG;6vQo)Rv9_Ch@x{`KYy*m)qIsMVT*kb%r3)k%XSa)5A=k8p7wvwfa?=Pdrpm&Fw` z@A`}RFfn=K!W8o_?t;m-iWW9nE~}TyPNsI@uZ-(0UW)F2sV$^W?&>zgZtI3BoPA{B z@UCEfcdF-euRoWNqUf_`A`>f5Dt^zFuJa5m_G4*Ty0s(bw*Ut2T^~V+1yPzqd8po?E}K@l4ziw=-y`W9+Pe zKif3DJ(*>XfmToqn2jw+=qAl~tpBa`tdQ!sAQFsBYYOyw`onVx5`X;lx6P-_F0nUhL)4dlidx+La*O<^71k+b&iDdBFe2gSG339t} zKzpB=-&}+tyrxdp{iLSRh2$)8tCJy_EY@cwQs$W*mC%h|O%!_#f$fN`?ub?GRLPb{ z{&+8pOe|HJQ?0X;DD|#sQMPM1O`IS;0u(QbVcm|vmmFXjNberN=wVNe87>`#A&qZA25Q|eh`z%xMu!D-ACXhY0Wr%;n#OI zBZeh6EZETGCfX&L3_QeR^=Yy7%_u2tvqpSxV zL_h2oj%1z=xWeShRurhK2H)|?0RfVS@X z+^)sfOMfGeIRf>&QApvFA;y)KeK-1Z0NBo}qUS!4ek!KIILH7|=5AEE+Ul(Y;eKEg z=qDPY;~Q*k93u!4BS#wRg5gH+sZcPEdCBo2I}J-UD)Dk~1T_vP7LPXXCTatR=!;d| zP@(ZbBFEQba6W8)Du6QICvrcdN<(17!wIla zzTV8q;k-y#>HEO~;3NqNcKPNw9yuTDknxKqWl6ELoV4^F(N%EUColrD6h ztCj9G-A7#W!E*+2Gc~-^d#T%gGp0<9rq$x4SpbxPbIeFKP4Gv_Di=@oMMhBHDhQ*^ zAOKSYdhPSLLq~ivRS1C0Elja$04_N}+}gA$`@eO#F}e#VHsR*!;BXxQj%;b_i4wDmgyZa@jBvnrT+3O!LR2?THp(ljxf zQt;Bw*d2#C<;lwFzjM~mx|v?28q!gl;#iw;;~cb$nz!dym9Eh|8%4teWlm1Z=|GpS~KMR#!3(ZtpR?;;Fn~WATDF>$;ZUMR>Vtqi4=_B1G z^z@0sXM-MHtV5988n%SM%T5IsS_UZB!zr{9937Iz(?>Fkp;V6%0exnn1uV(sJd|`4< zeHw2qDSd8kZtdZA{T^(Bf<7yRyLKBjbvkG;=WPLtvdD`H9WSwLk7~WuGlqbLRH!!L zW?Ps^n*_95S7;_rE^k@=`u~|N-alK?3@z}pZj%37D2rVpSKG9EYQJAwCfVOYPdBIg zXUea$@wB$FVYbb_Z_FZKY5RVi)pkSl*Y=0#xyQlJi{MY4gBr*u7To_n8`D^Ap_$>* zu9S+SlIdF+f;R=C=d(&aMHBzZDB6)6T6jBTRYbBq$!{GEL6Oqm-K4Spo31b91D!@x z@60i6DEREkbWJ+^-M&wUsWe;v1uwDYeWq>x{PCYP1=ntliG|8LQ*ADFDBqrr!rs!L zwVu6!;){)^>kP zhdM34KiQb#?`u1McFJ4F*EAj$-!>39u=r!`p7bf*bi+DnQ=9LtH?1|m2g;XW>)K`I z-?h=(Xk)U!?-?E8IBzFdYJ-PvY({I(61~*T&JG1atp26L{AiDKB#b3O_JY(Mc=F~mhz`GxZx=_s(r|akCN(F2e;B27 zZwp30eo2Y`U_LGsI4)8+F4jLTu{|#JIWCJnF3&iwC_S#!F9=2Yf8b{agvaarub=Hs zG}4o$^h2krc@cRoYr$@j{69Zi7Sq+T|DSb7%f;7}Rop4Oj{b|C3c=PotL*zM@u3ve zmet-QD#5_q;XLBt_PgPlp9hHff0T1~*NGRVEjlqmRBOnZMfq+*+BBE_&~Dpz`CW+a z{8&3P&*jd$WoHCaxdFydt8}8@(izJSPY9bm{fnPnw;FJEq)6>W7L93ux*fOhDU2xZ zqm(a0vmYt$iCIj%J9?=h9V$nA`8z}83|88(_PN7cx;Llxy9P9nI#ZfiLtisGT1r-H zq$Fww8+{rncZ)a^5tib>c6z_POzo6KYoIIS4ShUqo)&$UJI~x$^nzAH36)d`#crP6 z?v-tBDCsRUf(N^GH9Keso!QxWHpQwS`47lCo5^^=CMPqm*Q_}A3iKmRoyUJIPGJ6i z547)Hd92pU=0NjncWZ zA&?oH(*ya*=(LGJ?U)V>PpV}6rKR$Bxo9z?LkrceE8y)9^-+5&E#JPTW zBGC7dzu5yE8+*o0E_#T17vEwx@|R~?OJ#3|!yo+(4?+Y=V1n)e}U7iB+PPtfNm zHdb94q$Z9(4oiz5j(yq~T}>L7m{QMNb1rIXnq0%Be&038x!E5yd$T&+ffpZ6FZNB} z*ZLySOLjTV`fzmo==!n&W?OI!ystmZWv-~B8lBGl9qjWVOAr!w*KyPM)(t7Jmb4)%u&?k?3+; z)A;sXY}#*LJvZc1Iw<1R#~u4np)3;R$4Wo`C?^e286_kZCG?Q}PSuW!mv3mr=Jb-fJxyggWx3S6EPuEkym~s8o z=bSnPID2l5gNi4~E?*jT7|z@Elp%2*GBKd}<No464#A1U^BFHpVlNeRWc+Om=X`!zZ!+v^zrn)B>rj0?O@`VJK>7eM} z8?L15eny6~SY?quTSC$rSlPaj+^+nz^r$0inonE@{XMXF_GVjTCW|3;h^Hjgf2(SH zUonyr&qnX>oUB^A4)-xUX&CkRGj-gkfJCe-?9`mg_ecSMi#t>FX^E_4c(h#QmRr1% z<5;1cG`=F7hM1rSqVxELJmT?+7s6NCYT`;Fu!X~9bdNlrMb+nCX z6;V@BM`%`UXfP~Gg(ekNjtAHUD4GU@6D7lp&0PlHEgPh|1%1QY-(LLHyZL9&aM-&a zXzwRi1qX@au2mBH3-{DSk!Bt~?-@)T@k|)D)KgxaT+xDzB=sE~**a!^dL5feq@-79 zoK<}MdcWQ=(4sl^V+CIQxHdZFmFnA2^S(yd;BS+98HV*w*BfKY7P-D0kYj3Ww|{$5 zHm7fFdVVr$orzq$%w|9?w{z?1EN^JrVC2Awj#lM<^XZ#xI)!<0WGty%=}f-gS6?#2>~wABDNXpRD4h{sTi%J=mmpLygEY zgS{hJL$)66D7lNBDSDP}Z7p|c#e-w$r7-kM4M~_kUIvTcQ2`&2%?~g}$%8@qts@vo?lw6q`GTCDau1DcS$0tc`e*0B zLWoP`ywU3RkY|jcd6CLj*!-lEe+`SS*FpH&{J=K2~TzR(u^UZ$H4P#sx8E z5%e(cY>s>_RyHBf;A!Z(VA4$`@x!V^muFY4(yYU4IYU$?7-pOqAZRqib&$>2dBuqX zK0TSogGx&NnOxD@y2$eGr{H%P6fDu}nP*)+z_-gq`#nCqzwN4Zv2E8PDj z+9-NjCmt1c^5g1=<~>%pgzM4xWr*fdm+)QdO8ddY=3Skn=>6%xXT(TM9<=Ut{??f5 z@>P!Z;G6DFAxJExrv-5Qh-q&^;+TbQ znk;>GtRQ^qcOT#JG^xh&IGHN=fro=9Wx^XWgiw`&6w6o-hXNsFL7x^Z#xG4iwuB2! zv46AE`^Xf$DPR~;;*nA0aaR`jm&LMAQ7Vnui;*mP(aT+7#C3=)^c|~Y)D5b(5OIF9 z@ek&}4?>Rk;U3;a-b=%(Bj}Mb7+x~IKKnzy&FJCcGZDx0u5}2~AYX6mf~d%?G(XQn zw&NW?e0{l6A6}p6h<`qgX5`jB3Of8vU-B26wY8(=Sb_$mt+&2=S@1ZdD_DQFi&gZC zCSk-J^^MEBLS1LHaL4fdj%Lz|DqTKg>17)aCzLc7q`$ z66*S3pGYI*ZrX!gr2g%LsE

    %YM%c@kwd&&x*YJDov5YWSG^5SOC?sf+8?pHhXmBNt}T=!lR<( z-$uR+(TBiof=mpjS z2wO?`i1)KlUafsrszZt6NJ*1Y&?~lpHbV)m!y>{dc7oP8sNq*$LY>ijtMA_Vt)7PJ zkLfcNX){8pio%$NDglXDIkK2O=!f~&N?H2|CVG#DK(@ySeg@2*!BVO>)T60d@Amz? z*iFb5I02Q#p1eA(I||hm*)vPopOs4#D+*VR!n7S@QAZ0X971y!T;nlAny@3=55HR9 z`eIpEPqIz`JwXA6mzT|8$Cepmd{WL> zUXE?R&XH#GGR&@;!OV$Q4v;epF{do~cNH8Z_#SyO;X>pM1;gjudnYY2yHSeZGD;o5 za=NEgrFm8*@>ur$NKJ!4RWE; z(<6OWhesp9rNc3AI^Ji^z1W|pL?(RXV3kqY$;z^lk@^|O8c2JgjZwxLv`SJmG5-Cx z7$;X()r6h)f|Zu9Au**AO0*8>Ex1!5DuH6TBL0#5!b0U9TB4PVA~nQDO(-2rGpq&J z9Zhw|?e!)Z<|fUqe}Ap`H%p$Brzcb;zb|@45v|t=t4E9+Z%$l zmE{?zciYb8Ch|_mP>x5r)76W=`sk;@SpC2qm=3eqFutVTq{F(ZNGRK@~&$3C6H#fCwPStztu87~Q z;oK!rV>NdET_Uim4�qV22V`(M#HWiv{yMps`c4_^Hb5HXy3OyAN;QlFToEdaTTp zqrYObbKj>!-?1YpA@Q>qCQVlVe$J3Qb@N(4kqLIL0(t1ZLrM3Y{|Qzf;y2b1lB2gt z3v{G$q{8g+*pl3!6HeIajd0I**&Q^;9eNYgZ+_D0fHfciDB)e{pUQ0Tfi+p-wnaJq z@(3D6lv6pyf2X)YPZE3=QZXv`=v3|=K{@(!UbVBBJ;ncc#DEGCj@=yJ`YZLQ2{&jc zk*XsD*t)0$BFD|MQEYH+b+^lI_*sW>qmY|-6a=LhoDnqRVwwLABG#`5aH zg?)Noz?+k?h~4Z+otR}hbks34`UI8(l*3o!Wxt>g{jL2YjrSDj5)zl|!q-{OJcdpK zCafq{5g9kY8FH*1dNn$}YM0RFIBx%x?@&D@KGI{HJ!NA$4uuVEv46A5>6L$|r!jQU zY^}?WuI8ke@gK7sLXdYx0^1{D+3}~7Nx0Aubgw^)(Y_0@sp=_GC=sFN_O#V)ba z(X0moSolpn16u)h<&@)uJw)e#V^+;Q4gCHt)o7^3MK(&Lw5>1tOa1AL45yG_(1+%Yih_ z`s{Nus&y%dzbST>jRQxeXwRv&)MEgrL2u1=Zon!Rb$>d%J}`7B2VNzb+w&Wk2vb`| zS|0BN_Rn_q-*RqVhz;DX4&|9nVNPT#g;yaPXtmqov9tETDLINMA266nVyEbNMo4{g>1|*CV*vMb`O+qS={vQde%sZ?uWv=rgb3`tR#Qab_-^ zyq)Vs$5vDRm$uKxe%Y51Ax$Ua=QF|^bZZy)wc8x7+g@r5owa-SoEMk)vmGHj-3ar2 z7=GI+WVVsAv=yh;JqVprb+>$S*a8f3GnRuNcjw(7d?e|le<2{BFOMa_&0NR=7CX#t z3sBe7v42-_|4wof_k7MyX4Do2LM}>bme|IZu9H?vIj7OyE_!l!&8<3UaQ7jp6$f)% zVyj(Jp06*cuKFDxH2yoTz`oUaeRV8>Y7e^|KEGwQxZqm9=gR+cH@)+T9w`b=2{9U&e zZ!cbiZ>EXcUdd~&@e{6}7nfa2Mzjk~i0wAoXRospBkWSA^We|I2Lu@Jpa`l<0*$h| z(??>&7R85?+K_*(KmW$M9iCboGFUtre7nkgeQ`5!-)Vv9uDy7a*zb8w5P=S+V6-og zlD5NT<|t3Ll!t|`{a7TMfX(84Z!o>93}Vx(wO*RuQ_cKnGhS>o zv#*vb>=Gh#TZ-SLJgeCzZ38@<5GfB)=g}{#m@4zmRo7eAJ=U$zZ%|3^nLAk!G3z&{ zsq*+F9r+5Sz^3C5$8v+)UY`w>Z=rO8%h9@CZ1V@%EV5kM@^n=$DEL`PiA z+TFhH(9l9!%r*nbBp^7{41L`&Hth5FZ@34K{DlQ1s>!Vsq*Hjlu~@7>`QN0zySJ8H zPWo6d6wYk+IGgBH^>c4HDLBX3vaYo(GkssAS-;_=$TSwup7-G6yeH~_NQimV z5q%21R1?|(5%H3T1oV^Vmw&V^FI+GB&{Vvd{Gqbcyl8^I9+-ttt6EA1r1l_tJEa0J z*>bCI^@vMHHLur2DR4iTE+_jVloeuuA1zIcUy@pf(QI?aL8 zO=a-E7#9rR_Ozf$Jo2^6!;v6dW{k>cHqzDf-^S9p7eGtr-CweD@57oHq%c0fqSmVd zcikT)@y{C`?`~>)%Qo{p-kb6+tYY%i%aVyN;2pPKcix5bgS)1awOusn4F0C{&XUWmWaVI&B7jfE}v&u_OrKVON{;c@^`+I;uRTtYrEhndAkMxzo zI;`GdN7i;phOXie`gIDmLlkB%Vv{01vlj+w{fwHo6pQH7z<`*Z1VLThR= zQM4vZBRo$ZEDASB3;WNy>clGRJr#zntm`8-!{5p(CrAPvdH{pnJLqj60X9Smod{jT+MXfZe=1g; zuh3wRou}$ZFUgg-dW6_PNqTvTGSaJvK8jf-{{i3_FkAJCu|PF#L=J7VF$`A4mV^J9 zOvi=WEF5V~6OT%Qxb|FK@D)7YGA8}$j1%#yCjpf^_)c}5v#}Dt$?@ZdN`RG5dX)@y zm0;Zw{AG>eN}DsIwu))jE`cTo`F#TAF*psw6_!j;-@9v{o?pa2{qSbP04~Qk!?<#u zw(RM24DN=9(OiW5qLtbag}h~_Scajw)ocuJ;-v9;-j^8K%;RCWJ58(04=4qwD>JpD;>WLnyuhcmJc&wz|L}$C+6YrgtlPH8qFHI z{zfQtu5@lqmbCYlWw~&c!8a>d+%l_k-)UiyVVDfEGrNI5A)$;G`ZgHzN98vy>wUaw zUHXye^P?u%#rZYG6tMYE;fbh&>erR&G}0CVWjeVpWK%0y8DGM9!49k@Mk6!C1?5#@ za_`?YtiR#nf0^QNu{7RUq(PEJVCecgMRu?feo2yIqW79PIv=uuEA8>xngso*)C9(`>6wX)f z+DQrIJ(DpH9Bl~pbYJ+6x-omPYUAnv`AK~dnDKjYN3t@VZ@1*~ zxtHC;sfFa-!c6e$if!-(5#rlDwUhs0RunRMYS+yOi-i{zogYSKcNnxE>2bL9*zeZh z;p8r<65mz8XxQ~EIZfis#;)VI!OVp@6M+hd^?97>4!JM;dVY1czxqidTzTc|pNE#l zGbir9h$8X!eo3bjQP6c80}n(S<)^t)d$EoLrf%21XAeGkt7uW(osOh4QN*KTvz(~- z@Ar+3fs%JbD0iNc_q@IL*UW?vfk%^WO3QF^+#Y1yo|SiDR8QSVFi9%v`YzrcWU;m$ z91*yv0JmiqCP0P>1PteG4d?CJPLLu0g|3hwkf_p2Xx&YsD@~x=`A0{b7`LCqI-JO> zn;azlkRwf)EWO&%iEw-DUhVIt2FX%6%Px5K@}u@$RJP)mH!(fQN=2saqoBwDW$2Fc zZ{Nwvo60H7_HpC(Q&@+Kf#g(j2M|?q!o{*`AUUCGQNe*1vxiyz5RLmDH3COY7a&il z-HsjE2kmH+agtL2_9_R7t2Yj=6b%Aa<&|OmjVe{coCl4lA{q!Vq(QEb>8z^jJe>6;`Rhi7L<)&S6ZwUN_9#Hc zI~*%`QjNJ$&Zk!C8&FD^9RUWR4w?c6O;KN9XzWatO1V(f0)R*|3JeAtg8}q=U`Cc` zsL2sVsw*5n!ck@Ybi-LSU%kl$R5hv~ zUKDB!0%UAMv~HMk4>cg#T0NE+1_X{DiouRxN{Obh7hrn?q_W+pBBB&}0fE6mD3=4U zD_r;{pBe!YGQbdZ5D=v}sr0}YDX@v|`hrl?p~@tq{sSS?CWocqPQEbU{{^;DN{4v6 zmLY2BOs^wEo1+3>Vf}vf!Tl9tAT$OxKH?QhjH&*5Q1!)n-qls_F;y>M96c^pe{hbt ze{r~9tmgtG?0Yqma@Z&+Vv$djA2xlXDM>R8IUU>O(BceMI^=`J%IOZ6>Yg}HDUOVvfdEwlQ#5l^DrZwP zOcQiWYC8jwdX@mjm#Dt3Hd}h6*QUn5Vr`io&1ayJ0jG)#7$t9D+SgC%EhbvjlhTJl z#aEn~AIU{^CWm;{x+GRZFJwMiO(N5bM3LLilVgUGBOwXlg_0nJVj+dvHihcKb^cSj z3Bo#X$KO6{bu^B>z7IR4o+b1iH+Y8j>c0GyE~(AbpcjmMPrV9tf*P(HGB`UX7wS<0 zpyyYkuu&P5n+BRrv&hdyaq5W;&iL3Y7$(jc%_$?Ica?#`F}~&DpIqAc5?j}KqUlGX z1QYesqV(;8=k0=Z9HVCbbC3UXxpi=(MqHouH*aPtsmEVqYVGEt5GLxyxu_o%j}teI z_e0bJY*fxxH9gQYt~e&(jk+}Q8da#XJ6;o{^4bZEb9!oe(caT~HhQ=9;FW&)OQHhae4u~*TQs5v}0y< zUbu4i8Wnk@#T&WM*OhjuC=-0U z7)c{|>K=D4(NvoSzQ#skq8By(<5?Ba>@w19wvynzvNdRk7i)sIx!BIxfLHzscf_Rg zc7^=jgt}n8TYkw_-l#Wf#wl_B1>zQsS{ypluc%hN0IhDK&Uyt$7T}G-`DY7>_4)zE zwR+1#K`^|;Rgc7FRkOAEl8CQ((;ZJp6ijP1cyn52de5jP>m}OtXV8X{#cgks7d#s` zX{FU>egBqQrzg}adEK^Y{Wy63RBx$U&8QE}!Wle6PGG@evl{KSq4tqqG=gq4^g=B6%ZVJgoCUzp%yx4Jc*8;Pq*dYpRb z`g#U7b6Dsq+j=Y566Sd0mI(ZF%fm-Y(K!jkE!+|Y+`TnfYu)1)R@^C-VWXS_*} zUY^Y0zTD;I_2uXigJ5Qa5iVi>Y$fK2PT7>DQ)s2r5D;G(aMFRk*=inY=}go_mCtfM;x*ie>QdA>|}mSU+5SaK~*5qM04J?bRg zVz2GpQFT>`{oS(-UNZ*TG*(`|>}9LYCpXsWAfVog=38vVW3bNXX7y+({bTpN*SaL> zLRR0M1<`4aX1XR?%MNG%qg`tIJ?BMWQJMyUb{5xA_TR(y=}zwC#2#!>9#YxGgcmhx zeva&aPGwgn=z^ZuTFzxz#b80L>d+pl6L@2-F6IE}>aMP6jCNK!b=Itw0kf82w3cRX zg zqU~|db?G8LaM7JrzNGKDve0RvEP_r6|e#nw50Z@sjKR z?BNleYr=$8ASZBgrr&ry=b1Kgzcz0EUGh*a>?dz>)phXnly1i!ZY;-ce^$~BzevoU z<)mpuZ|J_%OV9Qv*7OP|Y6OnYPuKEAANP1gbd?Tsh$P;r z7SSJI^;R#TS2uC%MeV*_;X0RZM#yShw^KdebEE85Key%*81||xc0$*2hMa4nbWUb> zRdQbRa-QV>6&>yb|7*5Z1P3>4C*SzO-ef7SV!Pz@qHcq5FXB)qcZerSFz@hFNA;=h zOB$d6cYpWsdG+*u*3*_&!lmQYjsaZHb4mEfB2*2addZiGBar(S|88s}ebE*D^k~Ox%r{zPU-`Hfa}XC% z5tw=ZydNDV$Z9;EcWIUL_O4_3-hmKsaXZyrqA&WjMgXM0=Gq>3gBQ_m-SL)2(W!@I zrj~4Jr+6h^&$|?MI>3179{sRifKE1jCnx*Ce%%6|Zqj}9a9?}-Wpos+YugWVj0K2L z8U$*fK|utGe+m~eZ0PVI#E23nQmkn4BF2mwH*)Ogkjai6F=F5d0Kg>404f2*I2mB% z%aI~O?vP>Af+QIjBoQJsXHJ`+j~=aBMd5=A6$lV0LQsO~(xoX7Bo#rSsD?*EfpQJ% zv&~nZbHs)PN(gMwHfhzeZTm>iqD7c6fdJt^DN{O%=ffVIdb~{ zGDbirD%B4lC}4`asEr=Anbn>>%NecMv|YK5{%QI&>eQ;|gi@_xjs^`zMO5)<`!?>} zx_9&Ly^x8FkuhH4Xle2|a+54$#-M3ohXtFGBw?sN*0k2xt3)78F?DLw@J|t>sCso( z);U^(l15GTy3hDvuY*S0Rx{>DaSzb#zO*T0d@Xj^UxW=-7=d*BMaN)NGDM&C4S6q$&V5*#PDhUT;Y|hMl;@?l9+suO=Vh1j z)hFg=dRRyo2&+P+7h?+o24|aWB3K}UYC?7=2zg$1VXtBW8m5QsiFhctsU?cyLA6af zF1h8Ji&3R1l>`90nX2^CNyAO>X{bU{XQYux4n@?GD!i&l3gJQZT~Z&=P}C#o35sQx zxWd;NXh5;GVO!IdiOC0OhUXxgZHn?{vIWjb=Yv#9NTHt9TH98j*>1c4ZMP(TOVDg9 zo_jOSIZG-5Bf@R^F1yCD`|eBg#t;IK(#bGgbw}0;n{3-973ES-H8rrERLZ7at%RB; zpToI=32}zi#x)nl{zkP|u?ik5*vEm1BG|GCj?CB95aL-`T)u8*ZCBT38)D4dCi+ur zuf;}#2p8!5IOLJ*R%sA6vUFpnIdd zHCC=%lC3MRZ&@hUnRw;JwqJ<3DK{i>!-?#G&X$~%1CwF03bh#iy>iQfa!7dL-4c{) z7Lt4aJ@^wD<0Gb;w&ap>=&NKj(m^f_Iw2UCx>drf(14V`tO`8;-c;tHx612E1E!z6 zCq4#*k9`t|A3j~IcjN&OvG@XsH4SENAG2Vxgts6y=>=AMv&^2RcOQw7@Ole-TJ{cg zIDr(Uap8L*48O;Ok*v#n?IMYeaufigbuK!h3Z0Q=N4lsTWooT*3R7MsC9AlOYlI?{ z*baCkh{=ayY{`tp;-rd6kcI4Xu$={%|Hm6)7_vFl{<+*S{S;_%C2R?*cB>; z+WU!ieqegT%g}Brm7|Z$cq$&8yQ8R%HokRWXw`tlL|%|5MCz#Ga{5@hvxXSC)&|)P;;Rl zgDK2M&5$HEIu4Eu*{Su>D>|T~&J-Ov2PJVwZB;{^Q&{D{qHv8?n=GIKrwA4*e&#;5 z+#M#0sFaNr>p;aTo&{A|#xmAzg8>ql$v)V(HasGZxh!GJP}s}Dp@;^1940~&${T8s zWF+Rh5vP)Ak_qT=UP$vH=&Un4uGFtzY6H(TRYxBGWhFhN(Il>N)svpo$BKMvLl({C zAIEf&F&d1gJTJIPI0?^f9DJ5!W~rw|*wUZ>{O4%Mk|jIFZw~U4UutAS1IH<}s#fI) zDq>)O0Ne4mT!J1lft*)hQU^lA|bD&MA6)HnvNdIDT(%$hnD>$qkWR240H)B6tzG!&v@ zZI@UlipU+ld^p;A2F@y2h*r_sQ9T`XsWO27ced~f=YIad0vwmCVjP7vwHuSib$ zt+{QIonkd$S_LYKORnN@$=Q~3M!7$Ojc~_uN{k1Hg44t}?C^MMPdZ5@G9N&jWybvB zz@c-T;S)B6qZ$egwFzHe2twe@=`_{VR$?o~YYVV}IrhgQI2boGNyoiP(SQp6 zTT#0`7bd+G!tJbJPFLP(xq}*6>ZViPt_x<%5LI`QC3A<)GQeBuQZ@0x*K`ukwE1bE z=tqCNRf|~C1+;Ly-EW4AscO%xo3TE@{`W^6r*X0Qb_n|H|O%mzI$<%j}*-$hA^45Qx zG1evQ$}49D>`FLAE&4gC?^raL<6R#J z-i!pO#JbdwAqCq>c;8rIUeqm3I!Iq^Et~z&R;j@i=}8+&VG`_o$OO`#$7x&IVFusH z)Y<^gUP#!u0pQ#XAj=W|Anx%V@{C$zL(*0aSG!MLBSpq{ni3T*ix z>m`sa*-~;*T$+em$^oDNGGP<$9`6YTbxqLBQQ`3M9ku-3Wc`!i&5q#hTzlx7B>2z- ztl|o+A_oTA2eP3oLdwA55T{@cY6XA_rr>ea z7n>!UI8o7dF=Cm>-h-Lkgu&A!QX(aaLd#)L2B`^vM1_<{h7~$s7G{XVaK@J;+5C*y zH?36SS-@(wVk^4;BGvsw_01wbzDTc~pnIX9Y0+W$-62jap0aVxY&qh0Y~9wy5*wXI z!o*)vsh-ENo|ADKX21p7%oLTqT_mm?Hxl3gww#s;hTCZ3J>^Z!ff?WEPG+Q|n6%^I zc~`Y1Sr`tTbP5=k?1oaiAV(!Ken8YCAnH<8G_w6K(B_8dV-&9h7gE`wZ zAyI%uB>aj0on@8X4>lQQoW)pn+hly(@Ax0w#2qCzzyru;H=-MxB;Y-D&>EQ|y!nkx zT1)MC$#?ObJf`AK5@ulrWls#{Vm2p744iV9pi;7n_f@AZ^4SK$U<{%PQ7}$bmfkUz z-j7Yl!ITt5#$z}+6hfmmf?Nf3kB|B3z3{v zz7;uo5S3KPm2{;$E?E$j=B_Lv?8yZM1dDfU4DkG)Ds7`|HUN;~r_0&h-A&;d)n#_2 z%x~WR2c&IbDHfRg^@JF*qEA9-buOjUQ3rEgD3?wIbaEAkPA45&=fWM$8OA7r){l3t zO2tvl>f8wplxKDz-&giTjAG;>LRmG=l-sdQTEZq1{-^>BAZ?c0TOJ?+ZsJu+$?(18 z0|HKGB&dPX(NckiluAN__9TQp=%)VUSygD4hH6AKruLnn9Ma*iEhQrPqHCd;`IVGW zZ000+W|U~9k}%`-G|X4tDLHut{*9b9HCF`j=-de^kp3t)f?C}0r-bDu&FLMg4b@An zOp}hHz1bvirDCS8Kqj!jraq{uh5&Vds;HJLLkwKINau8RC{wPY8Is?2KGFxiDrU&9Is|uDQM(z!Jd>=P5+(TYu0C=&SnEBK#+E$B_b+Hs^q$^#iB*57GDnGojR>C}{;Cal8Fro%cc!xn0OuF~8vtFz9f-Z0=xej=n^ zTX60rlv>-RX6m<&ET=AI44iDruB}2qC%dTYx>o0vuA-R=ovU#t*0E`Tm7Z>yhn$*J z*hZzDf@QY(s&Un*T#y`u_30@kVQe0&!yYR)qJXjz>0(f9bN#3Abr^;$sgs5OWu$g2 zl6i%cGN{OYE2my*kf1Evc4_t%oT;v>%j)8)W~q+N$6Zb3D*OQc02%wSpH>dyYcQH+ z0hfYaBxvXXY94M`wv|PTBLv>kXM`mJSu4-g zn>-5UV0J6Xf@>x$3NsQ^4}^&)HbqMO8CZeJ*^Top{T!epOVYI=5w_4pR) zhAg*^thcsrb*3%r(yxWq!JUDX>~^TCsvuBOop3plc5H`Wm4}7E5mSM(pq)hFr$g<`SRyj&JMH&fwv0pr9`yNCGZ2 zXs5O>xDsRt%&!fL>Hug;?8+{xTIW5c?f(jzR1q4G5%8O`5dz0Xi!QL&9xvgdMQRSA zH7+h%TG<6VZS`hw26J!+%M+0nDeZOLyX8seZWk4WWu$?PO>#!*4yM_%Z~HFg3LH(G zBQn@xREh$^4+vDY3upm8e{7?87C~uvitu3^3dEdE{Ey>AZ3jy z<@@sR-1_1{2BQ#14deWnAMUNcc->awYS(xrj1F#oF_{!|TepqetCT>MAuJXLYUFY< z7k6^9D(mpv9ouM_RFJT=sM_CvE=yNYUxtY*zp|#vvkX(`yx{RYU#Jcc94}WMeD(AG zerT3LqgqX+F_RoJ->cWr6;?F!*coCpcg9#A?INtEH7RZ50;=^oEGKudH-~hV5h*!q z7=(>S8K=xkZAL0zBwqm(hj0cQ3npRGF}U(@4B&K5JEz-5CO-qf`vNum((M`MSIcAt zBvsSRDz%ib(LyV56N4c{Bd=#n^F}t%UGQH`{V6<6Zv))_0`*q!Ej+C!Pwh#HvX@<4 zDesfYtaSrZ(E!og#K>a^Xle|{GKBiI566HPcO|w(^;rb$lMSqm;%M7d8L@KoXK%4*3%~|r@6<|c%u(!V@1_+- z7TTdOShn*~NlZ_ag8I_-gU0Y*6E{ojHg7xU9_JY^_cd;_D`f`sMs*%Ri-2H#)FCHy z@Gc|Z`dlaRYD7!)@*WplQ1MmwpCbIJJc;D7dNlQNv-Q@d0jAp~qP7au#Q~%mD#Lfj zIjLJ~2v``WrrLJus%n|Wz&!l7a}L4e?QlQ$GrRKtxa|fJW~!Jm|5#%8Pof=gdHSqV zpHOfGQH)+VIZ-pPk`nZOH+XaMEs*yne>IBl)HthT7rBa^oMU#&I9pRpcdbQz%Qd%p ztA5vU58I)C1G!@EasKLXUz6Svg<#A1G6cg^9UK@y6DvrM}9lvl2 zuGUNRxt|jysp63A{RLgj#zxG>)$s6N>osVoR_i!uP zp>7BJpW|Y1C*^+ob%FcjY7MoKbfIA{_o}$tqmL(pOE_#urKMjvB>&(v(`f8z%($mz zNEU0UqdU5DvKC9NC6>0jt+`{Bhl{H=pImpxWje=JmZiq=Oy{|k(lVbN%@z=RQSNkf z9=yUA`BL(CD+)5zv2n9Y74PcUchD**FPG!PZ~AOMG;$#C8NGpcXaD} z_IPtKyGN|Mk2CE9jLZWB2uzCz>e182V4G5e7!s1?(BZ>}4cic^IHwIpj2YW>j5uM% zicBmrl`IKh1%L@EV}x*NA;gw{Gilbec@t+&ojZB<^!XELP@zMK7BzZv000~Sm@*Bp zv?+jJOfvzfnkgk#lmS+>v><8!qQ*I6=V*AOVHFJ;B1C*p@m56&xNkp*_@Q={2EAqH zJR&78N2ysE6PpOqf8tRfIs1B08HlL-Ood6eLli9*}hPEdciF)TmFNCOtazXU}vXZPuLmGJ+IxKVUk5Dd9mqgqACo2o@s4!-55O+_(S$P%ouh7yZTF@`!)?lFQUb4xe`Fw2Y%&3Mxd zH`8cqKmZzHyYV#|b)>ETwirj#t+(EMYcVt7Q~*Js$P7}>B0?5=E+P;YyUx0fJd%XF zkVZ1;r18qL0L=8RppVQl%{&uLH1}9)KmM4Ssy~yg3NR${z6$HFu@+2At+w2PPz4D; zxQhZB7ThaOvMyq1usIGpOrj7iI;fNp5n7}T6OnvtMHf4J5j5ONt1Y$GViVvN9A!(b zf!apJO*GwjYmwIAh6@yg0~SdRA?BP!EF!R=ORUi2PZ^j(3f47De_<*dA-WjU!Q&V_TahOrr-=(+^eV( zF94(OOxo(Qn6B4pPZN|~rnVq_^(8~pDU73T_pfy2E?~RT6pB)iFy92}GoeA7j7nvr zwVmo=&g)TWaw99wWK1}6L6Y@)1v2e{1*E* ziCDy(Tn;}>i5~#Il?gaqrAsIgP=QL8k-r=YfTb+5u(%x6|oN z6t^DPolFS^f?@)PY;*<9*-*g2RwWmj67#D{p&O)HU1m6VGpuq7=@3I^H@hPvOm)hM zH7rq-&Txdhn#FI}+VpQcDWK)t$Kq@J!0+qH^h5|6jT$Qb!5*3(6 z@seK>Ije~9Od<(R5U!XBp76e0SG&p)xgRVk^PD-GY3|XQzR^rJaiy#OnR?SnU{M*0 zwTm>uXb9QadGYw_t4ccq4!wt#c8=}2A2zuu$n@(Hq-C61>g@N5{k?RiHEloxhH-Ws z>gAL}WTk*znP4J-D{zm=nJ#DWY@-qLjC3UHwY3dy)%=X~+ANpJ`1-I6!37M%6aw^w z>Di28%-}o{zVGBPBtBf_qaJnRX@8ul?p1VDrqXC8+RwE3(;sv&uwN@Sc|lwyH8o*piOO(?~koAl}B^`J9JcBn_2Zy5yL@JOp{Yc zNi00OE^&CB2ikHLCwtF8Ejzio5<@9>yzRN4r&C9sIewD%DnT=4fF_W?%Tk)}mezE+ z9XeZ+9fpBA-?_WfsD~?02BXFtQfDL&iQ-bYVaH)FX zg^B84a#>>K8CjAIDpt&nF55XO+H_9^11)un-pGYgn{)6~bX>)i}!Dx^Dq|L`Gl@!JXxkPK


    E%8Rg`UXZaf(~I2fXiOQqrOky9ze{*&)>?-nb5B^h@ry<3&f5jZ>h%w$SE-Nk7f8Tf9_;DqR&y9;0Pm8eY6GcdQ6`ZkO{>FCAcjJX-q__ z=5?%4+`i}nXY122U@*`wtr$ah(&+jyLEchiMIg`1x^MF02sJj(gGfpMG(oxSs0HQb z^E5_Ke(&V8jdR9> zCBP&d8W9xv0*fXv6bCO)F5=T{3#~?t)ZFb-F6zM`?~U%w=+I{0947Og$rsJ9M(7ag zJ`4d$K!vJ~kb-U4=8rrG3Ceo-R&JfKBF+gHjK*xt@tPvk&4x9i6(o#0h zgvY!E9Pz;9o=`wqq9d)5e>hDq^^zuO5?^c*$_fMRCaT?Xs}*_YM8pOS(U2DJ%_zN( zF_CU<2GSQ*aAG=7{fJ~^NRJOC!3JUCGe1)+b&$KPh&}TKEKn2U%;nio(KppjBxe&p z=fjiUi%sC94^mPbO=~NP&)Lq=8gr@1gmXBBlP`_aFCFDC508u%!yXah=U&mlrYi*X z@!q^_4K)ZUVXfa_qx^aiGEKCkIPVVs>!uj1&Q~}S5L1ajmyvN4saUKAWgH?bs|vq- z=_51iH9sLghZH{S?EPj zn(b)ZDYNPmB=3_*7u6^Xz}hU)|Elz~D471a(57?oQ8iQ;muZ9m*HNuB6F$_FL9q9a{1O0Bd?7eqlB)Ir6l z3zJh+A1Jr1#QGWxI_W?<=|&D}u_!+jq>f7|wG%~`>(*8jJQwo)2{3oH^C((zEzcsm0wJ;LCy707_=;| z)Im7}`fg9k7O6rrr7$t!tq!wZH$x6q)iYYvI`gfX;isPfAY`?bTQ^5873W+G)i-A=I5kyM zIW>0DH3RAM@FuEc>QT4MUaRv}MdeI)(O=Va={5}4gk)edvmg|rP7gK& z@^mGNZ#)R(Z5xrro=hXKBrNT#C0eg6qcup!R&{aW42~3A(KZ1im7mylE}!%qp$|dT zaZ1hgW%sf#DUFwGM;=#9!R*mgO=M?-t7m_<7WvUS54UJVR4I{GGSBQ*OX!5?b-Gkw zGM?5>vo2UQH-E;rJUTKg+H)-Y;t(YPB_<1erX~C-s=Em7dPjQ0V&n^ zn(>{|u4=B7T<2Ce)o~84^mpkK+CsHv{nmIN0sBC}0e**GRkd(E)F=;E-zra5sTcDC z7Akd35dx)SsL~<-=Pw3?ReXnvJffvpJr~?&$02|U(k5UBSQA2{6$5-gQR{bghd>FJ zB5jj2CHW(BL$goewo&A^cm0PigOdtpE2{u=Zzr@m-nAo4^-Fyx)q2)vhqB8&N`pn= zRijr#BSsT!0fbp_X+7$i!V}@*%yK`ohf;!t1K>;GH>>tbeFGJehD_rOHGTmwb%B_E zI{*%bAQz(QHf6V4y%k)$7Ig>sWqX%gF#&lJMb`3@2j7j4SW3BvPIZbQTc`B@ge%3d_(_>mF*s?BRS7Iwvf+g0eF7w1M z3Je3d<8#VU1~SWQc_~qy*`sNq10o>;3V;og;1{eJH;?$DSE79FOrvv2fn!=zpLnJ{ z6+*MdlZSUFNfn;m%E2nQl=TsnyUaruz^HMf!d!WJ+1Q`mn1qbd%jiZ$L`XdLaTP;S7=>l9?hjyDnT` zI#B{Uf&Y5A6PUozIZ^Z$IYV{OuIAe+6rLqmXH{ph>y>#kcmaw!vXR;i(^!oy8#XH2 z=_t^4XcSiXGf*JvscPPaeyB|BBTUmPl zZ-lAC8@$i#Gz8j=gLbpg`-BmiJQaGhdq}kLqjvlBv@30PFyOvR)_lG~2AaSLoL~#8 zfCP=0w%Os3dA}jll7(Bi&v~{`k-iPjlRJcw+^wfqVKPJj zsOOn8uDfva;IW^#1d}?XPyh~5T*XYYZMDuM|&lNJipB&T$?zT z+MtKGU;+kV59$CFCLsb~00zJS2AVm_Km8{<00tuA3A|tnWZ-ryc`PJcoMC5fFFBm6 z=4*L4fQ6Ta5WA;++ASPFc|m-r@71H^+^9MD&b?d3Q+&lYOrW8fplg`|NRP()x%lBL!rTqo7MYL zZ`oB`2UE}9`4QB7x_Mni6B+0Q#P&=J4^o_$vwDWP3rd}q6nLNsCjSDM;0eOL>oMEArBxsp9!B;q+sFsya5y+2!j6$Ouz(4 zfCOs58epIoz#!~9-}!Y+)J=g2oFEFo9G#JSER@@}QlEi8&3mi_p4FTJ9)#ETe&A={ z@8!Hz10Sh9xJHsb=_?!YrCliD6Dk41_{qcnOnGOqMMF=Mb9HrVUP=Z65V} zv}n~LOcXviK!7v>9XU$nIECbNft&?Yt1b|QBI|<(4Z1dvB0$Qd7LGoB>VTG`+O=%k zx_t{buH3nF|9Lbe#)*@YCR@t13G<~)NrF=nI&70?&N)6GJz51>gi#d<5XiB-)Tz@v za`Hf000|NhQ4h#GFrmQTl+{xPtad$M00~aAK7r{_H@EKHynFlp4V+;IFfhbaags6= z%9S(;7p8gBCeG9SM=R5@i~v%2AY{suG2zeO2!Fmt_!{uu*%W87Vb_-u zJ5cKZlSnv;jVTLKDGbWbUo-<~uIUjv))+eKla?WWZ zeG>S`NiVns$!DK_{#oE~9rRLUBnzI9Boj<7>C6RQ%;V^iUO3|gqfI*5gd~zc*`deOBswu&VYP$R`eI&q0g1mB0Vza&Z?tE_@^fH{|t^yBD zbkV{NN9+bLMDm0wPdw4EG0{pLb;DLm3vt95QyXow3{#wPx7>2utk^Dt+^Pg>uFS48 zGpi|^nl-~4YpitQJSX0@>by74e$(so9uf#H0lzTlX>{U>BS^4Ey6PGMDw0bsfz)*v zgGwE!V9q%zm49xG)S*xPdDd1#8?7@CqmD8EwHT-TtlE`^J*n&)t9kP6Wvi`r*u96{ zs=N5woil&4){DH~fAg$^-#$y=^AH2*5G^XY!jRVD+Hb#>M~1)F9U0tMzYU{%f88tVTQA9gu(u^j!n5=%#uRPhJ+R z4+X#I#d^g?gk5YN8S^E$0f=yLfrFm^4n*j|5VBDRge#mQU=W}c>T!=9c*7ea@P;Q) zLxwagBn{tZ!}h&Tk?pIT&*lfZNK%bqlhj`lnRv-0`c7l1>*OY@=*b4c3tw7HUVX$U z#xYhfUK>2+^f-t{5RQtIGz)^d!xR3jVFNI?zavU$41=KydC%!2}Ra6KYIuMCU zXfy)(aON{JSBD`?(~yTO={Dj22S0CiQ(8#08ui5K(rCT(rRg;1I5&AkY29jPB;?!j zbcQ^6!m>Vluu)M5AiWwDwRs1nCsQd%P=FqkjYVB5LaW+Ph(2_yz|6%S0`b*7oB^!3 zioirEYSFazXagCAK_%SE(Fg!CkbZohNcZ5u8A7j+h;$_MEGNh3rL?6iZP-jRc~~gQ zRHjx$XE_^|uXf(clsxSlQI$&1*c8=*b*O4UHQU({el~DwTxeC1T2+K9l#X0&ZCAhQ z)ia0{wz8FNE&@^8Gn~N}dk`iu(W=(q0%rr2FoZ_k>Q-gu1CURk>*hM!&>6lFdVfXf zUq6@9z#4I-)SD#3sP|I;353_M;*}Ql8VlZ(rB}SuqmK?!hQ@pCfj()hZ!DR*RC|T? zvbfZ2Q!`7?G$Pf%sa0rG@oHe#auuw%ZEzrNJ5~ov7_7COZG~eiR@qX|tS1Dna6c>; z7!cRE8a=K?BeC3OHn+LZq#<4*DqUa7IE0p?ZjGsn;~X1tygC4HdBNM`)b%*XKn}7q z(wi@u_Oze$Dk?AiyE7+48M94&>Xbiw+RY|(%c0$}f*;CY3XAo@vVE|b8*Je{3_`5V zknJFDJC8HVdBPCZ?QSCh;yl*{qi^kVa{Jt86f^e?sAw)CrAJ46Dw?`-d>?ihjpOG{ z*T+8d@nU^E)A92E@})_Rmf(;K-l^8|$W0wwd}BjUTUB+R{XD1zRomY!yE@AS{&HBs zYUVLlco1f;@L1!#=3uk=3=W=$Zqw{*WaD<(#J2Mp@T})($E5?s1vGL^?ADAbbFM3P zAtHgj>*M7sL*P0rp^k z&U#qdEZ4}j{cK{GUmJYkb1tDB?NAR6bkXIeZn*_pUUgsEjl3-Hr}cgBBqQD4y4)wz zRSoqK{yUcc1+RL74-8C&XMN#;==xYeo(o@$mDgd1IBwfqc8mw&;=NXO*d5&L4C8jJ z&33k#Pu^J=+My25d;=I-4*0fQo5X+C_RL`(iSRYog)Tf_XSGVl!BKDA<@O-C%UkJa zsXOz6Q+KDScXS^goxMrVH`C*r-_#4dpH{cE!f}o3GVfZfzId?M&meJL*Y@qlE_s~G zj_fg$eC>6nyYcOe+uNQz<%OICHQr!{zW3b@&#=;p?J(MSK%&eyWMn;s$P>tAnPHr=XKp6aUkk8oRsYq#cgT{mXB*JijE zab~ywTO=oT8Af*#_i%ymaJoij2RL^lmw|IPcW8!khGYlE5PgI;f_^lD(RYGxP<_|O zf*9cum9PPX2Xiu)4@FXg-*;_^r+ADfIq1h#%`*g(_hXe7Jw7L1M7U}CS81Q8boys% zsg_@+hjj|3bpx1dWOsYHw{~ZzTXQFNbLVki2VuMwY#=v*w?%fwmw{u4TZ2$x4rNGg zFbU9y3MCkQbvS*`G>0VUM-kA1f0z+UV`4IBZGMJ>!*qy60t4Syewbr^@55TaL`TyD zghqII_!KP$m49*cN;+41)3bl}H+7L{YqutGzEE~;CU&d%Yh0*X57=-G_=ONRi>S!| zYZpg%6u5<5=!R>jTeqljUAR>shzf3Cf*<8ad>4Xt;6irrd~Se;s6Y*N_)#kdh}YN< zZl!%P$Bp8LgExp`*OP6D_XOTHInPCkk*8I()NYnnZuPc*P6&_sr%PH@iVE0fs;G-@ z_=URHi*L7!w-*SrsEZ8PcC|&2Y{-wt=ZkhXRw#!{aX1OlH;2*3cXQ}`82Lgj1dY%K zO?>D_)A&p!NNCoGjVGxPFklEHMqGu6ZGIMx!xRBaQ-d=JJ_qwOH#a$>^MjB#VD+|y zZ$v#vC3&Ezex*2Hx0R2wSawaxifD(5QR!y51&d#Zic?8<0?CH2=xk!=hRA3CXTA84 zz(hl8l#y?sk<3VF)Nq!27=mc&N5)u@bw~}3SArFJjCr{uD9M))@q*mPjet3GHRyea zNRw`53W+FJcI zX1bSQw+C^-$eIS3P|a5dc7Tx-36~hjmT0+mwuzRxIfBrrmL7SG&WMN7mzQ<`1AVES z55Z@GXk6PUm@xTPZMBGpDU(GqlQyY?PZLBv=sBeLW#E}`aRzK#_-4VFiW*0iSebyT z*nkBokh-^v49JSk28`4YA7qpKIjNcn~93Nx0C=$a^z`?3aEg%0yO{F2NYC|n zphj?Avnj7^8K4)5pn^-A`D&{7 znzVR`uWAXLgqE*NdyH#*S$etLS7%W9{rYoe`7qKgTw-{!LK*c^y-Lp)Tk%?qHwnZx(Wr3i|^%ZR

    $tWVxfW`4(s${x{Q2eSMS;BtU8gedQ0$Qc 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 te!9JV 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%0DklUqSv0akAg{yfwml5P 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