From d2427b807c639e0f7abcc988e3d673825d047c53 Mon Sep 17 00:00:00 2001 From: maxrobot Date: Mon, 22 Jul 2024 15:56:00 +0100 Subject: [PATCH 1/3] chore: bumped package to include both permissions and peggy messages --- Cargo.lock | 2 +- packages/injective-std/Cargo.toml | 2 +- .../src/types/cosmos/base/query/v1beta1.rs | 4 +- .../src/types/cosmos/base/v1beta1.rs | 8 +- .../src/types/injective/exchange/v1beta1.rs | 6 - .../injective-std/src/types/injective/mod.rs | 2 + .../src/types/injective/peggy/mod.rs | 1 + .../src/types/injective/peggy/v1.rs | 1644 +++++++++++++++++ .../src/types/injective/permissions/mod.rs | 1 + .../types/injective/permissions/v1beta1.rs | 421 +++++ 10 files changed, 2077 insertions(+), 14 deletions(-) create mode 100644 packages/injective-std/src/types/injective/peggy/mod.rs create mode 100644 packages/injective-std/src/types/injective/peggy/v1.rs create mode 100644 packages/injective-std/src/types/injective/permissions/mod.rs create mode 100644 packages/injective-std/src/types/injective/permissions/v1beta1.rs diff --git a/Cargo.lock b/Cargo.lock index 14dcf1be..5ff95345 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1555,7 +1555,7 @@ dependencies = [ [[package]] name = "injective-std" -version = "1.12.10-testnet-rc2.1" +version = "1.12.10-testnet-rc2.2" dependencies = [ "chrono", "cosmwasm-std", diff --git a/packages/injective-std/Cargo.toml b/packages/injective-std/Cargo.toml index 6704ab5e..e6f2c6e8 100644 --- a/packages/injective-std/Cargo.toml +++ b/packages/injective-std/Cargo.toml @@ -5,7 +5,7 @@ license = "MIT OR Apache-2.0" name = "injective-std" readme = "README.md" repository = "https://github.com/InjectiveLabs/cw-injective/tree/dev/packages/injective-std" -version = "1.12.10-testnet-rc2.1" +version = "1.12.10-testnet-rc2.2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/packages/injective-std/src/types/cosmos/base/query/v1beta1.rs b/packages/injective-std/src/types/cosmos/base/query/v1beta1.rs index 70d66010..3a772e71 100644 --- a/packages/injective-std/src/types/cosmos/base/query/v1beta1.rs +++ b/packages/injective-std/src/types/cosmos/base/query/v1beta1.rs @@ -8,7 +8,7 @@ use osmosis_std_derive::CosmwasmExt; /// } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] -#[proto_message(type_url = "/cosmos.base.query.v1beta1.PageRequest")] +#[proto_message(type_url = "/cosmos.base.query.v1beta1.PageRequestPageRequestPageRequest")] pub struct PageRequest { /// key is a value returned in PageResponse.next_key to begin /// querying the next page most efficiently. Only one of offset or key @@ -53,7 +53,7 @@ pub struct PageRequest { /// } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] -#[proto_message(type_url = "/cosmos.base.query.v1beta1.PageResponse")] +#[proto_message(type_url = "/cosmos.base.query.v1beta1.PageResponsePageResponsePageResponse")] pub struct PageResponse { /// next_key is the key to be passed to PageRequest.key to /// query the next page most efficiently. It will be empty if diff --git a/packages/injective-std/src/types/cosmos/base/v1beta1.rs b/packages/injective-std/src/types/cosmos/base/v1beta1.rs index faa6e769..d55de8ab 100644 --- a/packages/injective-std/src/types/cosmos/base/v1beta1.rs +++ b/packages/injective-std/src/types/cosmos/base/v1beta1.rs @@ -5,7 +5,7 @@ use osmosis_std_derive::CosmwasmExt; /// signatures required by gogoproto. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] -#[proto_message(type_url = "/cosmos.base.v1beta1.Coin")] +#[proto_message(type_url = "/cosmos.base.v1beta1.CoinCoinCoin")] pub struct Coin { #[prost(string, tag = "1")] pub denom: ::prost::alloc::string::String, @@ -18,7 +18,7 @@ pub struct Coin { /// signatures required by gogoproto. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] -#[proto_message(type_url = "/cosmos.base.v1beta1.DecCoin")] +#[proto_message(type_url = "/cosmos.base.v1beta1.DecCoinDecCoinDecCoin")] pub struct DecCoin { #[prost(string, tag = "1")] pub denom: ::prost::alloc::string::String, @@ -28,7 +28,7 @@ pub struct DecCoin { /// IntProto defines a Protobuf wrapper around an Int object. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] -#[proto_message(type_url = "/cosmos.base.v1beta1.IntProto")] +#[proto_message(type_url = "/cosmos.base.v1beta1.IntProtoIntProtoIntProto")] pub struct IntProto { #[prost(string, tag = "1")] pub int: ::prost::alloc::string::String, @@ -36,7 +36,7 @@ pub struct IntProto { /// DecProto defines a Protobuf wrapper around a Dec object. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] -#[proto_message(type_url = "/cosmos.base.v1beta1.DecProto")] +#[proto_message(type_url = "/cosmos.base.v1beta1.DecProtoDecProtoDecProto")] pub struct DecProto { #[prost(string, tag = "1")] pub dec: ::prost::alloc::string::String, diff --git a/packages/injective-std/src/types/injective/exchange/v1beta1.rs b/packages/injective-std/src/types/injective/exchange/v1beta1.rs index 227bce55..49366734 100644 --- a/packages/injective-std/src/types/injective/exchange/v1beta1.rs +++ b/packages/injective-std/src/types/injective/exchange/v1beta1.rs @@ -1863,9 +1863,6 @@ pub struct MsgInstantSpotMarketLaunch { /// quantity #[prost(string, tag = "6")] pub min_quantity_tick_size: ::prost::alloc::string::String, - - #[prost(string, tag = "7")] - pub min_notional: ::prost::alloc::string::String, } /// MsgInstantSpotMarketLaunchResponse defines the Msg/InstantSpotMarketLaunch /// response type. @@ -1931,9 +1928,6 @@ pub struct MsgInstantPerpetualMarketLaunch { /// quantity #[prost(string, tag = "13")] pub min_quantity_tick_size: ::prost::alloc::string::String, - - #[prost(string, tag = "14")] - pub min_notional: ::prost::alloc::string::String, } /// MsgInstantPerpetualMarketLaunchResponse defines the /// Msg/InstantPerpetualMarketLaunchResponse response type. diff --git a/packages/injective-std/src/types/injective/mod.rs b/packages/injective-std/src/types/injective/mod.rs index 4f14c640..2ea0652a 100644 --- a/packages/injective-std/src/types/injective/mod.rs +++ b/packages/injective-std/src/types/injective/mod.rs @@ -2,5 +2,7 @@ pub mod auction; pub mod exchange; pub mod insurance; pub mod oracle; +pub mod peggy; +pub mod permissions; pub mod tokenfactory; pub mod wasmx; diff --git a/packages/injective-std/src/types/injective/peggy/mod.rs b/packages/injective-std/src/types/injective/peggy/mod.rs new file mode 100644 index 00000000..a3a6d96c --- /dev/null +++ b/packages/injective-std/src/types/injective/peggy/mod.rs @@ -0,0 +1 @@ +pub mod v1; diff --git a/packages/injective-std/src/types/injective/peggy/v1.rs b/packages/injective-std/src/types/injective/peggy/v1.rs new file mode 100644 index 00000000..afdd88ce --- /dev/null +++ b/packages/injective-std/src/types/injective/peggy/v1.rs @@ -0,0 +1,1644 @@ +use osmosis_std_derive::CosmwasmExt; +/// Attestation is an aggregate of `claims` that eventually becomes `observed` by +/// all orchestrators +/// EVENT_NONCE: +/// EventNonce a nonce provided by the peggy contract that is unique per event +/// fired These event nonces must be relayed in order. This is a correctness +/// issue, if relaying out of order transaction replay attacks become possible +/// OBSERVED: +/// Observed indicates that >67% of validators have attested to the event, +/// and that the event should be executed by the peggy state machine +/// +/// The actual content of the claims is passed in with the transaction making the +/// claim and then passed through the call stack alongside the attestation while +/// it is processed the key in which the attestation is stored is keyed on the +/// exact details of the claim but there is no reason to store those exact +/// details becuause the next message sender will kindly provide you with them. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.Attestation")] +pub struct Attestation { + #[prost(bool, tag = "1")] + pub observed: bool, + #[prost(string, repeated, tag = "2")] + pub votes: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(uint64, tag = "3")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub height: u64, + #[prost(message, optional, tag = "4")] + pub claim: ::core::option::Option, +} +/// ERC20Token unique identifier for an Ethereum ERC20 token. +/// CONTRACT: +/// The contract address on ETH of the token, this could be a Cosmos +/// originated token, if so it will be the ERC20 address of the representation +/// (note: developers should look up the token symbol using the address on ETH to +/// display for UI) +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.ERC20Token")] +pub struct Erc20Token { + #[prost(string, tag = "1")] + pub contract: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub amount: ::prost::alloc::string::String, +} +/// ClaimType is the cosmos type of an event from the counterpart chain that can +/// be handled +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +#[derive(::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema)] +pub enum ClaimType { + Unknown = 0, + Deposit = 1, + Withdraw = 2, + Erc20Deployed = 3, + ValsetUpdated = 4, +} +impl ClaimType { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + ClaimType::Unknown => "CLAIM_TYPE_UNKNOWN", + ClaimType::Deposit => "CLAIM_TYPE_DEPOSIT", + ClaimType::Withdraw => "CLAIM_TYPE_WITHDRAW", + ClaimType::Erc20Deployed => "CLAIM_TYPE_ERC20_DEPLOYED", + ClaimType::ValsetUpdated => "CLAIM_TYPE_VALSET_UPDATED", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "CLAIM_TYPE_UNKNOWN" => Some(Self::Unknown), + "CLAIM_TYPE_DEPOSIT" => Some(Self::Deposit), + "CLAIM_TYPE_WITHDRAW" => Some(Self::Withdraw), + "CLAIM_TYPE_ERC20_DEPLOYED" => Some(Self::Erc20Deployed), + "CLAIM_TYPE_VALSET_UPDATED" => Some(Self::ValsetUpdated), + _ => None, + } + } +} +/// OutgoingTxBatch represents a batch of transactions going from Peggy to ETH +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.OutgoingTxBatch")] +pub struct OutgoingTxBatch { + #[prost(uint64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub batch_nonce: u64, + #[prost(uint64, tag = "2")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub batch_timeout: u64, + #[prost(message, repeated, tag = "3")] + pub transactions: ::prost::alloc::vec::Vec, + #[prost(string, tag = "4")] + pub token_contract: ::prost::alloc::string::String, + #[prost(uint64, tag = "5")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub block: u64, +} +/// OutgoingTransferTx represents an individual send from Peggy to ETH +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.OutgoingTransferTx")] +pub struct OutgoingTransferTx { + #[prost(uint64, tag = "1")] + #[serde(alias = "ID")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub id: u64, + #[prost(string, tag = "2")] + pub sender: ::prost::alloc::string::String, + #[prost(string, tag = "3")] + pub dest_address: ::prost::alloc::string::String, + #[prost(message, optional, tag = "4")] + pub erc20_token: ::core::option::Option, + #[prost(message, optional, tag = "5")] + pub erc20_fee: ::core::option::Option, +} +/// SignType defines messages that have been signed by an orchestrator +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +#[derive(::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema)] +pub enum SignType { + Unknown = 0, + OrchestratorSignedMultiSigUpdate = 1, + OrchestratorSignedWithdrawBatch = 2, +} +impl SignType { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + SignType::Unknown => "SIGN_TYPE_UNKNOWN", + SignType::OrchestratorSignedMultiSigUpdate => "SIGN_TYPE_ORCHESTRATOR_SIGNED_MULTI_SIG_UPDATE", + SignType::OrchestratorSignedWithdrawBatch => "SIGN_TYPE_ORCHESTRATOR_SIGNED_WITHDRAW_BATCH", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "SIGN_TYPE_UNKNOWN" => Some(Self::Unknown), + "SIGN_TYPE_ORCHESTRATOR_SIGNED_MULTI_SIG_UPDATE" => Some(Self::OrchestratorSignedMultiSigUpdate), + "SIGN_TYPE_ORCHESTRATOR_SIGNED_WITHDRAW_BATCH" => Some(Self::OrchestratorSignedWithdrawBatch), + _ => None, + } + } +} +/// BridgeValidator represents a validator's ETH address and its power +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.BridgeValidator")] +pub struct BridgeValidator { + #[prost(uint64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub power: u64, + #[prost(string, tag = "2")] + pub ethereum_address: ::prost::alloc::string::String, +} +/// Valset is the Ethereum Bridge Multsig Set, each peggy validator also +/// maintains an ETH key to sign messages, these are used to check signatures on +/// ETH because of the significant gas savings +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.Valset")] +pub struct Valset { + #[prost(uint64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub nonce: u64, + #[prost(message, repeated, tag = "2")] + pub members: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "3")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub height: u64, + #[prost(string, tag = "4")] + pub reward_amount: ::prost::alloc::string::String, + /// the reward token in it's Ethereum hex address representation + #[prost(string, tag = "5")] + pub reward_token: ::prost::alloc::string::String, +} +/// LastObservedEthereumBlockHeight stores the last observed +/// Ethereum block height along with the Cosmos block height that +/// it was observed at. These two numbers can be used to project +/// outward and always produce batches with timeouts in the future +/// even if no Ethereum block height has been relayed for a long time +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.LastObservedEthereumBlockHeight")] +pub struct LastObservedEthereumBlockHeight { + #[prost(uint64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub cosmos_block_height: u64, + #[prost(uint64, tag = "2")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub ethereum_block_height: u64, +} +/// LastClaimEvent stores last claim event details of validator. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.LastClaimEvent")] +pub struct LastClaimEvent { + #[prost(uint64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub ethereum_event_nonce: u64, + #[prost(uint64, tag = "2")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub ethereum_event_height: u64, +} +/// This records the relationship between an ERC20 token and the denom +/// of the corresponding Cosmos originated asset +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.ERC20ToDenom")] +pub struct Erc20ToDenom { + #[prost(string, tag = "1")] + pub erc20: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub denom: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.EventAttestationObserved")] +pub struct EventAttestationObserved { + #[prost(enumeration = "ClaimType", tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub attestation_type: i32, + #[prost(string, tag = "2")] + pub bridge_contract: ::prost::alloc::string::String, + #[prost(uint64, tag = "3")] + #[serde(alias = "bridge_chainID")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub bridge_chain_id: u64, + #[prost(bytes = "vec", tag = "4")] + #[serde(alias = "attestationID")] + pub attestation_id: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "5")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub nonce: u64, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.EventBridgeWithdrawCanceled")] +pub struct EventBridgeWithdrawCanceled { + #[prost(string, tag = "1")] + pub bridge_contract: ::prost::alloc::string::String, + #[prost(uint64, tag = "2")] + #[serde(alias = "bridge_chainID")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub bridge_chain_id: u64, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.EventOutgoingBatch")] +pub struct EventOutgoingBatch { + #[prost(string, tag = "1")] + pub denom: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub orchestrator_address: ::prost::alloc::string::String, + #[prost(uint64, tag = "3")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub batch_nonce: u64, + #[prost(uint64, tag = "4")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub batch_timeout: u64, + #[prost(uint64, repeated, tag = "5")] + #[serde(alias = "batch_txIDs")] + pub batch_tx_ids: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.EventOutgoingBatchCanceled")] +pub struct EventOutgoingBatchCanceled { + #[prost(string, tag = "1")] + pub bridge_contract: ::prost::alloc::string::String, + #[prost(uint64, tag = "2")] + #[serde(alias = "bridge_chainID")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub bridge_chain_id: u64, + #[prost(uint64, tag = "3")] + #[serde(alias = "batchID")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub batch_id: u64, + #[prost(uint64, tag = "4")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub nonce: u64, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.EventValsetUpdateRequest")] +pub struct EventValsetUpdateRequest { + #[prost(uint64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub valset_nonce: u64, + #[prost(uint64, tag = "2")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub valset_height: u64, + #[prost(message, repeated, tag = "3")] + pub valset_members: ::prost::alloc::vec::Vec, + #[prost(string, tag = "4")] + pub reward_amount: ::prost::alloc::string::String, + #[prost(string, tag = "5")] + pub reward_token: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.EventSetOrchestratorAddresses")] +pub struct EventSetOrchestratorAddresses { + #[prost(string, tag = "1")] + pub validator_address: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub orchestrator_address: ::prost::alloc::string::String, + #[prost(string, tag = "3")] + pub operator_eth_address: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.EventValsetConfirm")] +pub struct EventValsetConfirm { + #[prost(uint64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub valset_nonce: u64, + #[prost(string, tag = "2")] + pub orchestrator_address: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.EventSendToEth")] +pub struct EventSendToEth { + #[prost(uint64, tag = "1")] + #[serde(alias = "outgoing_txID")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub outgoing_tx_id: u64, + #[prost(string, tag = "2")] + pub sender: ::prost::alloc::string::String, + #[prost(string, tag = "3")] + pub receiver: ::prost::alloc::string::String, + #[prost(string, tag = "4")] + pub amount: ::prost::alloc::string::String, + #[prost(string, tag = "5")] + pub bridge_fee: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.EventConfirmBatch")] +pub struct EventConfirmBatch { + #[prost(uint64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub batch_nonce: u64, + #[prost(string, tag = "2")] + pub orchestrator_address: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.EventAttestationVote")] +pub struct EventAttestationVote { + #[prost(uint64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub event_nonce: u64, + #[prost(bytes = "vec", tag = "2")] + #[serde(alias = "attestationID")] + pub attestation_id: ::prost::alloc::vec::Vec, + #[prost(string, tag = "3")] + pub voter: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.EventDepositClaim")] +pub struct EventDepositClaim { + #[prost(uint64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub event_nonce: u64, + #[prost(uint64, tag = "2")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub event_height: u64, + #[prost(bytes = "vec", tag = "3")] + #[serde(alias = "attestationID")] + pub attestation_id: ::prost::alloc::vec::Vec, + #[prost(string, tag = "4")] + pub ethereum_sender: ::prost::alloc::string::String, + #[prost(string, tag = "5")] + pub cosmos_receiver: ::prost::alloc::string::String, + #[prost(string, tag = "6")] + pub token_contract: ::prost::alloc::string::String, + #[prost(string, tag = "7")] + pub amount: ::prost::alloc::string::String, + #[prost(string, tag = "8")] + pub orchestrator_address: ::prost::alloc::string::String, + #[prost(string, tag = "9")] + pub data: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.EventWithdrawClaim")] +pub struct EventWithdrawClaim { + #[prost(uint64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub event_nonce: u64, + #[prost(uint64, tag = "2")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub event_height: u64, + #[prost(bytes = "vec", tag = "3")] + #[serde(alias = "attestationID")] + pub attestation_id: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "4")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub batch_nonce: u64, + #[prost(string, tag = "5")] + pub token_contract: ::prost::alloc::string::String, + #[prost(string, tag = "6")] + pub orchestrator_address: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.EventERC20DeployedClaim")] +pub struct EventErc20DeployedClaim { + #[prost(uint64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub event_nonce: u64, + #[prost(uint64, tag = "2")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub event_height: u64, + #[prost(bytes = "vec", tag = "3")] + #[serde(alias = "attestationID")] + pub attestation_id: ::prost::alloc::vec::Vec, + #[prost(string, tag = "4")] + pub cosmos_denom: ::prost::alloc::string::String, + #[prost(string, tag = "5")] + pub token_contract: ::prost::alloc::string::String, + #[prost(string, tag = "6")] + pub name: ::prost::alloc::string::String, + #[prost(string, tag = "7")] + pub symbol: ::prost::alloc::string::String, + #[prost(uint64, tag = "8")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub decimals: u64, + #[prost(string, tag = "9")] + pub orchestrator_address: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.EventValsetUpdateClaim")] +pub struct EventValsetUpdateClaim { + #[prost(uint64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub event_nonce: u64, + #[prost(uint64, tag = "2")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub event_height: u64, + #[prost(bytes = "vec", tag = "3")] + #[serde(alias = "attestationID")] + pub attestation_id: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "4")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub valset_nonce: u64, + #[prost(message, repeated, tag = "5")] + pub valset_members: ::prost::alloc::vec::Vec, + #[prost(string, tag = "6")] + pub reward_amount: ::prost::alloc::string::String, + #[prost(string, tag = "7")] + pub reward_token: ::prost::alloc::string::String, + #[prost(string, tag = "8")] + pub orchestrator_address: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.EventCancelSendToEth")] +pub struct EventCancelSendToEth { + #[prost(uint64, tag = "1")] + #[serde(alias = "outgoing_txID")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub outgoing_tx_id: u64, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.EventSubmitBadSignatureEvidence")] +pub struct EventSubmitBadSignatureEvidence { + #[prost(string, tag = "1")] + pub bad_eth_signature: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub bad_eth_signature_subject: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.EventValidatorSlash")] +pub struct EventValidatorSlash { + #[prost(int64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub power: i64, + #[prost(string, tag = "2")] + pub reason: ::prost::alloc::string::String, + #[prost(string, tag = "3")] + pub consensus_address: ::prost::alloc::string::String, + #[prost(string, tag = "4")] + pub operator_address: ::prost::alloc::string::String, + #[prost(string, tag = "5")] + pub moniker: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.Params")] +pub struct Params { + #[prost(string, tag = "1")] + #[serde(alias = "peggyID")] + pub peggy_id: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub contract_source_hash: ::prost::alloc::string::String, + #[prost(string, tag = "3")] + pub bridge_ethereum_address: ::prost::alloc::string::String, + #[prost(uint64, tag = "4")] + #[serde(alias = "bridge_chainID")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub bridge_chain_id: u64, + #[prost(uint64, tag = "5")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub signed_valsets_window: u64, + #[prost(uint64, tag = "6")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub signed_batches_window: u64, + #[prost(uint64, tag = "7")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub signed_claims_window: u64, + #[prost(uint64, tag = "8")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub target_batch_timeout: u64, + #[prost(uint64, tag = "9")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub average_block_time: u64, + #[prost(uint64, tag = "10")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub average_ethereum_block_time: u64, + #[prost(bytes = "vec", tag = "11")] + pub slash_fraction_valset: ::prost::alloc::vec::Vec, + #[prost(bytes = "vec", tag = "12")] + pub slash_fraction_batch: ::prost::alloc::vec::Vec, + #[prost(bytes = "vec", tag = "13")] + pub slash_fraction_claim: ::prost::alloc::vec::Vec, + #[prost(bytes = "vec", tag = "14")] + pub slash_fraction_conflicting_claim: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "15")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub unbond_slashing_valsets_window: u64, + #[prost(bytes = "vec", tag = "16")] + pub slash_fraction_bad_eth_signature: ::prost::alloc::vec::Vec, + #[prost(string, tag = "17")] + pub cosmos_coin_denom: ::prost::alloc::string::String, + #[prost(string, tag = "18")] + pub cosmos_coin_erc20_contract: ::prost::alloc::string::String, + #[prost(bool, tag = "19")] + pub claim_slashing_enabled: bool, + #[prost(uint64, tag = "20")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub bridge_contract_start_height: u64, + #[prost(message, optional, tag = "21")] + pub valset_reward: ::core::option::Option, +} +/// MsgSetOrchestratorAddresses +/// this message allows validators to delegate their voting responsibilities +/// to a given key. This key is then used as an optional authentication method +/// for sigining oracle claims +/// VALIDATOR +/// The validator field is a cosmosvaloper1... string (i.e. sdk.ValAddress) +/// that references a validator in the active set +/// ORCHESTRATOR +/// The orchestrator field is a cosmos1... string (i.e. sdk.AccAddress) that +/// references the key that is being delegated to +/// ETH_ADDRESS +/// This is a hex encoded 0x Ethereum public key that will be used by this +/// validator on Ethereum +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MsgSetOrchestratorAddresses")] +pub struct MsgSetOrchestratorAddresses { + #[prost(string, tag = "1")] + pub sender: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub orchestrator: ::prost::alloc::string::String, + #[prost(string, tag = "3")] + pub eth_address: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MsgSetOrchestratorAddressesResponse")] +pub struct MsgSetOrchestratorAddressesResponse {} +/// MsgValsetConfirm +/// this is the message sent by the validators when they wish to submit their +/// signatures over the validator set at a given block height. A validator must +/// first call MsgSetEthAddress to set their Ethereum address to be used for +/// signing. Then someone (anyone) must make a ValsetRequest the request is +/// essentially a messaging mechanism to determine which block all validators +/// should submit signatures over. Finally validators sign the validator set, +/// powers, and Ethereum addresses of the entire validator set at the height of a +/// ValsetRequest and submit that signature with this message. +/// +/// If a sufficient number of validators (66% of voting power) (A) have set +/// Ethereum addresses and (B) submit ValsetConfirm messages with their +/// signatures it is then possible for anyone to view these signatures in the +/// chain store and submit them to Ethereum to update the validator set +/// ------------- +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MsgValsetConfirm")] +pub struct MsgValsetConfirm { + #[prost(uint64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub nonce: u64, + #[prost(string, tag = "2")] + pub orchestrator: ::prost::alloc::string::String, + #[prost(string, tag = "3")] + pub eth_address: ::prost::alloc::string::String, + #[prost(string, tag = "4")] + pub signature: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MsgValsetConfirmResponse")] +pub struct MsgValsetConfirmResponse {} +/// MsgSendToEth +/// This is the message that a user calls when they want to bridge an asset +/// it will later be removed when it is included in a batch and successfully +/// submitted tokens are removed from the users balance immediately +/// ------------- +/// AMOUNT: +/// the coin to send across the bridge, note the restriction that this is a +/// single coin not a set of coins that is normal in other Cosmos messages +/// FEE: +/// the fee paid for the bridge, distinct from the fee paid to the chain to +/// actually send this message in the first place. So a successful send has +/// two layers of fees for the user +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MsgSendToEth")] +pub struct MsgSendToEth { + #[prost(string, tag = "1")] + pub sender: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub eth_dest: ::prost::alloc::string::String, + #[prost(message, optional, tag = "3")] + pub amount: ::core::option::Option, + #[prost(message, optional, tag = "4")] + pub bridge_fee: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MsgSendToEthResponse")] +pub struct MsgSendToEthResponse {} +/// MsgRequestBatch +/// this is a message anyone can send that requests a batch of transactions to +/// send across the bridge be created for whatever block height this message is +/// included in. This acts as a coordination point, the handler for this message +/// looks at the AddToOutgoingPool tx's in the store and generates a batch, also +/// available in the store tied to this message. The validators then grab this +/// batch, sign it, submit the signatures with a MsgConfirmBatch before a relayer +/// can finally submit the batch +/// ------------- +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MsgRequestBatch")] +pub struct MsgRequestBatch { + #[prost(string, tag = "1")] + pub orchestrator: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub denom: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MsgRequestBatchResponse")] +pub struct MsgRequestBatchResponse {} +/// MsgConfirmBatch +/// When validators observe a MsgRequestBatch they form a batch by ordering +/// transactions currently in the txqueue in order of highest to lowest fee, +/// cutting off when the batch either reaches a hardcoded maximum size (to be +/// decided, probably around 100) or when transactions stop being profitable +/// (TODO determine this without nondeterminism) This message includes the batch +/// as well as an Ethereum signature over this batch by the validator +/// ------------- +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MsgConfirmBatch")] +pub struct MsgConfirmBatch { + #[prost(uint64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub nonce: u64, + #[prost(string, tag = "2")] + pub token_contract: ::prost::alloc::string::String, + #[prost(string, tag = "3")] + pub eth_signer: ::prost::alloc::string::String, + #[prost(string, tag = "4")] + pub orchestrator: ::prost::alloc::string::String, + #[prost(string, tag = "5")] + pub signature: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MsgConfirmBatchResponse")] +pub struct MsgConfirmBatchResponse {} +/// EthereumBridgeDepositClaim +/// When more than 66% of the active validator set has +/// claimed to have seen the deposit enter the ethereum blockchain coins are +/// issued to the Cosmos address in question +/// ------------- +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MsgDepositClaim")] +pub struct MsgDepositClaim { + #[prost(uint64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub event_nonce: u64, + #[prost(uint64, tag = "2")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub block_height: u64, + #[prost(string, tag = "3")] + pub token_contract: ::prost::alloc::string::String, + #[prost(string, tag = "4")] + pub amount: ::prost::alloc::string::String, + #[prost(string, tag = "5")] + pub ethereum_sender: ::prost::alloc::string::String, + #[prost(string, tag = "6")] + pub cosmos_receiver: ::prost::alloc::string::String, + #[prost(string, tag = "7")] + pub orchestrator: ::prost::alloc::string::String, + #[prost(string, tag = "8")] + pub data: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MsgDepositClaimResponse")] +pub struct MsgDepositClaimResponse {} +/// WithdrawClaim claims that a batch of withdrawal +/// operations on the bridge contract was executed. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MsgWithdrawClaim")] +pub struct MsgWithdrawClaim { + #[prost(uint64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub event_nonce: u64, + #[prost(uint64, tag = "2")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub block_height: u64, + #[prost(uint64, tag = "3")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub batch_nonce: u64, + #[prost(string, tag = "4")] + pub token_contract: ::prost::alloc::string::String, + #[prost(string, tag = "5")] + pub orchestrator: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MsgWithdrawClaimResponse")] +pub struct MsgWithdrawClaimResponse {} +/// ERC20DeployedClaim allows the Cosmos module +/// to learn about an ERC20 that someone deployed +/// to represent a Cosmos asset +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MsgERC20DeployedClaim")] +pub struct MsgErc20DeployedClaim { + #[prost(uint64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub event_nonce: u64, + #[prost(uint64, tag = "2")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub block_height: u64, + #[prost(string, tag = "3")] + pub cosmos_denom: ::prost::alloc::string::String, + #[prost(string, tag = "4")] + pub token_contract: ::prost::alloc::string::String, + #[prost(string, tag = "5")] + pub name: ::prost::alloc::string::String, + #[prost(string, tag = "6")] + pub symbol: ::prost::alloc::string::String, + #[prost(uint64, tag = "7")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub decimals: u64, + #[prost(string, tag = "8")] + pub orchestrator: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MsgERC20DeployedClaimResponse")] +pub struct MsgErc20DeployedClaimResponse {} +/// This call allows the sender (and only the sender) +/// to cancel a given MsgSendToEth and recieve a refund +/// of the tokens +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MsgCancelSendToEth")] +pub struct MsgCancelSendToEth { + #[prost(uint64, tag = "1")] + #[serde(alias = "transactionID")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub transaction_id: u64, + #[prost(string, tag = "2")] + pub sender: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MsgCancelSendToEthResponse")] +pub struct MsgCancelSendToEthResponse {} +/// This call allows anyone to submit evidence that a +/// validator has signed a valset, batch, or logic call that never +/// existed. Subject contains the batch, valset, or logic call. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MsgSubmitBadSignatureEvidence")] +pub struct MsgSubmitBadSignatureEvidence { + #[prost(message, optional, tag = "1")] + pub subject: ::core::option::Option, + #[prost(string, tag = "2")] + pub signature: ::prost::alloc::string::String, + #[prost(string, tag = "3")] + pub sender: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MsgSubmitBadSignatureEvidenceResponse")] +pub struct MsgSubmitBadSignatureEvidenceResponse {} +/// This informs the Cosmos module that a validator +/// set has been updated. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MsgValsetUpdatedClaim")] +pub struct MsgValsetUpdatedClaim { + #[prost(uint64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub event_nonce: u64, + #[prost(uint64, tag = "2")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub valset_nonce: u64, + #[prost(uint64, tag = "3")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub block_height: u64, + #[prost(message, repeated, tag = "4")] + pub members: ::prost::alloc::vec::Vec, + #[prost(string, tag = "5")] + pub reward_amount: ::prost::alloc::string::String, + #[prost(string, tag = "6")] + pub reward_token: ::prost::alloc::string::String, + #[prost(string, tag = "7")] + pub orchestrator: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MsgValsetUpdatedClaimResponse")] +pub struct MsgValsetUpdatedClaimResponse {} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MsgUpdateParams")] +pub struct MsgUpdateParams { + /// authority is the address of the governance account. + #[prost(string, tag = "1")] + pub authority: ::prost::alloc::string::String, + /// params defines the peggy parameters to update. + /// + /// NOTE: All parameters must be supplied. + #[prost(message, optional, tag = "2")] + pub params: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MsgUpdateParamsResponse")] +pub struct MsgUpdateParamsResponse {} +/// GenesisState struct +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.GenesisState")] +pub struct GenesisState { + #[prost(message, optional, tag = "1")] + pub params: ::core::option::Option, + #[prost(uint64, tag = "2")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub last_observed_nonce: u64, + #[prost(message, repeated, tag = "3")] + pub valsets: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "4")] + pub valset_confirms: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "5")] + pub batches: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "6")] + pub batch_confirms: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "7")] + pub attestations: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "8")] + pub orchestrator_addresses: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "9")] + pub erc20_to_denoms: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "10")] + pub unbatched_transfers: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "11")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub last_observed_ethereum_height: u64, + #[prost(uint64, tag = "12")] + #[serde(alias = "last_outgoing_batchID")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub last_outgoing_batch_id: u64, + #[prost(uint64, tag = "13")] + #[serde(alias = "last_outgoing_poolID")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub last_outgoing_pool_id: u64, + #[prost(message, optional, tag = "14")] + pub last_observed_valset: ::core::option::Option, + #[prost(string, repeated, tag = "15")] + pub ethereum_blacklist: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +/// IDSet represents a set of IDs +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.IDSet")] +pub struct IdSet { + #[prost(uint64, repeated, tag = "1")] + pub ids: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.BatchFees")] +pub struct BatchFees { + #[prost(string, tag = "1")] + pub token: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub total_fees: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.BlacklistEthereumAddressesProposal")] +pub struct BlacklistEthereumAddressesProposal { + #[prost(string, tag = "1")] + pub title: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub description: ::prost::alloc::string::String, + #[prost(string, repeated, tag = "3")] + pub blacklist_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.RevokeEthereumBlacklistProposal")] +pub struct RevokeEthereumBlacklistProposal { + #[prost(string, tag = "1")] + pub title: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub description: ::prost::alloc::string::String, + #[prost(string, repeated, tag = "3")] + pub blacklist_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryParamsRequest")] +#[proto_query( + path = "/injective.peggy.v1.Query/Params", + response_type = QueryParamsResponse +)] +pub struct QueryParamsRequest {} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryParamsResponse")] +pub struct QueryParamsResponse { + #[prost(message, optional, tag = "1")] + pub params: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryCurrentValsetRequest")] +#[proto_query( + path = "/injective.peggy.v1.Query/CurrentValset", + response_type = QueryCurrentValsetResponse +)] +pub struct QueryCurrentValsetRequest {} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryCurrentValsetResponse")] +pub struct QueryCurrentValsetResponse { + #[prost(message, optional, tag = "1")] + pub valset: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryValsetRequestRequest")] +#[proto_query( + path = "/injective.peggy.v1.Query/ValsetRequest", + response_type = QueryValsetRequestResponse +)] +pub struct QueryValsetRequestRequest { + #[prost(uint64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub nonce: u64, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryValsetRequestResponse")] +pub struct QueryValsetRequestResponse { + #[prost(message, optional, tag = "1")] + pub valset: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryValsetConfirmRequest")] +#[proto_query( + path = "/injective.peggy.v1.Query/ValsetConfirm", + response_type = QueryValsetConfirmResponse +)] +pub struct QueryValsetConfirmRequest { + #[prost(uint64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub nonce: u64, + #[prost(string, tag = "2")] + pub address: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryValsetConfirmResponse")] +pub struct QueryValsetConfirmResponse { + #[prost(message, optional, tag = "1")] + pub confirm: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryValsetConfirmsByNonceRequest")] +#[proto_query( + path = "/injective.peggy.v1.Query/ValsetConfirmsByNonce", + response_type = QueryValsetConfirmsByNonceResponse +)] +pub struct QueryValsetConfirmsByNonceRequest { + #[prost(uint64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub nonce: u64, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryValsetConfirmsByNonceResponse")] +pub struct QueryValsetConfirmsByNonceResponse { + #[prost(message, repeated, tag = "1")] + pub confirms: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryLastValsetRequestsRequest")] +#[proto_query( + path = "/injective.peggy.v1.Query/LastValsetRequests", + response_type = QueryLastValsetRequestsResponse +)] +pub struct QueryLastValsetRequestsRequest {} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryLastValsetRequestsResponse")] +pub struct QueryLastValsetRequestsResponse { + #[prost(message, repeated, tag = "1")] + pub valsets: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryLastPendingValsetRequestByAddrRequest")] +#[proto_query( + path = "/injective.peggy.v1.Query/LastPendingValsetRequestByAddr", + response_type = QueryLastPendingValsetRequestByAddrResponse +)] +pub struct QueryLastPendingValsetRequestByAddrRequest { + #[prost(string, tag = "1")] + pub address: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryLastPendingValsetRequestByAddrResponse")] +pub struct QueryLastPendingValsetRequestByAddrResponse { + #[prost(message, repeated, tag = "1")] + pub valsets: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryBatchFeeRequest")] +#[proto_query( + path = "/injective.peggy.v1.Query/BatchFees", + response_type = QueryBatchFeeResponse +)] +pub struct QueryBatchFeeRequest {} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryBatchFeeResponse")] +pub struct QueryBatchFeeResponse { + #[prost(message, repeated, tag = "1")] + pub batch_fees: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryLastPendingBatchRequestByAddrRequest")] +#[proto_query( + path = "/injective.peggy.v1.Query/LastPendingBatchRequestByAddr", + response_type = QueryLastPendingBatchRequestByAddrResponse +)] +pub struct QueryLastPendingBatchRequestByAddrRequest { + #[prost(string, tag = "1")] + pub address: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryLastPendingBatchRequestByAddrResponse")] +pub struct QueryLastPendingBatchRequestByAddrResponse { + #[prost(message, optional, tag = "1")] + pub batch: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryOutgoingTxBatchesRequest")] +#[proto_query( + path = "/injective.peggy.v1.Query/OutgoingTxBatches", + response_type = QueryOutgoingTxBatchesResponse +)] +pub struct QueryOutgoingTxBatchesRequest {} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryOutgoingTxBatchesResponse")] +pub struct QueryOutgoingTxBatchesResponse { + #[prost(message, repeated, tag = "1")] + pub batches: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryBatchRequestByNonceRequest")] +#[proto_query( + path = "/injective.peggy.v1.Query/BatchRequestByNonce", + response_type = QueryBatchRequestByNonceResponse +)] +pub struct QueryBatchRequestByNonceRequest { + #[prost(uint64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub nonce: u64, + #[prost(string, tag = "2")] + pub contract_address: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryBatchRequestByNonceResponse")] +pub struct QueryBatchRequestByNonceResponse { + #[prost(message, optional, tag = "1")] + pub batch: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryBatchConfirmsRequest")] +#[proto_query( + path = "/injective.peggy.v1.Query/BatchConfirms", + response_type = QueryBatchConfirmsResponse +)] +pub struct QueryBatchConfirmsRequest { + #[prost(uint64, tag = "1")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub nonce: u64, + #[prost(string, tag = "2")] + pub contract_address: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryBatchConfirmsResponse")] +pub struct QueryBatchConfirmsResponse { + #[prost(message, repeated, tag = "1")] + pub confirms: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryLastEventByAddrRequest")] +#[proto_query( + path = "/injective.peggy.v1.Query/LastEventByAddr", + response_type = QueryLastEventByAddrResponse +)] +pub struct QueryLastEventByAddrRequest { + #[prost(string, tag = "1")] + pub address: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryLastEventByAddrResponse")] +pub struct QueryLastEventByAddrResponse { + #[prost(message, optional, tag = "1")] + pub last_claim_event: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryERC20ToDenomRequest")] +#[proto_query( + path = "/injective.peggy.v1.Query/ERC20ToDenom", + response_type = QueryErc20ToDenomResponse +)] +pub struct QueryErc20ToDenomRequest { + #[prost(string, tag = "1")] + pub erc20: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryERC20ToDenomResponse")] +pub struct QueryErc20ToDenomResponse { + #[prost(string, tag = "1")] + pub denom: ::prost::alloc::string::String, + #[prost(bool, tag = "2")] + pub cosmos_originated: bool, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryDenomToERC20Request")] +#[proto_query( + path = "/injective.peggy.v1.Query/DenomToERC20", + response_type = QueryDenomToErc20Response +)] +pub struct QueryDenomToErc20Request { + #[prost(string, tag = "1")] + pub denom: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryDenomToERC20Response")] +pub struct QueryDenomToErc20Response { + #[prost(string, tag = "1")] + pub erc20: ::prost::alloc::string::String, + #[prost(bool, tag = "2")] + pub cosmos_originated: bool, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryDelegateKeysByValidatorAddress")] +#[proto_query( + path = "/injective.peggy.v1.Query/GetDelegateKeyByValidator", + response_type = QueryDelegateKeysByValidatorAddressResponse +)] +pub struct QueryDelegateKeysByValidatorAddress { + #[prost(string, tag = "1")] + pub validator_address: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryDelegateKeysByValidatorAddressResponse")] +pub struct QueryDelegateKeysByValidatorAddressResponse { + #[prost(string, tag = "1")] + pub eth_address: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub orchestrator_address: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryDelegateKeysByEthAddress")] +#[proto_query( + path = "/injective.peggy.v1.Query/GetDelegateKeyByEth", + response_type = QueryDelegateKeysByEthAddressResponse +)] +pub struct QueryDelegateKeysByEthAddress { + #[prost(string, tag = "1")] + pub eth_address: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryDelegateKeysByEthAddressResponse")] +pub struct QueryDelegateKeysByEthAddressResponse { + #[prost(string, tag = "1")] + pub validator_address: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub orchestrator_address: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryDelegateKeysByOrchestratorAddress")] +#[proto_query( + path = "/injective.peggy.v1.Query/GetDelegateKeyByOrchestrator", + response_type = QueryDelegateKeysByOrchestratorAddressResponse +)] +pub struct QueryDelegateKeysByOrchestratorAddress { + #[prost(string, tag = "1")] + pub orchestrator_address: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryDelegateKeysByOrchestratorAddressResponse")] +pub struct QueryDelegateKeysByOrchestratorAddressResponse { + #[prost(string, tag = "1")] + pub validator_address: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub eth_address: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryPendingSendToEth")] +#[proto_query( + path = "/injective.peggy.v1.Query/GetPendingSendToEth", + response_type = QueryPendingSendToEthResponse +)] +pub struct QueryPendingSendToEth { + #[prost(string, tag = "1")] + pub sender_address: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryPendingSendToEthResponse")] +pub struct QueryPendingSendToEthResponse { + #[prost(message, repeated, tag = "1")] + pub transfers_in_batches: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "2")] + pub unbatched_transfers: ::prost::alloc::vec::Vec, +} +/// QueryModuleStateRequest is the request type for the Query/PeggyModuleState +/// RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryModuleStateRequest")] +#[proto_query( + path = "/injective.peggy.v1.Query/PeggyModuleState", + response_type = QueryModuleStateResponse +)] +pub struct QueryModuleStateRequest {} +/// QueryModuleStateResponse is the response type for the Query/PeggyModuleState +/// RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.QueryModuleStateResponse")] +pub struct QueryModuleStateResponse { + #[prost(message, optional, tag = "1")] + pub state: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MissingNoncesRequest")] +#[proto_query( + path = "/injective.peggy.v1.Query/MissingPeggoNonces", + response_type = MissingNoncesResponse +)] +pub struct MissingNoncesRequest {} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.peggy.v1.MissingNoncesResponse")] +pub struct MissingNoncesResponse { + #[prost(string, repeated, tag = "1")] + pub operator_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +pub struct PeggyQuerier<'a, Q: cosmwasm_std::CustomQuery> { + querier: &'a cosmwasm_std::QuerierWrapper<'a, Q>, +} +impl<'a, Q: cosmwasm_std::CustomQuery> PeggyQuerier<'a, Q> { + pub fn new(querier: &'a cosmwasm_std::QuerierWrapper<'a, Q>) -> Self { + Self { querier } + } + pub fn params(&self) -> Result { + QueryParamsRequest {}.query(self.querier) + } + pub fn current_valset(&self) -> Result { + QueryCurrentValsetRequest {}.query(self.querier) + } + pub fn valset_request(&self, nonce: u64) -> Result { + QueryValsetRequestRequest { nonce }.query(self.querier) + } + pub fn valset_confirm(&self, nonce: u64, address: ::prost::alloc::string::String) -> Result { + QueryValsetConfirmRequest { nonce, address }.query(self.querier) + } + pub fn valset_confirms_by_nonce(&self, nonce: u64) -> Result { + QueryValsetConfirmsByNonceRequest { nonce }.query(self.querier) + } + pub fn last_valset_requests(&self) -> Result { + QueryLastValsetRequestsRequest {}.query(self.querier) + } + pub fn last_pending_valset_request_by_addr( + &self, + address: ::prost::alloc::string::String, + ) -> Result { + QueryLastPendingValsetRequestByAddrRequest { address }.query(self.querier) + } + pub fn last_event_by_addr(&self, address: ::prost::alloc::string::String) -> Result { + QueryLastEventByAddrRequest { address }.query(self.querier) + } + pub fn get_pending_send_to_eth( + &self, + sender_address: ::prost::alloc::string::String, + ) -> Result { + QueryPendingSendToEth { sender_address }.query(self.querier) + } + pub fn batch_fees(&self) -> Result { + QueryBatchFeeRequest {}.query(self.querier) + } + pub fn outgoing_tx_batches(&self) -> Result { + QueryOutgoingTxBatchesRequest {}.query(self.querier) + } + pub fn last_pending_batch_request_by_addr( + &self, + address: ::prost::alloc::string::String, + ) -> Result { + QueryLastPendingBatchRequestByAddrRequest { address }.query(self.querier) + } + pub fn batch_request_by_nonce( + &self, + nonce: u64, + contract_address: ::prost::alloc::string::String, + ) -> Result { + QueryBatchRequestByNonceRequest { nonce, contract_address }.query(self.querier) + } + pub fn batch_confirms( + &self, + nonce: u64, + contract_address: ::prost::alloc::string::String, + ) -> Result { + QueryBatchConfirmsRequest { nonce, contract_address }.query(self.querier) + } + pub fn erc20_to_denom(&self, erc20: ::prost::alloc::string::String) -> Result { + QueryErc20ToDenomRequest { erc20 }.query(self.querier) + } + pub fn denom_to_erc20(&self, denom: ::prost::alloc::string::String) -> Result { + QueryDenomToErc20Request { denom }.query(self.querier) + } + pub fn get_delegate_key_by_validator( + &self, + validator_address: ::prost::alloc::string::String, + ) -> Result { + QueryDelegateKeysByValidatorAddress { validator_address }.query(self.querier) + } + pub fn get_delegate_key_by_eth( + &self, + eth_address: ::prost::alloc::string::String, + ) -> Result { + QueryDelegateKeysByEthAddress { eth_address }.query(self.querier) + } + pub fn get_delegate_key_by_orchestrator( + &self, + orchestrator_address: ::prost::alloc::string::String, + ) -> Result { + QueryDelegateKeysByOrchestratorAddress { orchestrator_address }.query(self.querier) + } + pub fn peggy_module_state(&self) -> Result { + QueryModuleStateRequest {}.query(self.querier) + } + pub fn missing_peggo_nonces(&self) -> Result { + MissingNoncesRequest {}.query(self.querier) + } +} diff --git a/packages/injective-std/src/types/injective/permissions/mod.rs b/packages/injective-std/src/types/injective/permissions/mod.rs new file mode 100644 index 00000000..9f64fc82 --- /dev/null +++ b/packages/injective-std/src/types/injective/permissions/mod.rs @@ -0,0 +1 @@ +pub mod v1beta1; diff --git a/packages/injective-std/src/types/injective/permissions/v1beta1.rs b/packages/injective-std/src/types/injective/permissions/v1beta1.rs new file mode 100644 index 00000000..ee728a5b --- /dev/null +++ b/packages/injective-std/src/types/injective/permissions/v1beta1.rs @@ -0,0 +1,421 @@ +use osmosis_std_derive::CosmwasmExt; +/// Params defines the parameters for the permissions module. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.Params")] +pub struct Params {} +/// Namespace defines a permissions namespace +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.Namespace")] +pub struct Namespace { + /// tokenfactory denom to which this namespace applies to + #[prost(string, tag = "1")] + pub denom: ::prost::alloc::string::String, + /// address of smart contract to apply code-based restrictions + #[prost(string, tag = "2")] + pub wasm_hook: ::prost::alloc::string::String, + #[prost(bool, tag = "3")] + pub mints_paused: bool, + #[prost(bool, tag = "4")] + pub sends_paused: bool, + #[prost(bool, tag = "5")] + pub burns_paused: bool, + /// permissions for each role + #[prost(map = "string, uint32", tag = "6")] + pub role_permissions: ::std::collections::HashMap<::prost::alloc::string::String, u32>, + #[prost(map = "string, message", tag = "7")] + pub address_roles: ::std::collections::HashMap<::prost::alloc::string::String, Roles>, +} +/// Role is only used for storage +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.Role")] +pub struct Role { + #[prost(string, tag = "1")] + pub name: ::prost::alloc::string::String, + #[prost(uint32, tag = "2")] + #[serde( + serialize_with = "crate::serde::as_str::serialize", + deserialize_with = "crate::serde::as_str::deserialize" + )] + pub permissions: u32, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.Roles")] +pub struct Roles { + #[prost(string, repeated, tag = "1")] + pub roles: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +/// used in storage +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.RoleIDs")] +pub struct RoleIDs { + #[prost(uint32, repeated, tag = "1")] + #[serde(alias = "roleIDs")] + pub role_ids: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.Voucher")] +pub struct Voucher { + #[prost(message, repeated, tag = "1")] + pub coins: ::prost::alloc::vec::Vec, +} +/// each Action enum value should be a power of two +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +#[derive(::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema)] +pub enum Action { + Unspecified = 0, + Mint = 1, + Receive = 2, + Burn = 4, +} +impl Action { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Action::Unspecified => "UNSPECIFIED", + Action::Mint => "MINT", + Action::Receive => "RECEIVE", + Action::Burn => "BURN", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "UNSPECIFIED" => Some(Self::Unspecified), + "MINT" => Some(Self::Mint), + "RECEIVE" => Some(Self::Receive), + "BURN" => Some(Self::Burn), + _ => None, + } + } +} +/// GenesisState defines the permissions module's genesis state. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.GenesisState")] +pub struct GenesisState { + /// params defines the parameters of the module. + #[prost(message, optional, tag = "1")] + pub params: ::core::option::Option, + #[prost(message, repeated, tag = "2")] + pub namespaces: ::prost::alloc::vec::Vec, +} +/// QueryParamsRequest is the request type for the Query/Params RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.QueryParamsRequest")] +#[proto_query( + path = "/injective.permissions.v1beta1.Query/Params", + response_type = QueryParamsResponse +)] +pub struct QueryParamsRequest {} +/// QueryParamsResponse is the response type for the Query/Params RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.QueryParamsResponse")] +pub struct QueryParamsResponse { + /// params defines the parameters of the module. + #[prost(message, optional, tag = "1")] + pub params: ::core::option::Option, +} +/// QueryAllNamespacesRequest is the request type for the Query/AllNamespaces RPC +/// method. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.QueryAllNamespacesRequest")] +#[proto_query( + path = "/injective.permissions.v1beta1.Query/AllNamespaces", + response_type = QueryAllNamespacesResponse +)] +pub struct QueryAllNamespacesRequest {} +/// QueryAllNamespacesResponse is the response type for the Query/AllNamespaces +/// RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.QueryAllNamespacesResponse")] +pub struct QueryAllNamespacesResponse { + #[prost(message, repeated, tag = "1")] + pub namespaces: ::prost::alloc::vec::Vec, +} +/// QueryNamespaceByDenomRequest is the request type for the +/// Query/NamespaceByDenom RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.QueryNamespaceByDenomRequest")] +#[proto_query( + path = "/injective.permissions.v1beta1.Query/NamespaceByDenom", + response_type = QueryNamespaceByDenomResponse +)] +pub struct QueryNamespaceByDenomRequest { + #[prost(string, tag = "1")] + pub denom: ::prost::alloc::string::String, + #[prost(bool, tag = "2")] + pub include_roles: bool, +} +/// QueryNamespaceByDenomResponse is the response type for the +/// Query/NamespaceByDenom RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.QueryNamespaceByDenomResponse")] +pub struct QueryNamespaceByDenomResponse { + #[prost(message, optional, tag = "1")] + pub namespace: ::core::option::Option, +} +/// QueryAddressesByRoleRequest is the request type for the Query/AddressesByRole +/// RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.QueryAddressesByRoleRequest")] +#[proto_query( + path = "/injective.permissions.v1beta1.Query/AddressesByRole", + response_type = QueryAddressesByRoleResponse +)] +pub struct QueryAddressesByRoleRequest { + #[prost(string, tag = "1")] + pub denom: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub role: ::prost::alloc::string::String, +} +/// QueryAddressesByRoleResponse is the response type for the +/// Query/AddressesByRole RPC method. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.QueryAddressesByRoleResponse")] +pub struct QueryAddressesByRoleResponse { + #[prost(string, repeated, tag = "1")] + pub addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.QueryAddressRolesRequest")] +#[proto_query( + path = "/injective.permissions.v1beta1.Query/AddressRoles", + response_type = QueryAddressRolesResponse +)] +pub struct QueryAddressRolesRequest { + #[prost(string, tag = "1")] + pub denom: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub address: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.QueryAddressRolesResponse")] +pub struct QueryAddressRolesResponse { + #[prost(string, repeated, tag = "1")] + pub roles: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.QueryVouchersForAddressRequest")] +#[proto_query( + path = "/injective.permissions.v1beta1.Query/VouchersForAddress", + response_type = QueryVouchersForAddressResponse +)] +pub struct QueryVouchersForAddressRequest { + #[prost(string, tag = "1")] + pub address: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.QueryVouchersForAddressResponse")] +pub struct QueryVouchersForAddressResponse { + #[prost(map = "string, message", tag = "1")] + pub vouchers: ::std::collections::HashMap<::prost::alloc::string::String, Voucher>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.MsgUpdateParams")] +pub struct MsgUpdateParams { + /// authority is the address of the governance account. + #[prost(string, tag = "1")] + pub authority: ::prost::alloc::string::String, + /// params defines the permissions parameters to update. + /// + /// NOTE: All parameters must be supplied. + #[prost(message, optional, tag = "2")] + pub params: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.MsgUpdateParamsResponse")] +pub struct MsgUpdateParamsResponse {} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.MsgCreateNamespace")] +pub struct MsgCreateNamespace { + #[prost(string, tag = "1")] + pub sender: ::prost::alloc::string::String, + #[prost(message, optional, tag = "2")] + pub namespace: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.MsgCreateNamespaceResponse")] +pub struct MsgCreateNamespaceResponse {} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.MsgDeleteNamespace")] +pub struct MsgDeleteNamespace { + #[prost(string, tag = "1")] + pub sender: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub namespace_denom: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.MsgDeleteNamespaceResponse")] +pub struct MsgDeleteNamespaceResponse {} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.MsgUpdateNamespace")] +pub struct MsgUpdateNamespace { + #[prost(string, tag = "1")] + pub sender: ::prost::alloc::string::String, + /// namespace denom to which this updates are applied + #[prost(string, tag = "2")] + pub namespace_denom: ::prost::alloc::string::String, + /// address of smart contract to apply code-based restrictions + #[prost(message, optional, tag = "3")] + pub wasm_hook: ::core::option::Option, + #[prost(message, optional, tag = "4")] + pub mints_paused: ::core::option::Option, + #[prost(message, optional, tag = "5")] + pub sends_paused: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub burns_paused: ::core::option::Option, +} +/// Nested message and enum types in `MsgUpdateNamespace`. +pub mod msg_update_namespace { + use osmosis_std_derive::CosmwasmExt; + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] + #[proto_message(type_url = "/injective.permissions.v1beta1.MsgUpdateNamespace.MsgSetWasmHook")] + pub struct MsgSetWasmHook { + #[prost(string, tag = "1")] + pub new_value: ::prost::alloc::string::String, + } + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] + #[proto_message(type_url = "/injective.permissions.v1beta1.MsgUpdateNamespace.MsgSetMintsPaused")] + pub struct MsgSetMintsPaused { + #[prost(bool, tag = "1")] + pub new_value: bool, + } + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] + #[proto_message(type_url = "/injective.permissions.v1beta1.MsgUpdateNamespace.MsgSetSendsPaused")] + pub struct MsgSetSendsPaused { + #[prost(bool, tag = "1")] + pub new_value: bool, + } + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] + #[proto_message(type_url = "/injective.permissions.v1beta1.MsgUpdateNamespace.MsgSetBurnsPaused")] + pub struct MsgSetBurnsPaused { + #[prost(bool, tag = "1")] + pub new_value: bool, + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.MsgUpdateNamespaceResponse")] +pub struct MsgUpdateNamespaceResponse {} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.MsgUpdateNamespaceRoles")] +pub struct MsgUpdateNamespaceRoles { + #[prost(string, tag = "1")] + pub sender: ::prost::alloc::string::String, + /// namespace denom to which this updates are applied + #[prost(string, tag = "2")] + pub namespace_denom: ::prost::alloc::string::String, + /// new role definitions or updated permissions for existing roles + #[prost(map = "string, uint32", tag = "3")] + pub role_permissions: ::std::collections::HashMap<::prost::alloc::string::String, u32>, + /// new addresses to add or new roles for existing addresses to + #[prost(map = "string, message", tag = "4")] + pub address_roles: ::std::collections::HashMap<::prost::alloc::string::String, Roles>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.MsgUpdateNamespaceRolesResponse")] +pub struct MsgUpdateNamespaceRolesResponse {} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.MsgRevokeNamespaceRoles")] +pub struct MsgRevokeNamespaceRoles { + #[prost(string, tag = "1")] + pub sender: ::prost::alloc::string::String, + /// namespace denom to which this updates are applied + #[prost(string, tag = "2")] + pub namespace_denom: ::prost::alloc::string::String, + /// map of {"address" => array of roles to revoke from this address} + #[prost(map = "string, message", tag = "3")] + pub address_roles_to_revoke: ::std::collections::HashMap<::prost::alloc::string::String, Roles>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.MsgRevokeNamespaceRolesResponse")] +pub struct MsgRevokeNamespaceRolesResponse {} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.MsgClaimVoucher")] +pub struct MsgClaimVoucher { + #[prost(string, tag = "1")] + pub sender: ::prost::alloc::string::String, + /// address of the original voucher sender (typically a module address, + #[prost(string, tag = "2")] + pub originator: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] +#[proto_message(type_url = "/injective.permissions.v1beta1.MsgClaimVoucherResponse")] +pub struct MsgClaimVoucherResponse {} +pub struct PermissionsQuerier<'a, Q: cosmwasm_std::CustomQuery> { + querier: &'a cosmwasm_std::QuerierWrapper<'a, Q>, +} +impl<'a, Q: cosmwasm_std::CustomQuery> PermissionsQuerier<'a, Q> { + pub fn new(querier: &'a cosmwasm_std::QuerierWrapper<'a, Q>) -> Self { + Self { querier } + } + pub fn params(&self) -> Result { + QueryParamsRequest {}.query(self.querier) + } + pub fn all_namespaces(&self) -> Result { + QueryAllNamespacesRequest {}.query(self.querier) + } + pub fn namespace_by_denom( + &self, + denom: ::prost::alloc::string::String, + include_roles: bool, + ) -> Result { + QueryNamespaceByDenomRequest { denom, include_roles }.query(self.querier) + } + pub fn address_roles( + &self, + denom: ::prost::alloc::string::String, + address: ::prost::alloc::string::String, + ) -> Result { + QueryAddressRolesRequest { denom, address }.query(self.querier) + } + pub fn addresses_by_role( + &self, + denom: ::prost::alloc::string::String, + role: ::prost::alloc::string::String, + ) -> Result { + QueryAddressesByRoleRequest { denom, role }.query(self.querier) + } + pub fn vouchers_for_address(&self, address: ::prost::alloc::string::String) -> Result { + QueryVouchersForAddressRequest { address }.query(self.querier) + } +} From 24bc9533515e329a469da42401809da08e0eab72 Mon Sep 17 00:00:00 2001 From: maxrobot Date: Mon, 22 Jul 2024 16:05:31 +0100 Subject: [PATCH 2/3] chore: tidy --- .../injective-std/src/types/cosmos/base/query/v1beta1.rs | 4 ++-- packages/injective-std/src/types/cosmos/base/v1beta1.rs | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/injective-std/src/types/cosmos/base/query/v1beta1.rs b/packages/injective-std/src/types/cosmos/base/query/v1beta1.rs index 3a772e71..70d66010 100644 --- a/packages/injective-std/src/types/cosmos/base/query/v1beta1.rs +++ b/packages/injective-std/src/types/cosmos/base/query/v1beta1.rs @@ -8,7 +8,7 @@ use osmosis_std_derive::CosmwasmExt; /// } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] -#[proto_message(type_url = "/cosmos.base.query.v1beta1.PageRequestPageRequestPageRequest")] +#[proto_message(type_url = "/cosmos.base.query.v1beta1.PageRequest")] pub struct PageRequest { /// key is a value returned in PageResponse.next_key to begin /// querying the next page most efficiently. Only one of offset or key @@ -53,7 +53,7 @@ pub struct PageRequest { /// } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] -#[proto_message(type_url = "/cosmos.base.query.v1beta1.PageResponsePageResponsePageResponse")] +#[proto_message(type_url = "/cosmos.base.query.v1beta1.PageResponse")] pub struct PageResponse { /// next_key is the key to be passed to PageRequest.key to /// query the next page most efficiently. It will be empty if diff --git a/packages/injective-std/src/types/cosmos/base/v1beta1.rs b/packages/injective-std/src/types/cosmos/base/v1beta1.rs index d55de8ab..faa6e769 100644 --- a/packages/injective-std/src/types/cosmos/base/v1beta1.rs +++ b/packages/injective-std/src/types/cosmos/base/v1beta1.rs @@ -5,7 +5,7 @@ use osmosis_std_derive::CosmwasmExt; /// signatures required by gogoproto. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] -#[proto_message(type_url = "/cosmos.base.v1beta1.CoinCoinCoin")] +#[proto_message(type_url = "/cosmos.base.v1beta1.Coin")] pub struct Coin { #[prost(string, tag = "1")] pub denom: ::prost::alloc::string::String, @@ -18,7 +18,7 @@ pub struct Coin { /// signatures required by gogoproto. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] -#[proto_message(type_url = "/cosmos.base.v1beta1.DecCoinDecCoinDecCoin")] +#[proto_message(type_url = "/cosmos.base.v1beta1.DecCoin")] pub struct DecCoin { #[prost(string, tag = "1")] pub denom: ::prost::alloc::string::String, @@ -28,7 +28,7 @@ pub struct DecCoin { /// IntProto defines a Protobuf wrapper around an Int object. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] -#[proto_message(type_url = "/cosmos.base.v1beta1.IntProtoIntProtoIntProto")] +#[proto_message(type_url = "/cosmos.base.v1beta1.IntProto")] pub struct IntProto { #[prost(string, tag = "1")] pub int: ::prost::alloc::string::String, @@ -36,7 +36,7 @@ pub struct IntProto { /// DecProto defines a Protobuf wrapper around a Dec object. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, Eq, ::prost::Message, ::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema, CosmwasmExt)] -#[proto_message(type_url = "/cosmos.base.v1beta1.DecProtoDecProtoDecProto")] +#[proto_message(type_url = "/cosmos.base.v1beta1.DecProto")] pub struct DecProto { #[prost(string, tag = "1")] pub dec: ::prost::alloc::string::String, From 80382c4d1a92877c53bba9b09ae6d0742700acdf Mon Sep 17 00:00:00 2001 From: maxrobot Date: Mon, 22 Jul 2024 16:15:38 +0100 Subject: [PATCH 3/3] fix: readded min_notional --- .../injective-std/src/types/injective/exchange/v1beta1.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/injective-std/src/types/injective/exchange/v1beta1.rs b/packages/injective-std/src/types/injective/exchange/v1beta1.rs index 49366734..99b737fa 100644 --- a/packages/injective-std/src/types/injective/exchange/v1beta1.rs +++ b/packages/injective-std/src/types/injective/exchange/v1beta1.rs @@ -1863,6 +1863,8 @@ pub struct MsgInstantSpotMarketLaunch { /// quantity #[prost(string, tag = "6")] pub min_quantity_tick_size: ::prost::alloc::string::String, + #[prost(string, tag = "7")] + pub min_notional: ::prost::alloc::string::String, } /// MsgInstantSpotMarketLaunchResponse defines the Msg/InstantSpotMarketLaunch /// response type. @@ -1928,6 +1930,8 @@ pub struct MsgInstantPerpetualMarketLaunch { /// quantity #[prost(string, tag = "13")] pub min_quantity_tick_size: ::prost::alloc::string::String, + #[prost(string, tag = "14")] + pub min_notional: ::prost::alloc::string::String, } /// MsgInstantPerpetualMarketLaunchResponse defines the /// Msg/InstantPerpetualMarketLaunchResponse response type.