152 #include <anyoption/anyoption.hpp>
156 #include <functional>
158 using namespace opentxs;
162 "Category Error",
"Advanced utilities",
"The user wallet",
163 "Misc",
"Markets (bid/ask)",
"Asset accounts",
164 "Dealing with other users",
"Financial instruments",
"Basket currencies",
169 "accept all incoming transfers, receipts, payments, invoices."},
171 "accept all incoming transfers and receipts in MyAcct's inbox."},
173 "pay all invoices in MyNym's payments inbox."},
175 "accept all incoming transfers and payments into MyAcct."},
177 "accept all incoming payments in MyNym's payments inbox."},
179 "accept all receipts in MyAcct's inbox."},
181 "accept all incoming transfers in MyAcct's inbox."},
183 "paste an existing asset contract, import into your wallet."},
185 "paste an existing server contract, import into your wallet."},
187 "add a signature to a contract without releasing others."},
189 "cancel an uncashed outgoing instrument from outpayment box."},
191 "change the master passphrase for the wallet."},
193 "download a nym's public key based on his ID."},
195 "clear all expired records."},
197 "clear all archived records and receipts."},
199 "confirm your agreement to a smart contract or payment plan."},
201 "OT-base64-decode out of armor."},
203 "decrypt ciphertext using nym's private key."},
205 "delete an in-mail item."},
207 "delete an out-mail item."},
209 "deposit cash, cheque, voucher, or invoice."},
211 "discard an uncashed incoming instrument from payments inbox."},
213 "edit an asset account label, as it appears in your wallet."},
215 "edit a currency contract label, as it appears in your wallet."},
217 "edit the nym label, as it appears in your wallet."},
219 "edit a server contract label, as it appears in your wallet."},
221 "OT-base64-encode into armor."},
223 "encrypt plaintext to a nym's public key."},
225 "exchange in/out of a basket currency."},
227 "export a cash purse."},
229 "export an OT Nym as a single importable file."},
231 "download an asset or server contract by its ID."},
233 "download the list of markets."},
235 "download mynym's list of market offers."},
237 "download the list of market offers."},
239 "downloads a box receipt based on transaction ID."},
241 "import a cash purse."},
243 "import an OT Nym that was previously exported."},
245 "show inbox of a particular account."},
247 "show in-mail for a particular nym."},
249 "show contents of incoming payments box."},
251 "issue a currency contract onto an OT server."},
253 "kill an active recurring market offer."},
255 "kill an active recurring payment plan."},
257 "create a new asset account."},
259 "create a new asset contract."},
261 "create a new basket currency."},
263 "create a new credential for a specific nym."},
265 "create a new symmetric key."},
268 "create a new market offer."},
270 "create a new server contract."},
272 "show outbox of a particular account."},
274 "show out-mail for a particular nym."},
276 "show contents of outgoing payments box."},
278 "password-decrypt a ciphertext using a symmetric key."},
280 "password-encrypt a plaintext using a symmetric key."},
282 "dividend payout, sent to all shareholders (in voucher form.)"},
286 "as merchant, propose a payment plan to a customer."},
288 "performs both refreshnym and refreshaccount."},
290 "download latest intermediary files for myacct."},
292 "download latest intermediary files for mynym."},
294 "register a nym onto an OT server."},
296 "revoke one of a nym's credentials."},
298 "send cash from mypurse to recipient, withdraw if necessary."},
300 "write a cheque and then send it to the recipient."},
302 "write an invoice and then send it to the recipient."},
304 "send a message to another nym's in-mail."},
306 "withdraw a voucher and then send it to the recipient."},
308 "show account stats for a single account."},
310 "show the asset accounts in the wallet."},
312 "show the active cron item IDs, or the details of one by ID."},
314 "show the currency contracts in the wallet."},
316 "show balance for a specific account."},
318 "show basket currencies available in the wallet."},
320 "show a specific credential in detail."},
322 "show the credentials for a specific nym."},
324 "show contents of expired record box."},
326 "show the list of markets."},
328 "show mint file for specific asset ID. Download if necessary."},
330 "show mynym's offers on a particular server and market."},
332 "show the statistics for a specific nym."},
334 "show the nyms in the wallet."},
336 "show all offers on a particular server and market."},
338 "show the details of an incoming payment in the payments inbox."},
340 "show contents of cash purse."},
342 "show contents of record box."},
344 "show the server contracts in the wallet."},
346 "show wallet contents."},
348 "sign a contract, releasing all other signatures first."},
350 "send a transfer from myacct to hisacct."},
352 "trigger a clause on a running smart contract."},
354 "verify your intermediary files against last signed receipt."},
356 "verify a signature on a contract."},
358 "withdraw cash. (From acct on server into local purse.)"},
361 "withdraw from myacct as a voucher (cashier's cheque.)"},
363 "write a cheque and print it out to the screen."},
365 "write an invoice and print it out to the screen."},
378 string& Opentxs::ltrim(
string& s)
381 find_if(s.begin(), s.end(), not1(ptr_fun<int, int>(isspace))));
385 string& Opentxs::rtrim(
string& s)
388 find_if(s.rbegin(), s.rend(), not1(ptr_fun<int, int>(isspace))).base(),
393 string& Opentxs::trim(
string& s)
395 return ltrim(rtrim(s));
398 void Opentxs::handleCommandLineArguments(
int argc,
char* argv[], AnyOption& opt)
401 bool configPathFound = configPath.Exists() && 3 < configPath.GetLength();
403 "RegisterAPIWithScript: Must set Config Path first!\n");
404 otWarn <<
"Using configuration path: " << configPath <<
"\n";
407 opt.addUsage(
" Opentxs CLI Usage: ");
410 opt.setCommandFlag(
"echocommand");
411 opt.setCommandFlag(
"echoexpand");
412 opt.setCommandFlag(
"errorlist");
413 opt.setCommandFlag(
"noprompt");
414 opt.setCommandFlag(
"test");
416 opt.setCommandOption(
"args");
417 opt.setCommandOption(
"myacct");
418 opt.setCommandOption(
"mynym");
419 opt.setCommandOption(
"mypurse");
420 opt.setCommandOption(
"hisacct");
421 opt.setCommandOption(
"hisnym");
422 opt.setCommandOption(
"hispurse");
423 opt.setCommandOption(
"server");
426 opt.setFileOption(
"defaultserver");
427 opt.setFileOption(
"defaultmyacct");
428 opt.setFileOption(
"defaultmynym");
429 opt.setFileOption(
"defaultmypurse");
430 opt.setFileOption(
"defaulthisacct");
431 opt.setFileOption(
"defaulthisnym");
432 opt.setFileOption(
"defaulthispurse");
434 OTString optionsFile(
"command-line-ot.opt"), iniFileExact;
435 bool buildFullPathSuccess =
437 OT_ASSERT_MSG(buildFullPathSuccess,
"Unable to set Full Path");
439 opt.processFile(iniFileExact.
Get());
440 opt.processCommandArgs(argc, argv);
443 const char* Opentxs::getOption(AnyOption& opt,
const char* optionName,
444 const char* defaultName)
447 const char* value = opt.getValue(optionName);
448 if (value !=
nullptr) {
449 otWarn <<
"Option " << optionName <<
": " << value <<
"\n";
454 if (
nullptr != defaultName) {
455 value = opt.getValue(defaultName);
456 if (value !=
nullptr) {
457 otWarn <<
"Default " << optionName <<
": " << value <<
"\n";
469 if (value.size() == 0) {
470 otInfo <<
"Variable " << name <<
" isn't set\n";
474 otWarn <<
"Variable " << name <<
" has value: " << value <<
"\n";
482 int Opentxs::processCommand(
OT_ME& madeEasy, AnyOption& opt)
486 argArgs = getOption(opt,
"args",
"defaultargs");
487 argHisAcct = getOption(opt,
"hisacct",
"defaulthisacct");
488 argHisNym = getOption(opt,
"hisnym",
"defaulthisnym");
489 argHisPurse = getOption(opt,
"hispurse",
"defaulthispurse");
490 argMyAcct = getOption(opt,
"myacct",
"defaultmyacct");
491 argMyNym = getOption(opt,
"mynym",
"defaultmynym");
492 argMyPurse = getOption(opt,
"mypurse",
"defaultmypurse");
493 argServer = getOption(opt,
"server",
"defaultserver");
499 "The wallet object is still nullptr, somehow. Please load it.\n");
502 if (argServer.size() > 0) {
504 if (serverContract ==
nullptr) {
506 if (serverContract ==
nullptr) {
507 otOut <<
"Unknown default server contract for --server "
508 << argServer <<
"\n";
511 if (serverContract !=
nullptr) {
514 argServer = tmp.
Get();
515 otOut <<
"Using as server: " << argServer <<
"\n";
520 if (argMyNym.size() > 0) {
522 if (myNym ==
nullptr) {
524 if (myNym ==
nullptr) {
525 otOut <<
"Unknown default nym for --mynym " << argMyNym <<
"\n";
528 if (myNym !=
nullptr) {
531 argMyNym = tmp.
Get();
532 otOut <<
"Using as mynym: " << argMyNym <<
"\n";
537 if (argMyAcct.size() > 0) {
539 if (myAccount ==
nullptr) {
541 if (myAccount ==
nullptr) {
542 otOut <<
"Unknown default account for --myacct " << argMyAcct
546 if (myAccount !=
nullptr) {
549 argMyAcct = tmp.
Get();
550 otOut <<
"Using as myacct: " << argMyAcct <<
"\n";
555 if (argHisNym.size() > 0) {
557 if (hisNym ==
nullptr) {
559 if (hisNym ==
nullptr) {
560 otOut <<
"Unknown default nym for --hisnym " << argHisNym
564 if (hisNym !=
nullptr) {
567 argHisNym = tmp.
Get();
568 otOut <<
"Using as hisnym: " << argHisNym <<
"\n";
573 if (argHisAcct.size() > 0) {
575 if (hisAccount ==
nullptr) {
577 if (hisAccount ==
nullptr) {
578 otOut <<
"Unknown default account for --hisacct " << argHisAcct
582 if (hisAccount !=
nullptr) {
585 argHisAcct = tmp.
Get();
586 otOut <<
"Using as hisacct: " << argHisAcct <<
"\n";
592 if (argMyPurse.size() > 0) {
594 if (myAssetContract ==
nullptr) {
596 if (myAssetContract ==
nullptr) {
597 otOut <<
"Unknown default purse for --mypurse " << argMyPurse
601 if (myAssetContract !=
nullptr) {
605 argMyPurse = tmp.
Get();
606 otOut <<
"Using as mypurse: " << argMyPurse <<
"\n";
612 if (argHisPurse.size() > 0) {
614 if (hisAssetContract ==
nullptr) {
617 if (hisAssetContract ==
nullptr) {
618 otOut <<
"Unknown default purse for --hispurse " << argHisPurse
622 if (hisAssetContract !=
nullptr) {
626 argHisPurse = tmp.
Get();
627 otOut <<
"Using as hispurse: " << argHisPurse <<
"\n";
631 if (serverContract !=
nullptr && myNym !=
nullptr) {
633 *serverContract, *myNym,
637 string command =
"list";
638 if (opt.getArgc() == 1) {
639 command = opt.getArgv(0);
642 otOut <<
"Expecting a single opentxs command:\n\n";
645 typedef unique_ptr<OTVariable> GlobalVar;
646 GlobalVar varArgs(setGlobalVar(madeEasy,
"Args", argArgs));
647 GlobalVar varHisAcct(setGlobalVar(madeEasy,
"HisAcct", argHisAcct));
648 GlobalVar varHisNym(setGlobalVar(madeEasy,
"HisNym", argHisNym));
649 GlobalVar varHisPurse(setGlobalVar(madeEasy,
"HisPurse", argHisPurse));
650 GlobalVar varMyAcct(setGlobalVar(madeEasy,
"MyAcct", argMyAcct));
651 GlobalVar varMyNym(setGlobalVar(madeEasy,
"MyNym", argMyNym));
652 GlobalVar varMyPurse(setGlobalVar(madeEasy,
"MyPurse", argMyPurse));
653 GlobalVar varServer(setGlobalVar(madeEasy,
"Server", argServer));
657 otWarn <<
"Script output:\n\n";
659 int result = opentxsCommand(command);
660 return opt.getArgc() == 1 ? result : -2;
663 int Opentxs::opentxsCommand(
const string& command)
665 if (
"exit" == command ||
"quit" == command) {
669 if (
"version" == command) {
671 otOut <<
"Copyright (C) 2014 Open Transactions Developers\n";
675 if (
"list" == command) {
676 otOut <<
"\nCommands:\n\n";
679 otOut << (cmd.command + spaces18).substr(0, 18);
688 if (
"help" == command) {
690 string categoryGroup[catLast];
691 for (
int i = 1; i < catLast; i++) {
692 categoryGroup[i] = string(
"\n ") +
categoryName[i] +
":\n";
696 otOut <<
"\nCommands:\n";
699 categoryGroup[cmd.category] +=
700 (cmd.command + spaces18).substr(0, 18) + cmd.
helpText +
"\n";
704 for (
int i = 1; i < catLast; i++) {
705 otOut << categoryGroup[i];
714 if (cmd.command == command) {
715 int32_t returnValue = (*cmd.function)();
716 switch (returnValue) {
724 otOut <<
"\nUndefined error code: \"" << returnValue
732 otOut <<
"\nUndefined command: \"" << command <<
"\" -- Try 'list'.\n\n";
742 map<string, string> macros;
743 vector<int> errorLineNumbers;
744 vector<string> errorCommands;
749 handleCommandLineArguments(argc, argv, opt);
751 if (opt.getArgc() != 0) {
752 return processCommand(madeEasy, opt);
756 bool echoCommand = opt.getFlag(
"echocommand") || opt.getFlag(
"test");
757 bool echoExpand = opt.getFlag(
"echoexpand") || opt.getFlag(
"test");
758 bool noPrompt = opt.getFlag(
"noprompt") || opt.getFlag(
"test");
763 cout <<
"\nopentxs> ";
781 if (cmd ==
"quit" || cmd ==
"exit") {
787 if (cmd.size() == 0 || cmd[0] ==
'#') {
791 string originalCmd = cmd;
810 size_t nameLength = 1;
811 while (nameLength < cmd.length() &&
812 (isalnum(cmd[nameLength]) || cmd[nameLength] ==
'_')) {
815 string macroName = cmd.substr(0, nameLength);
818 size_t i = nameLength;
819 while (i < cmd.length() && isspace(cmd[i])) {
823 if (i == cmd.length() || cmd[i] !=
'=') {
824 otOut <<
"\n\n***ERROR***\n"
825 "Expected macro definition of the form: "
826 "$macroName = macroValue\n"
827 "Command was: " << cmd;
832 string macroValue = cmd.substr(i + 1);
833 macros[macroName] = trim(macroValue);
842 for (
size_t macro = cmd.find_first_of(
"$"); macro != string::npos;
843 macro = cmd.find_first_of(
"$", macro + 1)) {
845 if (macro > 0 && cmd[macro - 1] ==
'\\') {
850 size_t macroEnd = macro + 1;
851 while (macroEnd < cmd.length() &&
852 (isalnum(cmd[macroEnd]) || cmd[macroEnd] ==
'_')) {
857 string macroName = cmd.substr(macro, macroEnd - macro);
858 auto found = macros.find(macroName);
859 if (found == macros.end()) {
860 otOut <<
"\n\n***ERROR***\n"
861 "Macro expansion failed.\n"
862 "Unknown macro: " << macroName
864 "Command was: " << cmd;
869 string& macroValue = found->second;
873 if (expansions > 100) {
874 otOut <<
"\n\n***ERROR***\n"
875 "Macro expansion failed.\n"
876 "Too many expansions at macro: " << macroName
878 "Command was: " << cmd;
883 if (cmd.length() + macroValue.length() > 10000) {
884 otOut <<
"\n\n***ERROR***\n"
885 "Macro expansion failed.\n"
886 "Command length exceeded at macro: " << macroName
888 "Macro value is: " << macroValue
890 "Command was: " << cmd;
896 cmd = cmd.substr(0, macro) + macroValue + cmd.substr(macroEnd);
899 if (echoExpand && cmd != originalCmd) {
900 otOut << cmd << endl;
904 if (expansions > 99) {
910 bool expectFailure = cmd[0] ==
'!';
921 vector<string> arguments;
924 arguments.push_back(argv[0]);
927 char* buf =
new char[cmd.length() + 1];
931 size_t i = expectFailure ? 1 : 0;
932 while (i < cmd.length()) {
934 while (i < cmd.length() && isspace(cmd[i])) {
937 if (i == cmd.length()) {
948 while (i < cmd.length() && !isspace(cmd[i])) {
950 if (cmd[i] !=
'\\') {
959 *arg++ = i < cmd.length() ? cmd[i++] :
'\\';
964 arguments.push_back(start);
974 while (i < cmd.length() && cmd[i] !=
'"') {
976 if (cmd[i] !=
'\\') {
985 *arg++ = i < cmd.length() ? cmd[i++] :
'\\';
990 arguments.push_back(start);
997 int newArgc = arguments.size();
998 char** newArgv =
new char* [newArgc];
999 for (
int i = 0; i < newArgc; i++) {
1000 newArgv[i] =
const_cast<char*
>(arguments[i].c_str());
1005 handleCommandLineArguments(newArgc, newArgv, opt);
1008 if (expectFailure != (0 != processCommand(madeEasy, opt))) {
1009 errorLineNumbers.push_back(lineNumber);
1010 errorCommands.push_back(originalCmd);
1011 otOut <<
"\n\n***ERROR***\n"
1012 << (expectFailure ?
"Expected command to fail.\nSucceeding"
1013 :
"Failed") <<
" command was: " << cmd;
1023 int failed = errorLineNumbers.size();
1024 cout <<
"\n\n" << processed <<
" commands were processed.\n" << failed
1025 <<
" commands failed.\n" << endl;
1027 if (opt.getFlag(
"errorList") || opt.getFlag(
"test")) {
1028 for (
size_t i = 0; i < errorLineNumbers.size(); i++) {
1029 cout <<
"\nFailed line " << errorLineNumbers[i] <<
": "
1030 << errorCommands[i] << endl;
1034 return failed == 0 ? 0 : -1;
EXPORT static OT_COMMANDS_OT int32_t mainEditAccount()
EXPORT static OT_COMMANDS_OT int32_t mainOutbox()
EXPORT bool SetFocusToServerAndNym(OTServerContract &theServerContract, OTPseudonym &theNym, TransportCallback *pCallback) const
EXPORT static OT_COMMANDS_OT int32_t mainKillOffer()
EXPORT static OT_COMMANDS_OT int32_t mainImportNym()
EXPORT static OT_COMMANDS_OT int32_t mainNewKey()
static EXPORT bool AppCleanup()
EXPORT static OT_COMMANDS_OT int32_t mainVerifyReceipt()
EXPORT static OT_COMMANDS_OT int32_t mainShowMarkets()
EXPORT static OT_COMMANDS_OT int32_t mainInbox()
EXPORT static OT_COMMANDS_OT int32_t mainPayDividend()
EXPORT static OT_COMMANDS_OT int32_t mainPayInvoice()
EXPORT static OT_COMMANDS_OT int32_t mainNewCredential()
OTClient * GetClient() const
EXPORT static OT_COMMANDS_OT int32_t mainShowAccounts()
EXPORT static OT_COMMANDS_OT int32_t mainKillPlan()
EXPORT static OT_COMMANDS_OT int32_t mainImportCash()
EXPORT void GetIdentifier(OTIdentifier &theIdentifier) const
EXPORT OTAccount * GetAccountPartialMatch(std::string PARTIAL_ID)
EXPORT static OT_COMMANDS_OT int32_t mainWithdrawVoucher()
EXPORT static OT_COMMANDS_OT int32_t mainVerifySignature()
EXPORT static OT_COMMANDS_OT int32_t mainShowNyms()
EXPORT static OT_OTAPI_OT void CopyVariables()
EXPORT static OT_COMMANDS_OT int32_t mainSendCheque()
EXPORT static OT_COMMANDS_OT int32_t mainWithdrawCash()
EXPORT static OT_COMMANDS_OT int32_t mainDeleteInmail()
EXPORT static OT_COMMANDS_OT int32_t mainExchangeBasket()
EXPORT static OT_COMMANDS_OT int32_t mainWriteCheque()
EXPORT OTAssetContract * GetAssetContract(const OTIdentifier &theContractID)
EXPORT static OT_COMMANDS_OT int32_t mainEncrypt()
EXPORT static OT_COMMANDS_OT int32_t mainShowAccount()
EXPORT static OT_COMMANDS_OT int32_t mainSignContract()
EXPORT static OT_COMMANDS_OT int32_t mainDecode()
EXPORT OTWallet * GetWallet(const char *szFuncName=nullptr) const
EXPORT static OT_COMMANDS_OT int32_t mainAddSignature()
EXPORT static OT_COMMANDS_OT int32_t mainRefresh()
EXPORT OTPseudonym * GetNymByIDPartialMatch(std::string PARTIAL_ID)
OTLOG_IMPORT OTLogStream otOut
EXPORT static OT_COMMANDS_OT int32_t mainGetContract()
EXPORT static OT_COMMANDS_OT int32_t mainClearExpired()
EXPORT bool GetAccount(int32_t iIndex, OTIdentifier &THE_ID, OTString &THE_NAME)
EXPORT static OT_COMMANDS_OT int32_t mainSendCash()
EXPORT static OT_COMMANDS_OT int32_t mainAddAsset()
EXPORT static OT_COMMANDS_OT int32_t mainShowBasket()
EXPORT static OT_COMMANDS_OT int32_t mainSendMessage()
EXPORT static OT_COMMANDS_OT int32_t mainShowMyOffers()
EXPORT static OT_COMMANDS_OT int32_t mainChangePw()
static EXPORT bool RelativeToCanonical(OTString &out_strCanonicalPath, const OTString &strBasePath, const OTString &strRelativePath)
EXPORT static OT_COMMANDS_OT int32_t mainConfirm()
EXPORT static OT_COMMANDS_OT int32_t mainDiscard()
EXPORT static OT_COMMANDS_OT int32_t mainNewServer()
int run(int argc, char *argv[])
static EXPORT const OTString & AppDataFolder()
EXPORT static OT_COMMANDS_OT int32_t mainShowExpired()
EXPORT static OT_COMMANDS_OT int32_t mainAcceptTransfers()
EXPORT static OT_COMMANDS_OT int32_t mainAcceptPayments()
EXPORT static OT_COMMANDS_OT int32_t mainShowWallet()
EXPORT static OT_COMMANDS_OT int32_t mainRefreshAccount()
EXPORT bool LoadWallet() const
EXPORT static OT_COMMANDS_OT int32_t mainNewOffer()
EXPORT static OT_COMMANDS_OT int32_t mainDeposit()
EXPORT static OT_COMMANDS_OT int32_t mainOutpayment()
EXPORT static OT_COMMANDS_OT int32_t mainIssueAsset()
EXPORT static OT_COMMANDS_OT int32_t mainRefreshNym()
EXPORT static OT_COMMANDS_OT int32_t mainGetOffers()
EXPORT static OT_COMMANDS_OT int32_t mainExportCash()
EXPORT static OT_COMMANDS_OT int32_t mainShowMint()
EXPORT OTPseudonym * GetNymByID(const OTIdentifier &NYM_ID)
EXPORT static OT_COMMANDS_OT int32_t mainAddServer()
EXPORT static OT_COMMANDS_OT int32_t mainAcceptMoney()
EXPORT static OT_COMMANDS_OT int32_t mainAcceptAll()
#define OPENTXS_VERSION_STRING
EXPORT static OT_COMMANDS_OT int32_t mainShowNym()
EXPORT static OT_COMMANDS_OT int32_t mainGetReceipt()
EXPORT OTAssetContract * GetAssetContractPartialMatch(std::string PARTIAL_ID)
EXPORT static OT_COMMANDS_OT int32_t mainEditServer()
#define OT_ASSERT_MSG(x, s)
EXPORT static OT_COMMANDS_OT int32_t mainEditAsset()
EXPORT static OT_COMMANDS_OT int32_t mainShowAssets()
static EXPORT bool AppInit()
OTLOG_IMPORT OTLogStream otInfo
EXPORT static OT_COMMANDS_OT int32_t mainCancel()
EXPORT static OT_COMMANDS_OT int32_t mainDecrypt()
const char * categoryName[]
EXPORT static OT_COMMANDS_OT int32_t mainAcceptReceipts()
virtual EXPORT void GetIdentifier(OTIdentifier &theIdentifier) const
EXPORT static OT_COMMANDS_OT int32_t mainShowCredentials()
EXPORT static OT_COMMANDS_OT int32_t mainRegisterNym()
EXPORT static OT_COMMANDS_OT int32_t mainNewAccount()
EXPORT static OT_COMMANDS_OT int32_t mainRevokeCredential()
EXPORT static OT_COMMANDS_OT int32_t mainTriggerClause()
EXPORT static OT_COMMANDS_OT int32_t mainExportNym()
OTLOG_IMPORT OTLogStream otWarn
EXPORT const char * Get() const
EXPORT static OT_COMMANDS_OT int32_t mainNewNym()
const OTIdentifier & GetPurportedAccountID() const
Opentxs::CommandEntry commands[]
EXPORT static OT_COMMANDS_OT int32_t mainShowOffers()
EXPORT static OT_COMMANDS_OT int32_t mainShowPurse()
EXPORT static OT_COMMANDS_OT int32_t mainShowBalance()
EXPORT static OT_COMMANDS_OT int32_t mainDeleteOutmail()
EXPORT void AddVariable(const std::string &str_var_name, OTVariable &theVar)
EXPORT static OT_COMMANDS_OT int32_t mainEditNym()
EXPORT static OT_COMMANDS_OT int32_t mainPasswordDecrypt()
EXPORT void GetString(OTString &theStr) const
EXPORT static OT_COMMANDS_OT int32_t mainAcceptInvoices()
EXPORT static OT_COMMANDS_OT int32_t mainSendInvoice()
EXPORT static OT_COMMANDS_OT int32_t mainGetMarkets()
EXPORT static OT_COMMANDS_OT int32_t mainSendVoucher()
EXPORT static OT_COMMANDS_OT int32_t mainShowActive()
EXPORT static OT_COMMANDS_OT int32_t mainCheckNym()
EXPORT OTServerContract * GetServerContractPartialMatch(std::string PARTIAL_ID)
static EXPORT OT_API * OTAPI()
EXPORT static OT_COMMANDS_OT int32_t mainShowCredential()
EXPORT static OT_COMMANDS_OT int32_t mainClearRecords()
EXPORT OTServerContract * GetServerContract(const OTIdentifier &SERVER_ID)
EXPORT static OT_COMMANDS_OT int32_t mainInpayments()
EXPORT static OT_COMMANDS_OT int32_t mainShowServers()
EXPORT static OT_COMMANDS_OT int32_t mainProposePlan()
EXPORT static OT_COMMANDS_OT int32_t mainShowRecords()
EXPORT static OT_COMMANDS_OT int32_t mainNewBasket()
EXPORT static OT_COMMANDS_OT int32_t mainInmail()
EXPORT static OT_COMMANDS_OT int32_t mainOutmail()
EXPORT static OT_COMMANDS_OT int32_t mainGetMyOffers()
EXPORT static OT_COMMANDS_OT int32_t mainWriteInvoice()
EXPORT static OT_COMMANDS_OT int32_t mainShowPayment()
EXPORT static OT_COMMANDS_OT int32_t mainNewAsset()
EXPORT static OT_COMMANDS_OT int32_t mainAcceptInbox()
EXPORT static OT_COMMANDS_OT int32_t mainTransfer()
EXPORT static OT_COMMANDS_OT int32_t mainPasswordEncrypt()
EXPORT static OT_COMMANDS_OT int32_t mainEncode()