|
|
@@ -1,6 +1,5 @@
|
|
|
+use cosmwasm_schema::{cw_serde, QueryResponses};
|
|
|
use cosmwasm_std::{Binary, Uint128};
|
|
|
-use schemars::JsonSchema;
|
|
|
-use serde::{Deserialize, Serialize};
|
|
|
|
|
|
use crate::token_address::{ExternalTokenId, TokenId};
|
|
|
|
|
|
@@ -8,7 +7,7 @@ type HumanAddr = String;
|
|
|
|
|
|
/// The instantiation parameters of the token bridge contract. See
|
|
|
/// [`crate::state::ConfigInfo`] for more details on what these fields mean.
|
|
|
-#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
|
|
|
+#[cw_serde]
|
|
|
pub struct InstantiateMsg {
|
|
|
pub gov_chain: u16,
|
|
|
pub gov_address: Binary,
|
|
|
@@ -22,8 +21,7 @@ pub struct InstantiateMsg {
|
|
|
pub native_decimals: u8,
|
|
|
}
|
|
|
|
|
|
-#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
|
|
|
-#[serde(rename_all = "snake_case")]
|
|
|
+#[cw_serde]
|
|
|
pub enum ExecuteMsg {
|
|
|
RegisterAssetHook {
|
|
|
chain: u16,
|
|
|
@@ -67,28 +65,30 @@ pub enum ExecuteMsg {
|
|
|
},
|
|
|
}
|
|
|
|
|
|
-#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
|
|
|
-#[serde(rename_all = "snake_case")]
|
|
|
+#[cw_serde]
|
|
|
pub struct MigrateMsg {}
|
|
|
|
|
|
-#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
|
|
|
-#[serde(rename_all = "snake_case")]
|
|
|
+#[cw_serde]
|
|
|
+#[derive(QueryResponses)]
|
|
|
pub enum QueryMsg {
|
|
|
+ #[returns(WrappedRegistryResponse)]
|
|
|
WrappedRegistry { chain: u16, address: Binary },
|
|
|
+ #[returns(TransferInfoResponse)]
|
|
|
TransferInfo { vaa: Binary },
|
|
|
+ #[returns(ExternalIdResponse)]
|
|
|
ExternalId { external_id: Binary },
|
|
|
+ #[returns(IsVaaRedeemedResponse)]
|
|
|
IsVaaRedeemed { vaa: Binary },
|
|
|
+ #[returns(ChainRegistrationResponse)]
|
|
|
ChainRegistration { chain: u16 },
|
|
|
}
|
|
|
|
|
|
-#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
|
|
|
-#[serde(rename_all = "snake_case")]
|
|
|
+#[cw_serde]
|
|
|
pub struct WrappedRegistryResponse {
|
|
|
pub address: HumanAddr,
|
|
|
}
|
|
|
|
|
|
-#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
|
|
|
-#[serde(rename_all = "snake_case")]
|
|
|
+#[cw_serde]
|
|
|
pub struct TransferInfoResponse {
|
|
|
pub amount: Uint128,
|
|
|
pub token_address: [u8; 32],
|
|
|
@@ -99,26 +99,22 @@ pub struct TransferInfoResponse {
|
|
|
pub payload: Vec<u8>,
|
|
|
}
|
|
|
|
|
|
-#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
|
|
|
-#[serde(rename_all = "snake_case")]
|
|
|
+#[cw_serde]
|
|
|
pub struct ExternalIdResponse {
|
|
|
pub token_id: TokenId,
|
|
|
}
|
|
|
|
|
|
-#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
|
|
|
-#[serde(rename_all = "snake_case")]
|
|
|
+#[cw_serde]
|
|
|
pub struct IsVaaRedeemedResponse {
|
|
|
pub is_redeemed: bool,
|
|
|
}
|
|
|
|
|
|
-#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
|
|
|
-#[serde(rename_all = "snake_case")]
|
|
|
+#[cw_serde]
|
|
|
pub struct ChainRegistrationResponse {
|
|
|
pub address: Binary,
|
|
|
}
|
|
|
|
|
|
-#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
|
|
|
-#[serde(rename_all = "snake_case")]
|
|
|
+#[cw_serde]
|
|
|
pub struct CompleteTransferResponse {
|
|
|
// All addresses are bech32-encoded strings.
|
|
|
|
|
|
@@ -132,7 +128,7 @@ pub struct CompleteTransferResponse {
|
|
|
pub fee: Uint128,
|
|
|
}
|
|
|
|
|
|
-#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
|
|
|
+#[cw_serde]
|
|
|
pub struct Asset {
|
|
|
pub info: AssetInfo,
|
|
|
pub amount: Uint128,
|
|
|
@@ -140,8 +136,7 @@ pub struct Asset {
|
|
|
|
|
|
/// AssetInfo contract_addr is usually passed from the cw20 hook
|
|
|
/// so we can trust the contract_addr is properly validated.
|
|
|
-#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
|
|
|
-#[serde(rename_all = "snake_case")]
|
|
|
+#[cw_serde]
|
|
|
pub enum AssetInfo {
|
|
|
Token { contract_addr: String },
|
|
|
NativeToken { denom: String },
|