Skip to content

Commit

Permalink
fix: Convert to capabilities correctly
Browse files Browse the repository at this point in the history
--- don't change below this line ---
ENG-3790 Took 1 hour 5 minutes
  • Loading branch information
dianacarvalho1 committed Oct 29, 2024
1 parent 670719b commit 71a1e22
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 28 deletions.
20 changes: 10 additions & 10 deletions src/protocol/vm/adapter_contract.rs
Original file line number Diff line number Diff line change
Expand Up @@ -153,16 +153,16 @@ where
.call("getCapabilities", args, 1, None, None, None, U256::zero())
.await?
.return_value;
let capabilities: HashSet<Capability> = res
.into_iter()
.filter_map(|token| {
if let Token::Uint(value) = token {
Capability::from_uint(value).ok()
} else {
None
}
})
.collect();
let capabilities: HashSet<Capability> = match res.first() {
Some(Token::Array(inner_tokens)) => inner_tokens
.iter()
.filter_map(|token| match token {
Token::Uint(value) => Capability::from_uint(*value).ok(),
_ => None,
})
.collect(),
_ => HashSet::new(),
};

Ok(capabilities)
}
Expand Down
36 changes: 18 additions & 18 deletions src/protocol/vm/models.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,29 +5,29 @@ use ethers::abi::Uint;
#[allow(dead_code)]
#[derive(Eq, PartialEq, Hash, Debug)]
pub enum Capability {
SellSide = 0,
BuySide = 1,
PriceFunction = 2,
FeeOnTransfer = 3,
ConstantPrice = 4,
TokenBalanceIndependent = 5,
ScaledPrice = 6,
HardLimits = 7,
MarginalPrice = 8,
SellSide = 1,
BuySide = 2,
PriceFunction = 3,
FeeOnTransfer = 4,
ConstantPrice = 5,
TokenBalanceIndependent = 6,
ScaledPrice = 7,
HardLimits = 8,
MarginalPrice = 9,
}

impl Capability {
pub fn from_uint(value: Uint) -> Result<Self, ProtosimError> {
match value.as_u32() {
0 => Ok(Capability::SellSide),
1 => Ok(Capability::BuySide),
2 => Ok(Capability::PriceFunction),
3 => Ok(Capability::FeeOnTransfer),
4 => Ok(Capability::ConstantPrice),
5 => Ok(Capability::TokenBalanceIndependent),
6 => Ok(Capability::ScaledPrice),
7 => Ok(Capability::HardLimits),
8 => Ok(Capability::MarginalPrice),
1 => Ok(Capability::SellSide),
2 => Ok(Capability::BuySide),
3 => Ok(Capability::PriceFunction),
4 => Ok(Capability::FeeOnTransfer),
5 => Ok(Capability::ConstantPrice),
6 => Ok(Capability::TokenBalanceIndependent),
7 => Ok(Capability::ScaledPrice),
8 => Ok(Capability::HardLimits),
9 => Ok(Capability::MarginalPrice),
_ => {
Err(ProtosimError::DecodingError(format!("Unexpected Capability value: {}", value)))
}
Expand Down

0 comments on commit 71a1e22

Please sign in to comment.