1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
use clap::ArgMatches;
use crate::command::{CliCommand, CliCommandInfo, CliError, ProcessResult};
use crate::math::{get_sqrt_price_at_tick, get_tick_at_sqrt_price};
pub fn parse_tick_to_sqrt_price<'a>(matches: &'a ArgMatches) -> Result<CliCommandInfo<'a>, CliError> {
let tick = matches.value_of("tick");
Ok(CliCommandInfo {
command: CliCommand::MathTickToSqrtPrice {
tick: tick.unwrap().parse::<i32>().unwrap(),
},
signers: vec![],
})
}
pub fn parse_sqrt_price_to_tick<'a>(matches: &'a ArgMatches) -> Result<CliCommandInfo<'a>, CliError> {
let price = matches.value_of("price");
Ok(CliCommandInfo {
command: CliCommand::MathSqrtPriceToTick {
price: price.unwrap().parse::<u128>().unwrap(),
},
signers: vec![],
})
}
pub fn process_tick_to_sqrt_price(tick: i32) -> ProcessResult {
Ok(get_sqrt_price_at_tick(tick).to_string())
}
pub fn process_sqrt_price_to_tick(price: u128) -> ProcessResult {
Ok(get_tick_at_sqrt_price(price).to_string())
}