143 #include <irrxml/irrXML.hpp>
183 bool bIsRealTransaction)
189 otOut << __FUNCTION__
190 <<
": wrong item type. Expected OTItem::transactionStatement.\n";
206 if (bIsRealTransaction)
216 <<
") doesn't appear on Nym's issued list.\n";
228 switch (TARGET_TRANSACTION.
GetType()) {
245 otOut <<
"OTItem::VerifyTransactionStatemen: Expected THE_NYM "
247 <<
" but didn't find it.\n";
266 otErr <<
"OTItem::VerifyTransactionStatement: Unexpected "
267 "transaction type.\n";
279 bool bSuccess =
false;
299 if (bIsRealTransaction) {
300 switch (TARGET_TRANSACTION.
GetType()) {
310 otErr <<
"OTItem::VerifyTransactionStatement: THIS SHOULD "
315 otErr <<
"Failed adding issued number back to THE_NYM in "
316 "OTItem::VerifyTransactionStatement.\n";
362 int64_t lOutboxTrnsNum)
368 otOut <<
"OTItem::" << __FUNCTION__ <<
": wrong item type.\n";
377 if ((THE_ACCOUNT.
GetBalance() + lActualAdjustment) !=
381 otOut <<
"OTItem::" << __FUNCTION__
382 <<
": This balance statement has a value of " <<
GetAmount()
384 << (THE_ACCOUNT.
GetBalance() + lActualAdjustment)
386 "(Acct balance of " << THE_ACCOUNT.
GetBalance()
387 <<
" plus actualAdjustment of " << lActualAdjustment <<
".)\n";
395 int32_t nInboxItemCount = 0, nOutboxItemCount = 0;
397 const char* szInbox =
"Inbox";
398 const char* szOutbox =
"Outbox";
400 const char* pszLedgerType =
nullptr;
414 int64_t lReceiptAmountMultiplier = 1;
427 pLedger = &THE_INBOX;
428 pszLedgerType = szInbox;
438 otWarn <<
"OTItem::" << __FUNCTION__ <<
": Ignoring " << strItemType
439 <<
" item in balance statement while verifying it against "
452 lReceiptAmountMultiplier =
455 pLedger = &THE_OUTBOX;
456 pszLedgerType = szOutbox;
462 lReceiptAmountMultiplier =
465 pLedger = &THE_INBOX;
466 pszLedgerType = szInbox;
491 lReceiptAmountMultiplier = 1;
494 otErr <<
"OTItem::" << __FUNCTION__
495 <<
": Bad Subitem type (SHOULD NEVER HAPPEN)....\n";
534 if ((lOutboxTrnsNum > 0) && (&THE_OUTBOX == pLedger) &&
538 otLog3 <<
"OTItem::" << __FUNCTION__
539 <<
": Subitem is new Outbox Transaction... retrieving by "
540 "special ID: " << lOutboxTrnsNum <<
"\n";
545 otLog4 <<
"OTItem::" << __FUNCTION__
546 <<
": Subitem is normal Transaction... retrieving by ID: "
555 if (
nullptr == pTransaction) {
556 otOut <<
"OTItem::" << __FUNCTION__ <<
": Expected "
557 << pszLedgerType <<
" transaction (serv " << lOutboxTrnsNum
560 "not found. (Amount " << pSubItem->
GetAmount() <<
".)\n";
567 otOut <<
"OTItem::" << __FUNCTION__ <<
": " << pszLedgerType
569 <<
") mismatch Reference Num: "
577 otOut <<
"OTItem::" << __FUNCTION__ <<
": " << pszLedgerType
579 <<
") mismatch Origin Num: "
630 lTransactionAmount *= lReceiptAmountMultiplier;
632 if (pSubItem->
GetAmount() != lTransactionAmount) {
633 otOut <<
"OTItem::" << __FUNCTION__ <<
": " << pszLedgerType
636 "amounts don't match: report amount is "
637 << pSubItem->
GetAmount() <<
", but expected "
638 << lTransactionAmount
640 <<
" (GetAmount() == " <<
GetAmount() <<
".)\n";
646 otOut <<
"OTItem::" << __FUNCTION__ <<
": " << pszLedgerType
648 <<
") wrong type. (transfer block)\n";
654 otOut <<
"OTItem::" << __FUNCTION__ <<
": " << pszLedgerType
656 <<
") wrong type. (chequeReceipt block)\n";
662 otOut <<
"OTItem::" << __FUNCTION__ <<
": " << pszLedgerType
664 <<
") wrong type. (voucherReceipt block)\n";
670 otOut <<
"OTItem::" << __FUNCTION__ <<
": " << pszLedgerType
672 <<
") wrong type. (marketReceipt block)\n";
678 otOut <<
"OTItem::" << __FUNCTION__ <<
": " << pszLedgerType
680 <<
") wrong type. (paymentReceipt block)\n";
686 otOut <<
"OTItem::" << __FUNCTION__ <<
": " << pszLedgerType
688 <<
") wrong type. (transferReceipt block)\n";
695 otOut <<
"OTItem::" << __FUNCTION__ <<
": " << pszLedgerType
697 <<
") wrong type or closing num ("
699 "(basketReceipt block)\n";
706 otOut <<
"OTItem::" << __FUNCTION__ <<
": " << pszLedgerType
708 <<
") wrong type or closing num ("
710 "(finalReceipt block)\n";
722 otOut <<
"OTItem::" << __FUNCTION__
723 <<
": Inbox or Outbox mismatch in expected transaction count.\n"
727 "--- nInboxItemCount count: " << nInboxItemCount
728 <<
" --- nOutboxItemCount count: " << nOutboxItemCount <<
"\n\n";
770 otOut <<
"OTItem::" << __FUNCTION__ <<
": Transaction has # that "
771 "doesn't appear on Nym's issued "
806 switch (TARGET_TRANSACTION.
GetType()) {
833 otErr <<
"OTItem::" << __FUNCTION__
834 <<
": wrong target transaction type: "
838 int32_t nNumberOfTransactionNumbers1 = 0;
839 int32_t nNumberOfTransactionNumbers2 = 0;
847 std::string strServerID = it.first;
854 nNumberOfTransactionNumbers1 +=
855 static_cast<int32_t
>(pDeque->size());
870 std::string strServerID = it.first;
875 const OTString OTstrServerID(theServerID);
878 nNumberOfTransactionNumbers2 +=
879 static_cast<int32_t
>(pDeque->size());
881 for (uint32_t i = 0; i < pDeque->size(); i++) {
882 int64_t lTransactionNumber = pDeque->at(i);
887 otOut <<
"OTItem::" << __FUNCTION__
888 <<
": Issued transaction # " << lTransactionNumber
889 <<
" from Message Nym not found on this side.\n";
892 switch (TARGET_TRANSACTION.
GetType()) {
908 otErr <<
"OTItem::" << __FUNCTION__
909 <<
": THIS SHOULD NOT HAPPEN.\n";
913 otErr <<
"OTItem::" << __FUNCTION__
914 <<
": Failed adding issued number "
915 "back to THE_NYM.\n";
926 otErr <<
"OTItem::" << __FUNCTION__
927 <<
": wrong target transaction type: "
942 if (nNumberOfTransactionNumbers1 != nNumberOfTransactionNumbers2) {
943 otOut <<
"OTItem::" << __FUNCTION__
944 <<
": Transaction # Count mismatch: "
945 << nNumberOfTransactionNumbers1 <<
" and "
946 << nNumberOfTransactionNumbers2 <<
"\n";
949 switch (TARGET_TRANSACTION.
GetType()) {
964 otErr <<
"OTItem::" << __FUNCTION__
965 <<
": THIS SHOULD NOT HAPPEN.\n";
969 otErr <<
"OTItem::" << __FUNCTION__
970 <<
": Failed adding issued number back to THE_NYM.\n";
981 otErr <<
"OTItem::" << __FUNCTION__
982 <<
": wrong target transaction type: "
1010 switch (TARGET_TRANSACTION.
GetType()) {
1024 otErr <<
"OTItem::" << __FUNCTION__
1025 <<
": THIS SHOULD NOT HAPPEN.\n";
1028 otErr <<
"OTItem::" << __FUNCTION__
1029 <<
": Failed adding issued number back to THE_NYM.\n";
1040 otErr <<
"OTItem::" << __FUNCTION__
1041 <<
": wrong target transaction type: "
1061 int32_t nTempIndex = (-1);
1069 if (nTempIndex == nIndex)
return pItem;
1161 otErr << __FUNCTION__ <<
": In this case, you can't calculate the "
1162 "origin number, you must set it "
1166 OT_FAIL_MSG(
"In this case, you can't calculate the origin number, "
1167 "you must set it explicitly.");
1233 otErr << __FUNCTION__ <<
": In this case, you can't calculate the "
1234 "origin number, you must set it explicitly.\n";
1237 OT_FAIL_MSG(
"In this case, you can't calculate the origin number, you "
1238 "must set it explicitly.");
1263 otErr << __FUNCTION__ <<
": ERROR loading cheque from string:\n"
1264 << strAttachment <<
"\n";
1317 pOriginalItem->GetTypeString(strType);
1318 otErr << __FUNCTION__
1319 <<
": ERROR: Wrong item type as 'in reference to' string on "
1320 << strType <<
" item.\n";
1407 #define MINIMUM_CLEARTEXT_SIZE_OTASCIIARMOR 100
1409 #define OTASSCIIARMOR_PADDING_TEXT \
1410 " IGNORE -- NOTE PADDING -- IGNORE -- NOTE PADDING \nIGNORE -- NOTE " \
1411 "PADDING -- IGNORE -- NOTE PADDING \n"
1456 new OTItem(theOwner.
GetUserID(), theOwner, theType, pDestinationAcctID);
1475 int64_t lTransactionNumber)
1478 otErr <<
"OTItem::CreateItemFromString: strItem is empty. (Expected an "
1545 , m_Type(
OTItem::error_state)
1546 , m_Status(
OTItem::request)
1547 , m_lNewOutboxTransNum(0)
1548 , m_lClosingTransactionNo(0)
1556 theOwner.GetRealServerID(),
1557 theOwner.GetTransactionNum())
1559 , m_Type(
OTItem::error_state)
1560 , m_Status(
OTItem::request)
1561 , m_lNewOutboxTransNum(0)
1562 , m_lClosingTransactionNo(0)
1570 theOwner.GetRealServerID(),
1571 theOwner.GetTransactionNum())
1573 , m_Type(
OTItem::error_state)
1574 , m_Status(
OTItem::request)
1575 , m_lNewOutboxTransNum(0)
1576 , m_lClosingTransactionNo(0)
1584 theOwner.GetRealServerID(),
1585 theOwner.GetTransactionNum())
1587 , m_Type(
OTItem::error_state)
1588 , m_Status(
OTItem::request)
1589 , m_lNewOutboxTransNum(0)
1590 , m_lClosingTransactionNo(0)
1602 if (
nullptr != pDestinationAcctID) {
1643 if (strType.
Compare(
"transfer"))
1645 else if (strType.
Compare(
"atTransfer"))
1648 else if (strType.
Compare(
"acceptTransaction"))
1650 else if (strType.
Compare(
"atAcceptTransaction"))
1653 else if (strType.
Compare(
"acceptMessage"))
1655 else if (strType.
Compare(
"atAcceptMessage"))
1658 else if (strType.
Compare(
"acceptNotice"))
1660 else if (strType.
Compare(
"atAcceptNotice"))
1663 else if (strType.
Compare(
"acceptPending"))
1665 else if (strType.
Compare(
"atAcceptPending"))
1667 else if (strType.
Compare(
"rejectPending"))
1669 else if (strType.
Compare(
"atRejectPending"))
1672 else if (strType.
Compare(
"acceptCronReceipt"))
1674 else if (strType.
Compare(
"atAcceptCronReceipt"))
1676 else if (strType.
Compare(
"disputeCronReceipt"))
1678 else if (strType.
Compare(
"atDisputeCronReceipt"))
1680 else if (strType.
Compare(
"acceptItemReceipt"))
1682 else if (strType.
Compare(
"atAcceptItemReceipt"))
1684 else if (strType.
Compare(
"disputeItemReceipt"))
1686 else if (strType.
Compare(
"atDisputeItemReceipt"))
1689 else if (strType.
Compare(
"acceptFinalReceipt"))
1691 else if (strType.
Compare(
"atAcceptFinalReceipt"))
1693 else if (strType.
Compare(
"disputeFinalReceipt"))
1695 else if (strType.
Compare(
"atDisputeFinalReceipt"))
1698 else if (strType.
Compare(
"acceptBasketReceipt"))
1700 else if (strType.
Compare(
"atAcceptBasketReceipt"))
1702 else if (strType.
Compare(
"disputeBasketReceipt"))
1704 else if (strType.
Compare(
"atDisputeBasketReceipt"))
1707 else if (strType.
Compare(
"serverfee"))
1709 else if (strType.
Compare(
"atServerfee"))
1711 else if (strType.
Compare(
"issuerfee"))
1713 else if (strType.
Compare(
"atIssuerfee"))
1716 else if (strType.
Compare(
"balanceStatement"))
1718 else if (strType.
Compare(
"atBalanceStatement"))
1720 else if (strType.
Compare(
"transactionStatement"))
1722 else if (strType.
Compare(
"atTransactionStatement"))
1725 else if (strType.
Compare(
"withdrawal"))
1727 else if (strType.
Compare(
"atWithdrawal"))
1729 else if (strType.
Compare(
"deposit"))
1731 else if (strType.
Compare(
"atDeposit"))
1734 else if (strType.
Compare(
"withdrawVoucher"))
1736 else if (strType.
Compare(
"atWithdrawVoucher"))
1738 else if (strType.
Compare(
"depositCheque"))
1740 else if (strType.
Compare(
"atDepositCheque"))
1743 else if (strType.
Compare(
"payDividend"))
1745 else if (strType.
Compare(
"atPayDividend"))
1748 else if (strType.
Compare(
"marketOffer"))
1750 else if (strType.
Compare(
"atMarketOffer"))
1753 else if (strType.
Compare(
"paymentPlan"))
1755 else if (strType.
Compare(
"atPaymentPlan"))
1758 else if (strType.
Compare(
"smartContract"))
1760 else if (strType.
Compare(
"atSmartContract"))
1763 else if (strType.
Compare(
"cancelCronItem"))
1765 else if (strType.
Compare(
"atCancelCronItem"))
1768 else if (strType.
Compare(
"exchangeBasket"))
1770 else if (strType.
Compare(
"atExchangeBasket"))
1773 else if (strType.
Compare(
"chequeReceipt"))
1775 else if (strType.
Compare(
"voucherReceipt"))
1777 else if (strType.
Compare(
"marketReceipt"))
1779 else if (strType.
Compare(
"paymentReceipt"))
1781 else if (strType.
Compare(
"transferReceipt"))
1784 else if (strType.
Compare(
"finalReceipt"))
1786 else if (strType.
Compare(
"basketReceipt"))
1789 else if (strType.
Compare(
"replyNotice"))
1791 else if (strType.
Compare(
"successNotice"))
1793 else if (strType.
Compare(
"notice"))
1805 if (!strcmp(
"item", xml->getNodeName())) {
1808 strType = xml->getAttributeValue(
"type");
1809 strStatus = xml->getAttributeValue(
"status");
1815 if (strStatus.
Compare(
"request"))
1817 else if (strStatus.
Compare(
"acknowledgement"))
1819 else if (strStatus.
Compare(
"rejection"))
1824 OTString strAcctFromID, strAcctToID, strServerID, strUserID,
1825 strOutboxNewTransNum;
1827 strAcctFromID = xml->getAttributeValue(
"fromAccountID");
1828 strAcctToID = xml->getAttributeValue(
"toAccountID");
1829 strServerID = xml->getAttributeValue(
"serverID");
1830 strUserID = xml->getAttributeValue(
"userID");
1832 strOutboxNewTransNum = xml->getAttributeValue(
"outboxNewTransNum");
1834 if (strOutboxNewTransNum.
Exists())
1843 xml->getAttributeValue(
"totalListOfNumbers");
1846 if (strTotalList.
Exists())
1851 OTIdentifier ACCOUNT_ID(strAcctFromID), SERVER_ID(strServerID),
1852 DESTINATION_ACCOUNT(strAcctToID), USER_ID(strUserID);
1868 strTemp = xml->getAttributeValue(
"numberOfOrigin");
1871 strTemp = xml->getAttributeValue(
"transactionNum");
1874 strTemp = xml->getAttributeValue(
"inReferenceTo");
1877 m_lAmount = atol(xml->getAttributeValue(
"amount"));
1879 otLog3 <<
"Loaded transaction Item, transaction num "
1882 <<
", type: " << strType <<
", status: " << strStatus <<
"\n";
1890 else if (!strcmp(
"note", xml->getNodeName())) {
1892 otErr <<
"Error in OTItem::ProcessXMLNode: note field without "
1899 else if (!strcmp(
"inReferenceTo", xml->getNodeName())) {
1902 otErr <<
"Error in OTItem::ProcessXMLNode: inReferenceTo field "
1909 else if (!strcmp(
"attachment", xml->getNodeName())) {
1911 otErr <<
"Error in OTItem::ProcessXMLNode: attachment field "
1918 else if (!strcmp(
"transactionReport", xml->getNodeName())) {
1935 strType = xml->getAttributeValue(
1946 pItem->
SetAmount(atol(xml->getAttributeValue(
"adjustment")));
1956 OTString strAccountID, strServerID, strUserID;
1958 strAccountID = xml->getAttributeValue(
"accountID");
1959 strServerID = xml->getAttributeValue(
"serverID");
1960 strUserID = xml->getAttributeValue(
"userID");
1962 OTIdentifier ACCOUNT_ID(strAccountID), SERVER_ID(strServerID),
1975 strTemp = xml->getAttributeValue(
"numberOfOrigin");
1978 strTemp = xml->getAttributeValue(
"transactionNum");
1981 strTemp = xml->getAttributeValue(
"inReferenceTo");
1984 strTemp = xml->getAttributeValue(
1985 "closingTransactionNum");
1991 otLog3 <<
"Loaded transactionReport Item, transaction num "
1994 <<
", type: " << strType <<
"\n";
2001 otErr <<
"Outbox hash in item wrong type (expected "
2002 "balanceStatement or atBalanceStatement.\n";
2026 strType.
Set(
"transfer");
2029 strType.
Set(
"acceptTransaction");
2032 strType.
Set(
"acceptMessage");
2035 strType.
Set(
"acceptNotice");
2038 strType.
Set(
"acceptPending");
2041 strType.
Set(
"rejectPending");
2044 strType.
Set(
"acceptCronReceipt");
2047 strType.
Set(
"disputeCronReceipt");
2050 strType.
Set(
"acceptItemReceipt");
2053 strType.
Set(
"disputeItemReceipt");
2056 strType.
Set(
"acceptFinalReceipt");
2059 strType.
Set(
"acceptBasketReceipt");
2062 strType.
Set(
"disputeFinalReceipt");
2065 strType.
Set(
"disputeBasketReceipt");
2068 strType.
Set(
"serverfee");
2071 strType.
Set(
"issuerfee");
2074 strType.
Set(
"withdrawal");
2077 strType.
Set(
"deposit");
2080 strType.
Set(
"withdrawVoucher");
2083 strType.
Set(
"depositCheque");
2086 strType.
Set(
"payDividend");
2089 strType.
Set(
"marketOffer");
2092 strType.
Set(
"paymentPlan");
2095 strType.
Set(
"smartContract");
2098 strType.
Set(
"balanceStatement");
2101 strType.
Set(
"transactionStatement");
2105 strType.
Set(
"cancelCronItem");
2108 strType.
Set(
"exchangeBasket");
2112 strType.
Set(
"atCancelCronItem");
2115 strType.
Set(
"atExchangeBasket");
2120 strType.
Set(
"chequeReceipt");
2124 strType.
Set(
"voucherReceipt");
2129 strType.
Set(
"marketReceipt");
2133 strType.
Set(
"paymentReceipt");
2137 strType.
Set(
"transferReceipt");
2143 strType.
Set(
"finalReceipt");
2147 strType.
Set(
"basketReceipt");
2152 strType.
Set(
"notice");
2157 strType.
Set(
"replyNotice");
2161 strType.
Set(
"successNotice");
2165 strType.
Set(
"atTransfer");
2168 strType.
Set(
"atAcceptTransaction");
2171 strType.
Set(
"atAcceptMessage");
2174 strType.
Set(
"atAcceptNotice");
2177 strType.
Set(
"atAcceptPending");
2180 strType.
Set(
"atRejectPending");
2183 strType.
Set(
"atAcceptCronReceipt");
2186 strType.
Set(
"atDisputeCronReceipt");
2189 strType.
Set(
"atAcceptItemReceipt");
2192 strType.
Set(
"atDisputeItemReceipt");
2196 strType.
Set(
"atAcceptFinalReceipt");
2199 strType.
Set(
"atAcceptBasketReceipt");
2202 strType.
Set(
"atDisputeFinalReceipt");
2205 strType.
Set(
"atDisputeBasketReceipt");
2209 strType.
Set(
"atServerfee");
2212 strType.
Set(
"atIssuerfee");
2215 strType.
Set(
"atWithdrawal");
2218 strType.
Set(
"atDeposit");
2221 strType.
Set(
"atWithdrawVoucher");
2224 strType.
Set(
"atDepositCheque");
2227 strType.
Set(
"atPayDividend");
2230 strType.
Set(
"atMarketOffer");
2233 strType.
Set(
"atPaymentPlan");
2236 strType.
Set(
"atSmartContract");
2239 strType.
Set(
"atBalanceStatement");
2242 strType.
Set(
"atTransactionStatement");
2246 strType.
Set(
"error-unknown");
2266 strListOfBlanks.
Format(
" totalListOfNumbers=\"%s\"\n",
2269 strListOfBlanks.
Set(
"");
2285 strStatus.
Set(
"request");
2288 strStatus.
Set(
"acknowledgement");
2291 strStatus.
Set(
"rejection");
2294 strStatus.
Set(
"error-unknown");
2303 "<item type=\"%s\"\n status=\"%s\"\n"
2304 " outboxNewTransNum=\"%lld\"\n"
2316 " numberOfOrigin=\"%lld\"\n"
2317 " transactionNum=\"%lld\"\n"
2318 " serverID=\"%s\"\n"
2320 " fromAccountID=\"%s\"\n"
2321 " toAccountID=\"%s\"\n"
2322 " inReferenceTo=\"%lld\"\n"
2323 " amount=\"%lld\" >\n\n",
2331 "<item type=\"%s\"\n status=\"%s\"\n"
2332 " numberOfOrigin=\"%lld\"\n"
2333 " transactionNum=\"%lld\"\n%s"
2334 " serverID=\"%s\"\n"
2336 " fromAccountID=\"%s\"\n"
2337 " toAccountID=\"%s\"\n"
2338 " inReferenceTo=\"%lld\"\n"
2339 " amount=\"%lld\" >\n\n",
2340 strType.
Get(), strStatus.
Get(),
2343 strUserID.
Get(), strFromAcctID.Get(), strToAcctID.Get(),
2377 "<transactionReport type=\"%s\"\n"
2378 " adjustment=\"%lld\"\n"
2379 " accountID=\"%s\"\n"
2381 " serverID=\"%s\"\n"
2382 " numberOfOrigin=\"%lld\"\n"
2383 " transactionNum=\"%lld\"\n"
2384 " closingTransactionNum=\"%lld\"\n"
2385 " inReferenceTo=\"%lld\" />\n\n",
2386 strReceiptType.Exists() ? strReceiptType.Get() :
"error_state",
void AddItem(OTItem &theItem)
void Truncate(uint32_t index)
EXPORT int32_t GetIssuedNumCount(const OTIdentifier &theServerID) const
EXPORT void GetReferenceString(OTString &theStr) const
OTLOG_IMPORT OTLogStream otLog4
void SetAmount(int64_t lAmount)
EXPORT bool VerifyIssuedNumbersOnNym(OTPseudonym &THE_NYM)
int32_t GetTransactionCount() const
virtual bool SaveContractWallet(std::ofstream &ofs) const
static EXPORT OTItem * CreateItemFromString(const OTString &strItem, const OTIdentifier &theServerID, int64_t lTransactionNumber)
EXPORT void SetNumberOfOrigin(int64_t lTransactionNum)
OTItem * GetItem(int32_t nIndex)
EXPORT bool LoadFromString(const OTString &strNym, OTString::Map *pMapCredentials=nullptr, OTString *pstrReason=nullptr, const OTPassword *pImportPassword=nullptr)
EXPORT void GetAttachment(OTString &theStr) const
EXPORT bool VerifyTransactionStatement(OTPseudonym &THE_NYM, OTTransaction &TARGET_TRANSACTION, bool bIsRealTransaction=true)
void SetTransactionNum(int64_t lTransactionNum)
int64_t GetTransactionNum() const
EXPORT int64_t GetBalance() const
EXPORT bool VerifyIssuedNum(const OTString &strServerID, const int64_t &lTransNum) const
EXPORT bool AddBlankNumbersToItem(const OTNumList &theAddition)
EXPORT bool VerifyBalanceStatement(int64_t lActualAdjustment, OTPseudonym &THE_NYM, OTLedger &THE_INBOX, OTLedger &THE_OUTBOX, const OTAccount &THE_ACCOUNT, OTTransaction &TARGET_TRANSACTION, int64_t lOutboxTrnsNum=0)
OTLOG_IMPORT OTLogStream otOut
void SetRealAccountID(const OTIdentifier &theID)
EXPORT void GetNote(OTString &theStr) const
OTLOG_IMPORT OTLogStream otLog3
EXPORT void SetAttachment(const OTString &theStr)
EXPORT uint32_t GetLength() const
OTItem::itemType GetItemTypeFromString(const OTString &strType)
EXPORT void Concatenate(const char *arg,...)
void SetRealServerID(const OTIdentifier &theID)
OTItem * GetFinalReceiptItemByReferenceNum(int64_t lReferenceNumber)
static EXPORT OTItem * CreateItemFromTransaction(const OTTransaction &theOwner, OTItem::itemType theType, const OTIdentifier *pDestinationAcctID=nullptr)
OTItem * GetItemByTransactionNum(int64_t lTransactionNumber)
EXPORT bool Exists() const
EXPORT bool SetString(const OTString &theData, bool bLineBreaks=true)
const char * GetTypeString() const
int64_t GetClosingNum() const
EXPORT void Format(const char *fmt,...)
void SetStatus(const OTItem::itemStatus &theVal)
void SetDestinationAcctID(const OTIdentifier &theID)
#define MINIMUM_CLEARTEXT_SIZE_OTASCIIARMOR
EXPORT bool Compare(const char *compare) const
virtual EXPORT void CalculateNumberOfOrigin()
const OTIdentifier & GetPurportedServerID() const
EXPORT void Set(const char *data, uint32_t enforcedMaxLength=0)
int64_t m_lNewOutboxTransNum
void SetClosingNum(int64_t lClosingNum)
static EXPORT bool LoadEncodedTextField(irr::io::IrrXMLReader *&xml, OTASCIIArmor &ascOutput)
int64_t GetAmount() const
EXPORT bool Output(std::set< int64_t > &theOutput) const
EXPORT int64_t GetClosingNum() const
EXPORT bool RemoveIssuedNum(OTPseudonym &SIGNER_NYM, const OTString &strServerID, const int64_t &lTransNum, bool bSave)
std::deque< int64_t > dequeOfTransNums
OTString m_strContractType
const OTIdentifier & GetDestinationAcctID() const
mapOfTransNums & GetMapIssuedNum()
EXPORT int32_t Count() const
#define OTASSCIIARMOR_PADDING_TEXT
OTStringXML m_xmlUnsigned
EXPORT void SetNote(const OTString &theStr)
EXPORT int64_t GetReferenceToNum() const
OTLOG_IMPORT OTLogStream otWarn
EXPORT const char * Get() const
void SetUserID(const OTIdentifier &theID)
transactionType GetType() const
OTLOG_IMPORT OTLogStream otErr
const OTIdentifier & GetPurportedAccountID() const
EXPORT int64_t GetReceiptAmount()
EXPORT int64_t GetTransactionNum() const
EXPORT void SetReferenceToNum(int64_t lTransactionNum)
int32_t GetItemCountInRefTo(int64_t lReference)
void SetPurportedServerID(const OTIdentifier &theID)
virtual void UpdateContents()
virtual EXPORT bool VerifyContractID() const
int32_t GetItemCount() const
int64_t m_lNumberOfOrigin
EXPORT bool Contains(const char *compare) const
OTASCIIArmor m_ascAttachment
static EXPORT void GetStringFromType(OTItem::itemType theType, OTString &strType)
OTItem::itemType GetType() const
int64_t m_lClosingTransactionNo
const OTIdentifier & GetUserID() const
EXPORT bool GetString(OTString &theData, bool bLineBreaks=true) const
EXPORT bool LoadContractFromString(const OTString &theStr)
EXPORT int64_t GetIssuedNum(const OTIdentifier &theServerID, int32_t nIndex) const
virtual EXPORT void Release()
void GetTypeString(OTString &strType) const
void SetType(OTItem::itemType theType)
EXPORT bool AddIssuedNum(const OTString &strServerID, const int64_t &lTransNum)
virtual EXPORT int64_t GetNumberOfOrigin()
void SetPurportedAccountID(const OTIdentifier &theID)
virtual EXPORT void Release()
OTASCIIArmor m_ascInReferenceTo
virtual int32_t ProcessXMLNode(irr::io::IrrXMLReader *&xml)
EXPORT OTTransaction * GetTransaction(OTTransaction::transactionType theType)
EXPORT int64_t GetRawNumberOfOrigin() const