cli_parser.rs 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. use clap::{AppSettings, Parser, Subcommand};
  2. #[derive(Subcommand)]
  3. pub enum CliDrkSubCommands {
  4. /// Say hello to the RPC
  5. Hello {},
  6. /// Show what features the cashier supports
  7. Features {},
  8. /// Wallet operations
  9. Wallet {
  10. /// Initialize a new wallet
  11. #[clap(long)]
  12. create: bool,
  13. /// Generate wallet keypair
  14. #[clap(long)]
  15. keygen: bool,
  16. /// Get default wallet address
  17. #[clap(long)]
  18. address: bool,
  19. /// Get wallet addresses
  20. #[clap(long)]
  21. addresses: bool,
  22. /// Set default address
  23. #[clap(long, value_name = "ADDRESS")]
  24. set_default_address: Option<String>,
  25. /// Export default address
  26. #[clap(long, value_name = "PATH")]
  27. export_keypair: Option<String>,
  28. /// Import address
  29. #[clap(long, value_name = "PATH")]
  30. import_keypair: Option<String>,
  31. /// Get wallet balances
  32. #[clap(long)]
  33. balances: bool,
  34. },
  35. /// Get hexidecimal ID for token symbol
  36. Id {
  37. /// Which network to use (bitcoin/solana/...)
  38. #[clap(long)]
  39. network: String,
  40. /// Which token to query (btc/sol/usdc/...)
  41. #[clap(parse(try_from_str))]
  42. token: String,
  43. },
  44. /// Withdraw Dark tokens for clear tokens
  45. Withdraw {
  46. /// Which network to use (bitcoin/solana/...)
  47. #[clap(long)]
  48. network: String,
  49. /// Which token to receive (btc/sol/usdc/...)
  50. #[clap(parse(try_from_str))]
  51. token_sym: String,
  52. /// Recipient address
  53. #[clap(parse(try_from_str))]
  54. address: String,
  55. /// Amount to withdraw
  56. #[clap(parse(try_from_str))]
  57. amount: u64,
  58. },
  59. /// Transfer Dark tokens to address
  60. Transfer {
  61. /// Which network to use (bitcoin/solana/...)
  62. #[clap(long)]
  63. network: String,
  64. /// Which token to transfer (btc/sol/usdc/...)
  65. #[clap(parse(try_from_str))]
  66. token_sym: String,
  67. /// Recipient address
  68. #[clap(parse(try_from_str))]
  69. address: String,
  70. /// Amount to transfer
  71. #[clap(parse(try_from_str))]
  72. amount: f64,
  73. },
  74. /// Deposit clear tokens for Dark tokens
  75. Deposit {
  76. /// Which network to use (bitcoin/solana/...)
  77. #[clap(long)]
  78. network: String,
  79. /// Which token to deposit (btc/sol/usdc/...)
  80. #[clap(parse(try_from_str))]
  81. token_sym: String,
  82. },
  83. }
  84. /// Drk cli
  85. #[derive(Parser)]
  86. #[clap(name = "drk")]
  87. #[clap(author, version, about)]
  88. #[clap(global_setting(AppSettings::PropagateVersion))]
  89. #[clap(global_setting(AppSettings::UseLongFormatForHelpSubcommand))]
  90. #[clap(setting(AppSettings::SubcommandRequiredElseHelp))]
  91. pub struct CliDrk {
  92. /// Sets a custom config file
  93. #[clap(short, long)]
  94. pub config: Option<String>,
  95. /// Increase verbosity
  96. #[clap(short, parse(from_occurrences))]
  97. pub verbose: u8,
  98. #[clap(subcommand)]
  99. pub command: Option<CliDrkSubCommands>,
  100. }
  101. /// Gatewayd cli
  102. #[derive(Parser)]
  103. #[clap(name = "gatewayd")]
  104. pub struct CliGatewayd {
  105. /// Sets a custom config file
  106. #[clap(short, long)]
  107. pub config: Option<String>,
  108. /// Increase verbosity
  109. #[clap(short, parse(from_occurrences))]
  110. pub verbose: u8,
  111. }
  112. /// Darkfid cli
  113. #[derive(Parser)]
  114. #[clap(name = "darkfid")]
  115. pub struct CliDarkfid {
  116. /// Sets a custom config file
  117. #[clap(short, long)]
  118. pub config: Option<String>,
  119. /// Local cashier public key
  120. #[clap(long)]
  121. pub cashier: Option<String>,
  122. /// Increase verbosity
  123. #[clap(short, parse(from_occurrences))]
  124. pub verbose: u8,
  125. /// Refresh the wallet and slabstore
  126. #[clap(short, long)]
  127. pub refresh: bool,
  128. }
  129. /// Cashierd cli
  130. #[derive(Parser)]
  131. #[clap(name = "cashierd")]
  132. pub struct CliCashierd {
  133. /// Sets a custom config file
  134. #[clap(short, long)]
  135. pub config: Option<String>,
  136. /// Get Cashier Public key
  137. #[clap(short, long)]
  138. pub address: bool,
  139. /// Increase verbosity
  140. #[clap(short, parse(from_occurrences))]
  141. pub verbose: u8,
  142. /// Refresh the wallet and slabstore
  143. #[clap(short, long)]
  144. pub refresh: bool,
  145. }
  146. /// Ircd cli
  147. #[derive(Parser)]
  148. #[clap(name = "ircd")]
  149. pub struct CliIrcd {
  150. /// Increase verbosity
  151. #[clap(short, parse(from_occurrences))]
  152. pub verbose: u8,
  153. }