bLoadedSignedNymfile) && (false == bLoadedPublicKey)) // It's like this now so unregistered Nyms
171 msgOut.m_strRequestNum.Set(theMessage.m_strRequestNum);
179 (theMessage.m_strNymID.Get())))))
183 0,
"UserCommandProcessor::ProcessUserCommand: Nym %s: failed "
184 "attempt to message the server, while server is in "
185 "**LOCK DOWN MODE**.\n",
186 theMessage.m_strNymID.Get());
192 if (!(server_->m_strServerID == theMessage.m_strServerID)) {
193 OTLog::Error(
"UserCommandProcessor::ProcessUserCommand: Invalid server "
195 "command request.\n");
199 OTLog::Output(4,
"Received valid Server ID with command request.\n");
203 OTPseudonym theNym(theMessage.m_strNymID);
208 else if (!pNym->CompareID(theNym)) {
209 OTString strTempNymID;
210 pNym->GetIdentifier(strTempNymID);
212 "UserCommandProcessor::ProcessUserCommand: NymID on the optional "
215 "does NOT match the NymID on theMessage (%s). (Returning false.)\n",
216 strTempNymID.Get(), theMessage.m_strNymID.Get());
228 const bool bNymIsServerNym =
229 (server_->m_strServerUserID.
Compare(theMessage.m_strNymID) ?
true
234 if (bNymIsServerNym) pNym = &server_->m_nymServer;
332 OTString strMsgNymID;
335 if (theMessage.m_strCommand.Compare(
"checkServerID")) {
337 "\n==> Received a checkServerID message. Nym: %s ...\n",
340 std::unique_ptr<OTAsymmetricKey> pNymAuthentKey(
342 std::unique_ptr<OTAsymmetricKey> pNymEncryptKey(
346 OTAsymmetricKey& nymAuthentKey = *pNymAuthentKey;
347 OTAsymmetricKey& nymEncryptionKey = *pNymEncryptKey;
348 const bool bIfNymPublicKey =
349 (nymAuthentKey.SetPublicKey(theMessage.m_strNymPublicKey,
351 nymEncryptionKey.SetPublicKey(theMessage.m_strNymID2,
354 if (bIfNymPublicKey) {
355 if (theMessage.VerifyWithKey(nymAuthentKey))
361 3,
"Signature verified! The message WAS signed by "
362 "the Private Authentication Key inside the message.\n");
369 if (
nullptr != pConnection)
370 pConnection->SetPublicKey(
371 theMessage.m_strNymID2);
376 UserCmdCheckServerID(*pNym, theMessage, msgOut);
381 0,
"checkServerID: Signature verification failed!\n");
386 OTLog::Error(
"Failure reading Nym's signing and/or encryption keys "
412 else if (theMessage.m_strCommand.Compare(
"createUserAccount")) {
414 0,
"\n==> Received a createUserAccount message. Nym: %s ...\n",
417 if (bNymIsServerNym) {
419 "**** Sorry, the server Nym is forbidden from using "
420 "the createUserAccount message as a client. "
421 "PLEASE REMOVE THAT NYM FROM YOUR WALLET!! Create a "
422 "fresh Nym to use. ***\n");
427 OTASCIIArmor& ascArmor = theMessage.m_ascPayload;
430 OTASCIIArmor& ascArmor2 = theMessage.m_ascPayload2;
431 const bool bHasCredentials = (ascArmor.Exists() && ascArmor2.Exists());
437 OTString strCredentialList(ascArmor);
439 if (strCredentialList.Exists()) {
442 OTDB::StringMap* pMap =
443 dynamic_cast<OTDB::StringMap*
>(pStorable.get());
446 "StringMap object.\n",
449 auto& theMap = pMap->the_map;
473 pNym->LoadFromString(strCredentialList, &theMap)) {
475 "%s: @createUserAccount: Failure loading nym %s "
476 "from credential string.\n",
477 __FUNCTION__, theMessage.m_strNymID.Get());
488 else if (!pNym->VerifyPseudonym()) {
490 "%s: @createUserAccount: Loaded nym %s "
491 "from credentials, but then it failed verifying.\n",
492 __FUNCTION__, theMessage.m_strNymID.Get());
505 theMessage.VerifySignature(*pNym))
512 "Authentication signature -- "
513 "verification failed!\n");
519 "Signature verified! The message WAS signed by "
520 "the Nym\'s private authentication key.\n");
524 std::string str_nym_id =
525 theMessage.m_strNymID.Get();
526 OTString strFilename;
527 strFilename.Format(
"%s.cred", str_nym_id.c_str());
529 bool bStoredList =
false;
532 if (ascArmor.Exists() &&
533 ascArmor.WriteArmoredString(
535 "CREDENTIAL LIST") &&
543 "trying to armor or store: %s\n",
544 __FUNCTION__, strFilename.Get());
549 "saving public credential "
550 "list for Nym: %s\n",
552 for (
auto& it : theMap) {
553 std::string str_cred_id = it.first;
554 OTString strCredential(it.second);
555 bool bStoredCredential =
false;
557 OTASCIIArmor ascLoopArmor(strCredential);
558 if (ascLoopArmor.Exists() &&
559 ascLoopArmor.WriteArmoredString(
568 str_nym_id, str_cred_id);
569 if (!bStoredCredential)
571 "%s: @createUserAccount: Failed "
572 "trying to store credential %s for "
574 __FUNCTION__, str_cred_id.c_str(),
581 str_cred_id.c_str());
587 OTString strPublicEncrKey, strPublicSignKey;
588 OTAsymmetricKey& thePublicEncrKey =
590 pNym->GetPublicEncrKey();
591 OTAsymmetricKey& thePublicSignKey =
593 pNym->GetPublicSignKey();
595 thePublicEncrKey.GetPublicKey(
598 thePublicSignKey.GetPublicKey(
606 if (strPublicSignKey.Exists())
616 if (strPublicEncrKey.Exists() &&
617 (
nullptr != pConnection))
618 pConnection->SetPublicKey(thePublicEncrKey);
633 0,
"Verifying account doesn't already exist... "
634 "(IGNORE ANY ERRORS, IMMEDIATELY BELOW, "
635 "ABOUT FAILURE OPENING FILES)\n");
639 msgOut.m_strCommand =
640 "@createUserAccount";
642 msgOut.m_strNymID = theMessage.m_strNymID;
643 msgOut.m_strServerID =
644 server_->m_strServerID;
647 msgOut.m_bSuccess =
false;
656 OTString tempInMessage;
657 theMessage.SaveContractRaw(tempInMessage);
658 msgOut.m_ascInReferenceTo.SetString(tempInMessage);
660 bool bLoadedSignedNymfile =
661 pNym->LoadSignedNymfile(server_->m_nymServer);
668 if (bLoadedSignedNymfile &&
669 (
false == pNym->IsMarkedForDeletion())) {
672 "(Allowed in order to prevent sync issues) "
673 "==> User is registering nym that already "
675 theMessage.m_strNymID.Get());
677 OTString strNymContents;
678 pNym->SavePseudonym(strNymContents);
679 OTIdentifier theNewNymID,
680 SERVER_ID(server_->m_strServerID);
681 pNym->GetIdentifier(theNewNymID);
682 OTLedger theNymbox(theNewNymID, theNewNymID,
684 bool bSuccessLoadingNymbox =
685 theNymbox.LoadNymbox();
687 if (
true == bSuccessLoadingNymbox)
688 bSuccessLoadingNymbox =
689 (theNymbox.VerifyContractID() &&
690 theNymbox.VerifyAccount(
691 server_->m_nymServer));
698 bSuccessLoadingNymbox =
699 theNymbox.GenerateLedger(
700 theNewNymID, SERVER_ID,
704 if (bSuccessLoadingNymbox) {
705 bSuccessLoadingNymbox =
706 theNymbox.SignContract(
707 server_->m_nymServer);
709 if (bSuccessLoadingNymbox) {
710 bSuccessLoadingNymbox =
711 theNymbox.SaveContract();
713 if (bSuccessLoadingNymbox)
714 bSuccessLoadingNymbox =
715 theNymbox.SaveNymbox();
723 if (!bSuccessLoadingNymbox) {
725 "re-registration. Failed "
726 "verifying or generating "
727 "nymbox for user: %s\n",
728 theMessage.m_strNymID.Get());
730 msgOut.m_ascPayload.SetString(strNymContents);
731 msgOut.m_bSuccess = bSuccessLoadingNymbox;
732 msgOut.SignContract(server_->m_nymServer);
733 msgOut.SaveContract();
748 if (pNym->IsMarkedForDeletion())
749 pNym->MarkAsUndeleted();
755 msgOut.m_bSuccess = theMessage.SaveContract(
757 theMessage.m_strNymID.
Get());
761 if (msgOut.m_bSuccess) {
763 "account verification "
766 OTIdentifier theNewNymID,
767 SERVER_ID(server_->m_strServerID);
768 pNym->GetIdentifier(theNewNymID);
769 OTLedger theNymbox(theNewNymID, theNewNymID,
771 bool bSuccessLoadingNymbox =
772 theNymbox.LoadNymbox();
774 if (
true == bSuccessLoadingNymbox)
788 bSuccessLoadingNymbox =
789 (theNymbox.VerifyContractID() &&
790 theNymbox.VerifyAccount(
791 server_->m_nymServer));
798 bSuccessLoadingNymbox =
799 theNymbox.GenerateLedger(
800 theNewNymID, SERVER_ID,
803 if (bSuccessLoadingNymbox) {
804 bSuccessLoadingNymbox =
805 theNymbox.SignContract(
806 server_->m_nymServer);
807 if (bSuccessLoadingNymbox) {
808 bSuccessLoadingNymbox =
809 theNymbox.SaveContract();
811 if (bSuccessLoadingNymbox)
812 bSuccessLoadingNymbox =
813 theNymbox.SaveNymbox();
821 if (!bSuccessLoadingNymbox) {
823 "Error during user account "
824 "registration. Failed verifying or "
825 "generating nymbox for user: %s\n",
826 theMessage.m_strNymID.Get());
833 else if (bLoadedSignedNymfile ||
834 pNym->SaveSignedNymfile(
835 server_->m_nymServer)) {
841 OTString strNymContents;
842 pNym->SavePseudonym(strNymContents);
843 msgOut.m_ascPayload.SetString(
845 msgOut.m_bSuccess =
true;
847 server_->m_nymServer);
848 msgOut.SaveContract();
853 server_->m_nymServer);
854 msgOut.SaveContract();
860 "account verification "
862 msgOut.SignContract(server_->m_nymServer);
863 msgOut.SaveContract();
884 if (!bNymIsServerNym &&
885 (
false == pNym->LoadPublicKey())
889 OTLog::vError(
"Failure loading public credentials for Nym: %s\n",
890 theMessage.m_strNymID.Get());
893 if (!bNymIsServerNym && pNym->IsMarkedForDeletion()) {
895 "(Failed) attempt by client to use a deleted Nym: %s\n",
896 theMessage.m_strNymID.Get());
905 if (pNym->VerifyPseudonym()) {
909 if (theMessage.VerifySignature(*pNym)) {
910 OTLog::Output(3,
"Signature verified! The message WAS signed by "
911 "the Nym\'s private key.\n");
919 if (
nullptr != pConnection)
920 pConnection->SetPublicKey(pNym->GetPublicEncrKey());
925 if (bNymIsServerNym ||
926 pNym->LoadSignedNymfile(server_->m_nymServer)) {
927 OTLog::Output(2,
"Successfully loaded Nymfile into memory.\n");
945 int64_t lRequestNumber = 0;
948 pNym->GetCurrentRequestNum(server_->m_strServerID,
951 "Apparently first-ever request to "
952 "server--but everything checks out. "
953 "(Shouldn't this request number have been "
954 "created already when the NymFile was "
955 "first created???????\n");
962 pNym->IncrementRequestNum(server_->m_nymServer,
963 server_->m_strServerID);
966 if (pNym->GetCurrentRequestNum(server_->m_strServerID,
969 "file, apparently first-ever request. "
970 "(Shouldn't this have been created "
971 "already when the NymFile was first "
987 theMessage.m_strCommand.Compare(
992 if (lRequestNumber !=
993 atol(theMessage.m_strRequestNum.Get()))
1003 "%ld does not match the one in the "
1005 atol(theMessage.m_strRequestNum.Get()),
1026 pNym->GetUsageCredits() >= 0 &&
1030 (theMessage.m_strNymID.Get()))))) {
1031 const int64_t& lUsageCredits =
1032 pNym->GetUsageCredits();
1034 if (0 == lUsageCredits)
1040 "Credits, while server is in "
1041 "**REQUIRE USAGE CREDITS "
1043 theMessage.m_strNymID.Get());
1047 const int64_t lUsageFinal = (lUsageCredits - 1);
1048 pNym->SetUsageCredits(lUsageFinal);
1052 "%ld DOES match the one in the "
1061 pNym->IncrementRequestNum(server_->m_nymServer,
1062 server_->m_strServerID);
1110 theMessage.m_strNymID.Get());
1121 0,
"Pseudonym failed to verify. Hash of public key doesn't match "
1122 "Nym ID that was sent.\n");
1176 const OTIdentifier SERVER_ID(server_->m_strServerID);
1181 bool bIsDirtyNym =
false;
1184 std::set<int64_t> numlist_ack_reply;
1185 if (theMessage.m_AcknowledgedReplies.Output(
1190 OTLedger theNymbox(pNym->GetConstID(), pNym->GetConstID(), SERVER_ID);
1192 if (theNymbox.LoadNymbox() &&
1193 theNymbox.VerifySignature(server_->m_nymServer)) {
1196 bool bIsDirtyNymbox =
false;
1198 for (
auto& it : numlist_ack_reply) {
1199 const int64_t lRequestNum = it;
1211 pNym->VerifyAcknowledgedNum(server_->m_strServerID,
1216 OTTransaction* pReplyNotice =
1217 theNymbox.GetReplyNotice(lRequestNum);
1219 if (
nullptr != pReplyNotice) {
1222 const bool bDeleted =
1223 pReplyNotice->DeleteBoxReceipt(theNymbox);
1224 const bool bRemoved = theNymbox.RemoveTransaction(
1225 pReplyNotice->GetTransactionNum());
1226 pReplyNotice =
nullptr;
1230 if (!bDeleted || !bRemoved)
1232 "UserCommandProcessor::ProcessUserCommand: "
1234 "to delete a box receipt, or "
1235 "while removing its stub from the Nymbox.\n");
1240 if (pNym->AddAcknowledgedNum(
1241 server_->m_strServerID,
1248 bIsDirtyNymbox =
true;
1257 if (bIsDirtyNymbox) {
1258 theNymbox.ReleaseSignatures();
1259 theNymbox.SignContract(server_->m_nymServer);
1260 theNymbox.SaveContract();
1261 theNymbox.SaveNymbox();
1276 OTNumList numlist_to_remove;
1279 const int32_t nAcknowledgedNumCount =
1280 pNym->GetAcknowledgedNumCount(SERVER_ID);
1282 if (nAcknowledgedNumCount > 0) {
1283 for (int32_t i = 0; i < nAcknowledgedNumCount; i++) {
1284 const int64_t lAcknowledgedNum =
1285 pNym->GetAcknowledgedNum(SERVER_ID, i);
1294 theMessage.m_AcknowledgedReplies.Verify(lAcknowledgedNum)) {
1295 numlist_to_remove.Add(lAcknowledgedNum);
1298 if (numlist_to_remove.Count() > 0) {
1299 std::set<int64_t> set_server_ack;
1300 if (numlist_to_remove.Output(set_server_ack)) {
1301 for (
auto& it : set_server_ack) {
1302 const int64_t lRequestNum = it;
1303 if (pNym->RemoveAcknowledgedNum(
1304 server_->m_nymServer, server_->m_strServerID,
1305 lRequestNum,
false))
1314 pNym->SaveSignedNymfile(server_->m_nymServer);
1341 msgOut.m_strServerID = server_->m_strServerID;
1342 msgOut.SetAcknowledgments(*pNym);
1346 if (theMessage.m_strCommand.Compare(
"getRequest"))
1356 OTLog::vOutput(0,
"\n==> Received a getRequest message. Nym: %s ...\n",
1361 UserCmdGetRequest(*pNym, theMessage, msgOut);
1365 else if (theMessage.m_strCommand.Compare(
"getTransactionNum")) {
1367 0,
"\n==> Received a getTransactionNum message. Nym: %s ...\n",
1372 UserCmdGetTransactionNum(*pNym, theMessage, msgOut);
1376 else if (theMessage.m_strCommand.Compare(
"checkUser")) {
1377 OTLog::vOutput(0,
"\n==> Received a checkUser message. Nym: %s ...\n",
1382 UserCmdCheckUser(*pNym, theMessage, msgOut);
1386 else if (theMessage.m_strCommand.Compare(
"sendUserMessage")) {
1388 0,
"\n==> Received a sendUserMessage message. Nym: %s ...\n",
1393 UserCmdSendUserMessage(*pNym, theMessage, msgOut);
1397 else if (theMessage.m_strCommand.Compare(
"sendUserInstrument")) {
1399 0,
"\n==> Received a sendUserInstrument message. Nym: %s ...\n",
1404 UserCmdSendUserInstrument(*pNym, theMessage, msgOut);
1408 else if (theMessage.m_strCommand.Compare(
"deleteUserAccount")) {
1410 0,
"\n==> Received a deleteUserAccount message. Nym: %s ...\n",
1415 UserCmdDeleteUser(*pNym, theMessage, msgOut);
1419 else if (theMessage.m_strCommand.Compare(
"deleteAssetAccount")) {
1421 0,
"\n==> Received a deleteAssetAccount message. Nym: %s ...\n",
1426 UserCmdDeleteAssetAcct(*pNym, theMessage, msgOut);
1430 else if (theMessage.m_strCommand.Compare(
"createAccount")) {
1432 "\n==> Received a createAccount message. Nym: %s ...\n",
1437 UserCmdCreateAccount(*pNym, theMessage, msgOut);
1441 else if (theMessage.m_strCommand.Compare(
"issueAssetType")) {
1443 0,
"\n==> Received an issueAssetType message. Nym: %s ...\n",
1448 UserCmdIssueAssetType(*pNym, theMessage, msgOut);
1452 else if (theMessage.m_strCommand.Compare(
"issueBasket")) {
1454 "\n==> Received an issueBasket message. Nym: %s ...\n",
1459 UserCmdIssueBasket(*pNym, theMessage, msgOut);
1463 else if (theMessage.m_strCommand.Compare(
"notarizeTransactions")) {
1464 OTLog::vOutput(0,
"\n==> Received a notarizeTransactions message. "
1465 "Acct: %s Nym: %s ...\n",
1466 theMessage.m_strAcctID.Get(), strMsgNymID.Get());
1470 UserCmdNotarizeTransactions(*pNym, theMessage, msgOut);
1474 else if (theMessage.m_strCommand.Compare(
"getNymbox")) {
1475 OTLog::vOutput(0,
"\n==> Received a getNymbox message. Nym: %s ...\n",
1480 UserCmdGetNymbox(*pNym, theMessage, msgOut);
1484 else if (theMessage.m_strCommand.Compare(
"getBoxReceipt")) {
1486 "\n==> Received a getBoxReceipt message. Nym: %s ...\n",
1490 if (0 == theMessage.m_lDepth)
1492 else if (1 == theMessage.m_lDepth)
1494 else if (2 == theMessage.m_lDepth)
1499 if (bRunIt) UserCmdGetBoxReceipt(*pNym, theMessage, msgOut);
1503 else if (theMessage.m_strCommand.Compare("getInbox")) {
1505 0,
"\n==> Received a getInbox message. Acct: %s Nym: %s ...\n",
1506 theMessage.m_strAcctID.Get(), strMsgNymID.Get());
1510 UserCmdGetInbox(*pNym, theMessage, msgOut);
1514 else if (theMessage.m_strCommand.Compare(
"getOutbox")) {
1516 0,
"\n==> Received a getOutbox message. Acct: %s Nym: %s ...\n",
1517 theMessage.m_strAcctID.Get(), strMsgNymID.Get());
1521 UserCmdGetOutbox(*pNym, theMessage, msgOut);
1525 else if (theMessage.m_strCommand.Compare(
"getAccount")) {
1527 0,
"\n==> Received a getAccount message. Acct: %s Nym: %s ...\n",
1528 theMessage.m_strAcctID.Get(), strMsgNymID.Get());
1532 UserCmdGetAccount(*pNym, theMessage, msgOut);
1536 else if (theMessage.m_strCommand.Compare(
"getAccountFiles")) {
1537 OTLog::vOutput(0,
"\n==> Received a getAccountFiles message. Acct: %s "
1539 theMessage.m_strAcctID.Get(), strMsgNymID.Get());
1545 UserCmdGetAccountFiles(*pNym, theMessage, msgOut);
1549 else if (theMessage.m_strCommand.Compare(
"processNymbox")) {
1551 "\n==> Received a processNymbox message. Nym: %s ...\n",
1556 UserCmdProcessNymbox(*pNym, theMessage, msgOut);
1560 else if (theMessage.m_strCommand.Compare(
"processInbox")) {
1562 0,
"\n==> Received a processInbox message. Acct: %s Nym: %s ...\n",
1563 theMessage.m_strAcctID.Get(), strMsgNymID.Get());
1567 UserCmdProcessInbox(*pNym, theMessage, msgOut);
1571 else if (theMessage.m_strCommand.Compare(
"queryAssetTypes")) {
1573 0,
"\n==> Received a queryAssetTypes message. Nym: %s ...\n",
1578 UserCmdQueryAssetTypes(*pNym, theMessage, msgOut);
1582 else if (theMessage.m_strCommand.Compare(
"getContract")) {
1583 OTLog::vOutput(0,
"\n==> Received a getContract message. Nym: %s ...\n",
1588 UserCmdGetContract(*pNym, theMessage, msgOut);
1592 else if (theMessage.m_strCommand.Compare(
"getMint")) {
1593 OTLog::vOutput(0,
"\n==> Received a getMint message. Nym: %s ...\n",
1598 UserCmdGetMint(*pNym, theMessage, msgOut);
1602 else if (theMessage.m_strCommand.Compare(
"getMarketList")) {
1604 "\n==> Received a getMarketList message. Nym: %s ...\n",
1609 UserCmdGetMarketList(*pNym, theMessage, msgOut);
1613 else if (theMessage.m_strCommand.Compare(
"getMarketOffers")) {
1615 0,
"\n==> Received a getMarketOffers message. Nym: %s ...\n",
1620 UserCmdGetMarketOffers(*pNym, theMessage, msgOut);
1624 else if (theMessage.m_strCommand.Compare(
"getMarketRecentTrades")) {
1626 0,
"\n==> Received a getMarketRecentTrades message. Nym: %s ...\n",
1632 UserCmdGetMarketRecentTrades(*pNym, theMessage, msgOut);
1636 else if (theMessage.m_strCommand.Compare(
"getNym_MarketOffers")) {
1638 0,
"\n==> Received a getNym_MarketOffers message. Nym: %s ...\n",
1643 UserCmdGetNym_MarketOffers(*pNym, theMessage, msgOut);
1647 else if (theMessage.m_strCommand.Compare(
"triggerClause")) {
1649 "\n==> Received a triggerClause message. Nym: %s ...\n",
1654 UserCmdTriggerClause(*pNym, theMessage, msgOut);
1658 else if (theMessage.m_strCommand.Compare(
"usageCredits")) {
1660 "\n==> Received a usageCredits message. Nym: %s ...\n",
1665 UserCmdUsageCredits(*pNym, theMessage, msgOut);
1670 OTLog::vError(
"Unknown command type in the XML, or missing payload, in "
1671 "ProcessMessage.\n");
1674 strTemp.Format(
"@%s", theMessage.m_strCommand.Get());
1677 msgOut.m_strCommand = strTemp;
1678 msgOut.m_strAcctID = theMessage.m_strAcctID;
1679 msgOut.m_strServerID = theMessage.m_strServerID;
1680 msgOut.m_strNymID = theMessage.m_strNymID;
1682 msgOut.m_bSuccess =
false;
1684 OTString strRef(theMessage);
1686 msgOut.m_ascInReferenceTo.SetString(strRef);
1688 msgOut.SignContract(server_->m_nymServer);
1689 msgOut.SaveContract();
static EXPORT void vError(const char *szError,...)
EXPORT bool StorePlainString(std::string strContents, std::string strFolder, std::string oneStr="", std::string twoStr="", std::string threeStr="")
static EXPORT OTAsymmetricKey * KeyFactory()
static EXPORT void Output(int32_t nVerbosity, const char *szOutput)
static bool __cmd_check_user
static bool __admin_usage_credits
EXPORT void GetIdentifier(OTIdentifier &theIdentifier) const
static EXPORT const OTString & Pubcred()
static bool __cmd_create_asset_acct
static const std::string & GetOverrideNymID()
static bool __cmd_get_market_list
static bool __cmd_get_outbox
static bool __cmd_issue_basket
static EXPORT const OTString & UserAcct()
static EXPORT void Error(const char *szError)
static bool __cmd_get_acct
EXPORT bool Compare(const char *compare) const
static bool __cmd_check_server_id
static bool __cmd_get_inbox
static bool __cmd_process_nymbox
static bool __cmd_del_asset_acct
static bool __cmd_get_nym_market_offers
static bool __cmd_process_inbox
static bool __cmd_del_user_acct
static bool __cmd_get_request
EXPORT const char * Get() const
static bool __cmd_get_mint
static bool __cmd_create_user_acct
static bool __admin_server_locked
EXPORT Storable * DecodeObject(StoredObjectType theObjectType, std::string strInput)
static bool __cmd_get_contract
static bool __cmd_issue_asset
#define OT_ENFORCE_PERMISSION_MSG(BOOL_VAR_NAME)
static bool __cmd_get_nymbox
static bool __cmd_get_market_offers
static bool __cmd_notarize_transaction
static bool __cmd_get_trans_num
static EXPORT void vOutput(int32_t nVerbosity, const char *szOutput,...)
static bool __cmd_trigger_clause
static bool __cmd_usage_credits
static bool __cmd_send_message
static bool __cmd_get_market_recent_trades