2022-06-16 09:48:01 -07:00
|
|
|
use cosmwasm_std::{
|
|
|
|
Binary,
|
|
|
|
Uint128,
|
|
|
|
};
|
|
|
|
use schemars::JsonSchema;
|
|
|
|
use serde::{
|
|
|
|
Deserialize,
|
|
|
|
Serialize,
|
|
|
|
};
|
|
|
|
use terraswap::asset::{
|
|
|
|
Asset,
|
|
|
|
AssetInfo,
|
|
|
|
};
|
|
|
|
|
2022-06-07 08:36:21 -07:00
|
|
|
use crate::token_address::{
|
|
|
|
ExternalTokenId,
|
|
|
|
TokenId,
|
|
|
|
};
|
|
|
|
|
2022-06-16 09:48:01 -07:00
|
|
|
type HumanAddr = String;
|
|
|
|
|
2022-07-18 14:24:13 -07:00
|
|
|
/// The instantiation parameters of the token bridge contract. See
|
|
|
|
/// [`crate::state::ConfigInfo`] for more details on what these fields mean.
|
2022-06-16 09:48:01 -07:00
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
|
|
|
|
pub struct InstantiateMsg {
|
|
|
|
pub gov_chain: u16,
|
|
|
|
pub gov_address: Binary,
|
|
|
|
|
|
|
|
pub wormhole_contract: HumanAddr,
|
|
|
|
pub wrapped_asset_code_id: u64,
|
2022-07-18 14:24:13 -07:00
|
|
|
|
|
|
|
pub chain_id: u16,
|
2022-06-16 09:48:01 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
|
|
|
|
#[serde(rename_all = "snake_case")]
|
|
|
|
pub enum ExecuteMsg {
|
|
|
|
RegisterAssetHook {
|
2022-06-07 08:36:21 -07:00
|
|
|
chain: u16,
|
|
|
|
token_address: ExternalTokenId,
|
2022-06-16 09:48:01 -07:00
|
|
|
},
|
|
|
|
|
|
|
|
DepositTokens {},
|
|
|
|
WithdrawTokens {
|
|
|
|
asset: AssetInfo,
|
|
|
|
},
|
|
|
|
|
|
|
|
InitiateTransfer {
|
|
|
|
asset: Asset,
|
|
|
|
recipient_chain: u16,
|
|
|
|
recipient: Binary,
|
|
|
|
fee: Uint128,
|
|
|
|
nonce: u32,
|
|
|
|
},
|
|
|
|
|
|
|
|
InitiateTransferWithPayload {
|
|
|
|
asset: Asset,
|
|
|
|
recipient_chain: u16,
|
|
|
|
recipient: Binary,
|
|
|
|
fee: Uint128,
|
|
|
|
payload: Binary,
|
|
|
|
nonce: u32,
|
|
|
|
},
|
|
|
|
|
|
|
|
SubmitVaa {
|
|
|
|
data: Binary,
|
|
|
|
},
|
|
|
|
|
|
|
|
CreateAssetMeta {
|
|
|
|
asset_info: AssetInfo,
|
|
|
|
nonce: u32,
|
|
|
|
},
|
|
|
|
|
|
|
|
CompleteTransferWithPayload {
|
|
|
|
data: Binary,
|
|
|
|
relayer: HumanAddr,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
|
|
|
|
#[serde(rename_all = "snake_case")]
|
|
|
|
pub struct MigrateMsg {}
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
|
|
|
|
#[serde(rename_all = "snake_case")]
|
|
|
|
pub enum QueryMsg {
|
|
|
|
WrappedRegistry { chain: u16, address: Binary },
|
|
|
|
TransferInfo { vaa: Binary },
|
2022-06-07 08:36:21 -07:00
|
|
|
ExternalId { external_id: Binary },
|
2022-06-16 09:48:01 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
|
|
|
|
#[serde(rename_all = "snake_case")]
|
|
|
|
pub struct WrappedRegistryResponse {
|
|
|
|
pub address: HumanAddr,
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
|
|
|
|
#[serde(rename_all = "snake_case")]
|
|
|
|
pub struct TransferInfoResponse {
|
|
|
|
pub amount: Uint128,
|
2022-06-07 08:36:21 -07:00
|
|
|
pub token_address: [u8; 32],
|
2022-06-16 09:48:01 -07:00
|
|
|
pub token_chain: u16,
|
2022-06-07 08:36:21 -07:00
|
|
|
pub recipient: [u8; 32],
|
2022-06-16 09:48:01 -07:00
|
|
|
pub recipient_chain: u16,
|
|
|
|
pub fee: Uint128,
|
|
|
|
pub payload: Vec<u8>,
|
|
|
|
}
|
2022-06-07 08:36:21 -07:00
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
|
|
|
|
#[serde(rename_all = "snake_case")]
|
|
|
|
pub struct ExternalIdResponse {
|
|
|
|
pub token_id: TokenId,
|
|
|
|
}
|