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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
use common::command::{CliConfig, ProcessResult};
use common::init::{Matche};
use solana_client::rpc_client::RpcClient;
use crate::command::quarry::info::process_farming_quarry_mine_info;
use crate::command::quarry::list::process_farming_quarry_mine_list;
use crate::command::quarry::new::process_farming_quarry_mine_new;
use crate::command::quarry::set_famine::process_farming_quarry_set_famine;
use crate::command::quarry::update_share::process_farming_quarry_update_share;
use crate::command::rewarder::info::process_farming_mine_rewarder_info;
use crate::command::rewarder::list::process_farming_mine_rewarder_list;
use crate::command::rewarder::new::process_farming_mine_rewarder_new;
use crate::command::rewarder::set_annual_rate::process_farming_mine_rewarder_set_annual_rate;
use crate::command::rewarder::sync_quarry_rewards::process_farming_mine_rewarder_sync_quarry_rewards;
use crate::app::{Cli, MineCli, QuarryCommands, RewarderCommands};
pub fn process_command(config: &mut CliConfig, rpc_client: RpcClient, app: Box<dyn Matche>) -> ProcessResult {
let app = app.as_any().downcast_ref::<Cli>().unwrap();
match &app.command {
MineCli::Quarry { command } => {
match command {
QuarryCommands::New {
rewarder,
mint,
famine_ts,
share,
} => process_farming_quarry_mine_new(&rpc_client, config, *rewarder, *mint, *famine_ts, *share),
QuarryCommands::List => {
process_farming_quarry_mine_list(&rpc_client, config)
}
QuarryCommands::Info { rewarder, mint } => {
process_farming_quarry_mine_info(&rpc_client, config, *rewarder, *mint)
}
QuarryCommands::UpdateShare {
rewarder,
mint,
share,
} => process_farming_quarry_update_share(&rpc_client, config, *rewarder, *mint, *share),
QuarryCommands::SetFamine { rewarder, mint, ts } => {
process_farming_quarry_set_famine(&rpc_client, config, *rewarder, *mint, *ts)
}
}
},
MineCli::Rewarder { command } => {
match command {
RewarderCommands::New {
wrapper,
annual_rate,
} => process_farming_mine_rewarder_new(&rpc_client, config, *wrapper, *annual_rate),
RewarderCommands::List {} => {
process_farming_mine_rewarder_list(&rpc_client, config)
}
RewarderCommands::Info { rewarder } => {
process_farming_mine_rewarder_info(&rpc_client, config, *rewarder)
}
RewarderCommands::SetAnnualRate { rewarder, rate } => {
process_farming_mine_rewarder_set_annual_rate(&rpc_client, config, *rewarder, *rate)
}
RewarderCommands::SyncQuarryRewards { rewarder, mint } => {
process_farming_mine_rewarder_sync_quarry_rewards(&rpc_client, config, *rewarder, mint)
}
}
},
}
}