msg.rs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. use cosmwasm_std::{Binary, HumanAddr, Uint128};
  2. use schemars::JsonSchema;
  3. use terraswap::asset::{Asset, AssetInfo};
  4. use serde::{
  5. Deserialize,
  6. Serialize,
  7. };
  8. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
  9. pub struct InitMsg {
  10. // governance contract details
  11. pub gov_chain: u16,
  12. pub gov_address: Binary,
  13. pub wormhole_contract: HumanAddr,
  14. pub wrapped_asset_code_id: u64,
  15. }
  16. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
  17. #[serde(rename_all = "snake_case")]
  18. pub enum HandleMsg {
  19. RegisterAssetHook {
  20. asset_id: Binary,
  21. },
  22. DepositTokens,
  23. WithdrawTokens {
  24. asset: AssetInfo,
  25. },
  26. InitiateTransfer {
  27. asset: Asset,
  28. recipient_chain: u16,
  29. recipient: Binary,
  30. fee: Uint128,
  31. nonce: u32,
  32. },
  33. SubmitVaa {
  34. data: Binary,
  35. },
  36. CreateAssetMeta {
  37. asset_info: AssetInfo,
  38. nonce: u32,
  39. },
  40. }
  41. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
  42. #[serde(rename_all = "snake_case")]
  43. pub enum QueryMsg {
  44. WrappedRegistry { chain: u16, address: Binary },
  45. }
  46. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
  47. #[serde(rename_all = "snake_case")]
  48. pub struct WrappedRegistryResponse {
  49. pub address: HumanAddr,
  50. }
  51. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
  52. #[serde(rename_all = "snake_case")]
  53. pub enum WormholeQueryMsg {
  54. VerifyVAA { vaa: Binary, block_time: u64 },
  55. }