diff --git a/Cargo.lock b/Cargo.lock index e3bea7534e..b72b887f29 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1572,6 +1572,7 @@ dependencies = [ "cosmwasm-std", "schemars", "serde", + "serde_repr", ] [[package]] @@ -2783,6 +2784,17 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_repr" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98d0516900518c29efa217c298fa1f4e6c6ffc85ae29fd7f4ee48f176e1a9ed5" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "serde_urlencoded" version = "0.7.0" diff --git a/common/mixnet-contract/Cargo.toml b/common/mixnet-contract/Cargo.toml index a645e97ef7..cf58e7d104 100644 --- a/common/mixnet-contract/Cargo.toml +++ b/common/mixnet-contract/Cargo.toml @@ -9,4 +9,5 @@ edition = "2018" [dependencies] cosmwasm-std = { version = "0.14.1" } serde = { version = "1.0", features = ["derive"] } +serde_repr = "0.1" schemars = "0.8" diff --git a/common/mixnet-contract/src/mixnode.rs b/common/mixnet-contract/src/mixnode.rs index be271da83d..9870516b93 100644 --- a/common/mixnet-contract/src/mixnode.rs +++ b/common/mixnet-contract/src/mixnode.rs @@ -2,10 +2,10 @@ #![allow(clippy::field_reassign_with_default)] use crate::{IdentityKey, SphinxKey}; - use cosmwasm_std::{coin, Addr, Coin}; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; +use serde_repr::{Deserialize_repr, Serialize_repr}; use std::fmt::Display; #[derive(Clone, Debug, Deserialize, PartialEq, Serialize, JsonSchema)] @@ -20,12 +20,13 @@ pub struct MixNode { pub version: String, } -#[derive(Copy, Clone, Debug, Deserialize, PartialEq, Serialize, JsonSchema)] +#[derive(Copy, Clone, Debug, Serialize_repr, PartialEq, Deserialize_repr, JsonSchema)] +#[repr(u8)] pub enum Layer { - Gateway, - One, - Two, - Three, + Gateway = 0, + One = 1, + Two = 2, + Three = 3, } #[derive(Clone, Debug, Deserialize, PartialEq, Serialize, JsonSchema)] diff --git a/contracts/mixnet/Cargo.lock b/contracts/mixnet/Cargo.lock index b8057fa632..5ed48b2d71 100644 --- a/contracts/mixnet/Cargo.lock +++ b/contracts/mixnet/Cargo.lock @@ -1,5 +1,7 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +version = 3 + [[package]] name = "base64" version = "0.13.0" @@ -303,6 +305,7 @@ dependencies = [ "cosmwasm-std", "schemars", "serde", + "serde_repr", ] [[package]] @@ -447,6 +450,17 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_repr" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98d0516900518c29efa217c298fa1f4e6c6ffc85ae29fd7f4ee48f176e1a9ed5" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "sha2" version = "0.9.5"