msg.rs 1.6 KB

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